XL 2013 Calcule de produit dans un textbox

Appo1985

XLDnaute Occasionnel
Bonjour
Je voudrais que la valeur d'un textbox (textbox4) soit le produit des valeurs de deux textbox (textbox5 et textbox6) ceci quand une condition est remplie. La condition est que les textbox 5 et 6 soient visibles car il sont souvent masqués .
J'ai fait le code ci-dessous mais je ne sais pas si il n'a pas d'anomalies et je ne sais où placer le code pour que ça marche.
Je voudrais que ça soit calculer en même temps que j'introduis les chiffres dans les textbox 5 et 6

Merci par avance
Code:
Private Sub TextBox4_Change()
If UserForm1.TextBox5.Visible = True And UserForm1.Label8.Visible = True And UserForm1.TextBox6.Visible = True Then
Me.TextBox4.Value = (Me.TextBox5.Value * Me.TextBox6.Value)
End If
End Sub
 
Solution
Bonjour
Un fichier est TOUJOURS le bienvenu
qui dit textbox dit texte et on multiplie pas des carottes avec des navets
tes textbox 4 et 5 sont ils des entiers (15,80, etc...) ou des doubles '10.25,16.32,etc)
dans le 1er cas cint(textbox4)*cint(textbox5) dans le 2ème cdbl(textbox4)*cdbl(textbox5)
le mettre ou
Private Sub textbox4_AfterUpdate()
if textbox4.value<>"" and textbox5<>"" then
me.textbox6.value=cdbl(textbox4)*cdbl(textbox5)
endif
et idem pour l'autre textbox

A+ François

fanfan38

XLDnaute Barbatruc
Bonjour
Un fichier est TOUJOURS le bienvenu
qui dit textbox dit texte et on multiplie pas des carottes avec des navets
tes textbox 4 et 5 sont ils des entiers (15,80, etc...) ou des doubles '10.25,16.32,etc)
dans le 1er cas cint(textbox4)*cint(textbox5) dans le 2ème cdbl(textbox4)*cdbl(textbox5)
le mettre ou
Private Sub textbox4_AfterUpdate()
if textbox4.value<>"" and textbox5<>"" then
me.textbox6.value=cdbl(textbox4)*cdbl(textbox5)
endif
et idem pour l'autre textbox

A+ François
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Appo,
Après 140 messages, vous ne vous posez toujours pas la question de savoir si un petit fichier test serait utile ? Ne serait ce pour éviter qu'on se le retape.
Un essai en PJ avec :
VB:
Private Sub TextBox5_Change()
    Calcule
End Sub
Private Sub TextBox6_Change()
    Calcule
End Sub
et dans un module :
Code:
Sub Calcule()
On Error GoTo Fin
With UserForm1
If .TextBox5.Visible = True And .TextBox8.Visible = True And .TextBox6.Visible = True Then
        .TextBox4.Value = CInt(.TextBox5.Value) * CInt(.TextBox6.Value)
End If
Exit Sub
Fin:
    .TextBox4.Value = ""
End With
End Sub
Un Textbox renvoie du texte comme son nom l'indique donc il faut le convertir avant de le traiter.
Sans oublier que le Textbox peut contenir autre chose qu'un nombre sous forme de texte mais réellement du texte, d'où la sécurité.

1701078590236.png
 

Pièces jointes

  • Userform.xlsm
    16.4 KB · Affichages: 2

Appo1985

XLDnaute Occasionnel
Bonjour.
Bonjour Appo,
Après 140 messages, vous ne vous posez toujours pas la question de savoir si un petit fichier test serait utile ? Ne serait ce pour éviter qu'on se le retape.
Un essai en PJ avec :
VB:
Private Sub TextBox5_Change()
    Calcule
End Sub
Private Sub TextBox6_Change()
    Calcule
End Sub
et dans un module :
Code:
Sub Calcule()
On Error GoTo Fin
With UserForm1
If .TextBox5.Visible = True And .TextBox8.Visible = True And .TextBox6.Visible = True Then
        .TextBox4.Value = CInt(.TextBox5.Value) * CInt(.TextBox6.Value)
End If
Exit Sub
Fin:
    .TextBox4.Value = ""
End With
End Sub
Un Textbox renvoie du texte comme son nom l'indique donc il faut le convertir avant de le traiter.
Sans oublier que le Textbox peut contenir autre chose qu'un nombre sous forme de texte mais réellement du texte, d'où la sécurité.

Regarde la pièce jointe 1184760
Merci bien. Je joindrez désormais un fichier exemple
Voici donc le fichier sur lequel je travaille.
J'ai adopté le code que je viens de recevoir et ça fonctionne.
Je signale que les textbox s'affiche quand je saisie 1 dans combobox1
 

Pièces jointes

  • Classeur3.xlsm
    15.3 KB · Affichages: 1

Discussions similaires

Statistiques des forums

Discussions
312 933
Messages
2 093 734
Membres
105 803
dernier inscrit
metroMBP