Multiplication de Valeurs Textbox USERFORM

Bonsoir,

Débutant sur VBA, je viens demander votre aide !

Je vous explique, j'ai créer un userform qui récupère des données (depuis une feuille demon classeur excel). J'ai donc dans un textbox, un prix (c'est le prix d'un achat quelconque venant de ma feuille). J'ai crée un autre textbox avec une toupie (allant de 1 à 100) afin d'indiquer la quantité de cet achat.

J'ai donc crée un 3eme textbox pour indiquer le Total (prix * quantité ). Je n'arrive pas à faire le code pour faire cette multiplication entre les deux textbox (prix et quantité) pour afficher le resultat dans le troisème.

Voici le code en gros de mes 3 textbox

Pouvez-vous m'aider svp ?

' Toupie - Textbox2 Quantité "

Private Sub tpiQuantite2_Change()

txtQuantite2.Value = tpiquantite2.Value

End Sub

' Txt Prix = Textbox 1 '
Private Sub txtprix2_change()

If Test_txt Then
        Test_zlm = False: Test_txt = False
        Set C = feuille4.Range("E2:E" & DerLig).Find(Me.txtPrix2.Value, , xlValues, xlWhole)
        If Not C Is Nothing Then
        Me.zlmproduit2.Value = feuille4.Cells(Me.txtPrix2.Value + 2, 2).Value
        Me.zlmnumerodeproduit2.Value = feuille4.Cells(Me.txtPrix2.Value + 2, 1).Value
        Me.zlmreferenceproduit2.Value = feuille4.Cells(Me.txtPrix2.Value + 2, 4).Value

End If
Test_txt = True: Test_zlm = True
End If
End Sub
' Textbox 3 produit du prix et quantite '
Private Sub txtMontantTotal_Change
Me.txtMontantTotal.Value = (txtPrix2.Value * txtQuantite2.Value)
End sub

Cdt

Bonsoir,

A-priori, si tu dis que la valeur PrixTotal résulte de PrixUnitaire * Quantité mais que tu places ce calcul dans la procédure Change du TextBox qui doit accueillir le PrixTotal, ça se mord la queue ! il n'a aucune chance de changer puisque rien ne vient modifier son contenu.

C'est au niveau des changements de PrixUnitaire et de Quantité que le PrixTotal doit être recalculé.

L'autre condition que l'on ne peut pas voir dans ce code, c'est que ce doit être des nombres que tu multiplie entre eux...

Cordialement.

D'accord,

Je comprend du coup... Pourrais tu me donner le code que tu effectuerai du coup stp car je t'avoue que ca fait quelques heures que je bloques et je n'arrive plus rien à faire logiquement ...

Merci beaucoup pour ta réponse rapide

Si ta ligne de calcul est bonne (soit si tu as bien des nombres, sinon je ne pourrais pas trouver ce qui empêche le résultat sans voir),

il faut que tu mette cette ligne de calcul en fin des 2 autres procédures, car si la quantité change, il faut recalculer le prix total et si le prix unitaire change il faut aussi le recalculer.

Si tu sers les deux autres TextBox manuellement, il serait sans doute bon de mettre en condition que l'autre ne soit pas vide, pour t'éviter d'avoir un résultat à 0.

Exemple :

' dans tpiQuantite2_Change
If txtprix2 <> "" Then
    Me.txtMontantTotal.Value = (txtPrix2.Value * txtQuantite2.Value)
Else
    Me.txtMontantTotal.Value = ""
End If

'dans txtprix2_Change
 If txtQuantite2 <> "" Then
    Me.txtMontantTotal.Value = (txtPrix2.Value * txtQuantite2.Value)
Else
    Me.txtMontantTotal.Value = ""
End If

C'est exactement ça !

Super je te remercie beaucoup pour ta réponse et ta solution!

[surligner]Par contre, il n'y a pas de prix associé a l'achat parfois (dans ma feuille)Du coup le code n'est pas valide des que je tombe sur un achat sans prix...

Du coup ça ne marche plus...[/surligner]

Si tu pouvais m'aider ça serai vraiment sympa, Merci !


J'ai modifié TotalMontant = Montant2

Private Sub txtprix2_change()
' Prix txt '
If Test_txt Then
        Test_zlm = False: Test_txt = False
        Set C = feuille4.Range("E2:E" & DerLig).Find(Me.txtPrix2.Value, , xlValues, xlWhole)
        If Not C Is Nothing Then
        Me.zlmproduit2.Value = feuille4.Cells(Me.txtPrix2.Value + 2, 2).Value
        Me.zlmnumerodeproduit2.Value = feuille4.Cells(Me.txtPrix2.Value + 2, 1).Value
        Me.zlmreferenceproduit2.Value = feuille4.Cells(Me.txtPrix2.Value + 2, 4).Value
        End If
Test_txt = True: Test_zlm = True
End If

If txtQuantite2 <> "" Then
    Me.txtMontant2.Value = (txtPrix2.Value * txtQuantite2.Value)
Else
    Me.txtMontant2.Value = ""
End If

End Sub

' Toupie Quantité "

Private Sub tpiQuantite2_Change()

txtQuantite2.Value = tpiquantite2.Value
If txtPrix2 <> "" Then
    Me.txtMontant2.Value = (txtPrix2.Value * txtQuantite2.Value)
Else
    Me.txtMontant2.Value = ""
End If

End Sub

Ça marche ou pas ? Sinon qu'est-ce qui ne marche pas ?

En gros, quand je simule mon userform et que selectionne un achat qui n'a pas de prix, le userform beugue et me renvoie au code pour modifier car il y a un probleme.

Si c'est sur le prix que tu fais ta recherche, elle ne peut pas aboutir s'il n'y a pas de prix !

Dans ce cas il vaut mieux ne rien faire et sortir de la procédure avant...

Je ne sais comment tu as prévu le cas !

Je fais la recherche en fonction de l'achat, son numero, ou sa réference et le prix s'affiche automatiquement.

En fait, je voudrais juste que si jamais il n'ya pas de prix, ben rien ne se passe

Le code que tu montres fait une recherche sur textprix2.

Si ce n'est pas toi qui le saisit, je ne peux voir ce qui l'alimente...

Rechercher des sujets similaires à "multiplication valeurs textbox userform"