Calcul identique sur plusieurs textbox
Bonsoir à tous,
Je débute en VBA et je crois que je me suis lancé dans un truc trop complexe pour moi et j'aimerais votre aide.
C'est un formulaire pour remplir automatiquement un tableau par un UsF.
En gros, c'est un fichier me permettant de calculer des prix de ventes pour faire des offres de prix client.
1/ le client me fais parvenir une demande de prix comportant une ou plusieurs positions.
2/ il faut que je calcule les prix de ventes des différentes positions en fonction de différentes quantités voulues par le client.
première des choses à faire à l'ouverture de l'UsF est d'indiquer le nombre de positions sur la demande d'offre.
Cela permet de faire apparaître les onglets positions.
ensuite sur les pages positions, il faut renseigner les quantités voulues ( ex : 3,5 et 10 pces)
Cela fait apparaître les textbox et les combobox utiles pour les calculs.
Pour le calcul du prix, deux possibilités : soit le prix de la matière première est unique pour n'importe quelle quantité, soit le prix d'achat est différent.
C'est là que ça se complique pour moi, car en fonction du toggle button, le calcul doit prendre une autre textbox pour donner le résultat, et ça,je n'arrive pas à le coder
La formule de calcul se trouve en tout début du code de l'usf. celle-ci est affectée à la quantité 2 de la page pos1 et ne prend pas en compte la textbox "prix unique"
Ce qui m’embête aussi est que je dois tout réécrire pour chaque quantités pour mes 5 pages" Positions" soit 40 fois pour le même calcul. Il est surement possible de remédier à cela.
J'aurais besoin de vous pour m'aider à coder cela.
J'espère que mes explications sont suffisantes.
Je vous joint le fichier.
Merci.
Philippe.
Ré-explication de mon problème.
Bon, je me lance dans une explication plus claire de mon soucis ( enfin je l'éspère )
J'ai un Usf avec un multipage. La première page est la page principale( données client), la deuxième Pos1, est une page descriptive et de calcul. Les quatre dernières pages(Pos2, 3,4 et 5) sont simplement des copier-coller de la page Pos1.
Sur la page Pos1, j'ai un toggle button, ainsi que plusieurs Textbox et Combobox.
J'aimerais que lorsque le Toggle button est false, le calcul : PV = PA /(((100-MB))/100) avec
PV= Textbox (TB_PV_1_1)
PA= Textbox (TB_PA_1_9) et
MB = Combobox (CB_MA_1_1)
et lorsque le Toggle button est True alors, le même calcul avec
PV= Textbox (TB_PV_1_1)
PA= Textbox (TB_PA_1_1) et
MB = Combobox (CB_MA_1_1)
Mon code Actuel :
Code:
1 2 3 4 5 6 7 8 9 10
| 'Calcul PV page pos1 qté 2
Private Sub TB_PA_1_1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 46 Then KeyAscii = 44
End Sub
Private Sub CB_MB_1_1_change()
TB_PV_1_1 = CDbl(TB_PA_1_1) / ((100 - CDbl(CB_MB_1_1)) / 100)
End Sub
Private Sub TB_PA_1_1_change()
TB_PV_1_1 = CDbl(TB_PA_1_1) / ((100 - CDbl(CB_MB_1_1)) / 100)
End Sub |
Mon code permet de forcer la virgule à la place du point et est écrit sans tenir compte de la condition de Toggle Button.
Le soucis : Actuellement j'ai 3 fonctions pour un seul calcul. Sur ma page Pos2, il faut que je répète 8 fois ce code, affecté a des textbox et combobox différents. Il faut que je fasse la même chose sur mes 3 autres pages (pos3, pos4 et pos5).
J'ai peur d'alourdir extrêmement le code si j'affecte ces fonctions sur chaque textbox et combobox de mon Usf.
Est-il possible de faire autrement en plus "léger"?
J'espère que maintenant, ma demande est plus claire.
Merci de vos réponses.
P.S : pour ceux qui voudrait voir mon fichier, il se trouve dans le troisième post de ce sujet.