Comment changer un pourcentage dans une même cellule?

Comment changer un pourcentage dans une même cellule? - VB/VBA/VBS - Programmation

Marsh Posté le 12-02-2009 à 14:32:41    

Bonjour à tous,
 
Cela fait des heures que je cherche dans les forums, mais sans résultat.
Mon problème doit être trop simple lol
 
Je voudrais simplement attribuer un pourcentage de réduction sur des nombres placés dans des cellules.
La liste déroulante avec les % (5, 10...)est bien créée, et j'ai mon nombre en F9. Je voudrais maintenant qd je choisis dans ma liste le pourcentage que je voudrais octroyer, que ce même nombre en F9 soit adapté avec le pourcentage demandé.
Voici ce que j'ai fait, mais j'ai de suite 0 en F9, mais si j'affiche le résultat dans une autre cellule, ca va bien, mais ce n'est pas le but.
Private Sub ComboBox1_Change()
If ComboBox1.Value = "0" Then
Range("F9" ).Formula = "=F9-(F9*0%)"
ElseIf ComboBox1.Value = "5" Then
Range("F9" ).Formula = "=F9-(F9*5%)"
ElseIf ComboBox1.Value = "10" Then
Range("F9" ).Formula = "=F9-(F9*10%)"
ElseIf ComboBox1.Value = "15" Then
Range("F9" ).Formula = "=F9-(F9*15%)"
End If
End Sub
 
Aussi, quand je rechange le pourcentage, cela doit tjs se faire sur base du nombre de départ! Donc y a t il un moyen de mettre ce nombre en mémoire tampon ou autre? je ne m'y connais pas assez :s
Au secours...
 
NB: Je ne suis pas dans un Userform!! mais directement sur la feuille excel


Message édité par bingojm le 12-02-2009 à 15:52:05
Reply

Marsh Posté le 12-02-2009 à 14:32:41   

Reply

Marsh Posté le 12-02-2009 à 16:21:31    

Normal, tu dis que le resultat de ta cellule = ta cellule moins/plus le pourcentage.
 
Soit tu passes par une etape intermediaire genre :
Depart     |   Pourcentage    | Resultat
 
 
Soit, tu ne peux pas passer par une formule (car la cellule source est aussi la cellule resultante) et tu n'auras que le resultat dans la cellule, en vba ca donnerait :

Citation :

Const Val1=150
Private Sub ComboBox1_Change()  
      Range("F9" ).value = Val1 * (1- cdbl(ComboBox1.Value)/100) 'pas besoin de tes if, on prend direct la valeur dans la combobox
End Sub

L'inconvenient c'est que tu stockes dans une constante la valeur, et non plus dans ta cellule.
 
 
Mais le mieux reste tout de meme de passer par une etape intermediaire vu que tu veux garder en memoire le nombre de départ.
 
Cordialement


Message édité par SuppotDeSaTante le 12-02-2009 à 16:31:56

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 12-02-2009 à 16:38:05    

oui en effet pour l'étape intermédiaire car si je calcule les 10% sur le nombre puis que je veux remettre 0% ou 15%, ca ne se calculera plus sur le nombre de départ...
Mais concrètement, comment puis-je écrire une étape intermédiaire? Je ne vois pas du tout...
Je pensais à copier le nombre dans une autre cellule est la cacher? (si c'est possible)

Reply

Marsh Posté le 12-02-2009 à 16:47:00    

C'est bon j'ai trouvé, merci
J'ai copié mon nombre dans une autre cellule et cela va parfaitement.
Il me reste à trouver comment cacher le nombre dans cette autre cellule...

Reply

Marsh Posté le 12-02-2009 à 16:50:25    

Euh tu as regardé mon code ?
Il y a une constante. Donc si tu t'amuse a changer un nombre dans une cellule cachée, autant la changer directement dans ton code.
 
Apres il y a d'autre moyen de faire ce que tu veux, mais je n'en sais pas assez. Vas tu avoir d'autre valeur ? Pourquoi passer par un combobox et pas par une liste de validation ? etc.


Message édité par SuppotDeSaTante le 12-02-2009 à 16:51:19

---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed