calcul automatique sur un userform

famdsm

XLDnaute Junior
bonjour
j'ai quatre textbox sur un userform, dont trois portent des chiffres alors que la quatrieme doit apporter la somme de ces trois.
je veux que une fois l'userform initialize en entrant les chiffres dans les textbox la somme s'effectue dans la quatrieme spantannement. Merci pour votr aide
 

VDAVID

XLDnaute Impliqué
Re : calcul automatique sur un userform

Bonjour Fadsm,

Pas facile de t'aider sans plus de précisions ...
Tu peux essayer dans le code de ton userform:
A condition que la TextBox où se trouve la somme corresponde à la TextBox4

Code:
Private Function Val1() As Currency
Val1 = Replace(TextBox1.Value, ".", ",")
End Function
Private Function Val2() As Currency
Val2 = Replace(TextBox2.Value, ".", ",")
End Function
Private Function Val3() As Currency
Val3 = Replace(TextBox3.Value, ".", ",")
End Function
Private Sub TextBox1_AfterUpdate()
If TextBox1 <> "" And TextBox2 <> "" And TextBox3 <> "" Then
TextBox4.Value = Val1 + Val2 + Val3
GoTo Finish
End If
TextBox4.Value = ""
Finish:
End Sub
Private Sub TextBox2_AfterUpdate()
If TextBox1 <> "" And TextBox2 <> "" And TextBox3 <> "" Then
TextBox4.Value = Val1 + Val2 + Val3
GoTo Finish
End If
TextBox4.Value = ""
Finish:
End Sub

Private Sub TextBox3_AfterUpdate()
If TextBox1 <> "" And TextBox2 <> "" And TextBox3 <> "" Then
TextBox4.Value = Val1 + Val2 + Val3
GoTo Finish
End If
TextBox4.Value = ""
Finish:
End Sub

Private Sub UserForm_Click()
TextBox4.Enabled = False
End Sub
Bonne journée !
 
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : calcul automatique sur un userform

bonjour famdsm , VDAVID
une facon de l'ecrire on peut utiliser le point ou virgule code brut pas simplifier & optimiser.... attention VAL accepte que le point..
 

Pièces jointes

  • Calcul.xls
    49.5 KB · Affichages: 115
  • Calcul.xls
    49.5 KB · Affichages: 115
  • Calcul.xls
    49.5 KB · Affichages: 113

toune21

XLDnaute Impliqué
Re : calcul automatique sur un userform

bonsoir famdsm, laetita90, VDAVID,

Voilà j'ai cette fonction pour le point du pavé numérique.

Private Sub txt_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'If InStr("0123456789.,", Chr(KeyAscii)) = 0 Then KeyAscii = 0
Select Case KeyAscii
Case Is = 46, Is = 44
KeyAscii = Asc(Application.International(xlDecimalSeparator))
Case Is < 48, Is > 57
KeyAscii = 0
End Select
End Sub


Je viens de l'essayer sur ton fichier et ça fonctionne.
Bonne soirée
 

Papou-net

XLDnaute Barbatruc
Re : calcul automatique sur un userform

Bonsoir famdsm, les participants,

Une petite amélioration du code de Laetitia, qui accepte aussi bien le point que la virgule en séparateur décimal. Une ligne ajoutée dans le code du module de classe :

Code:
Private Sub txt_Change()
txt.Value = Replace(txt.Value, ".", ",") ' <--- ligne ajoutée
 x = 0
 For i = 1 To 3
 If (UserForm1.Controls("Textbox" & i)) <> "" Then x = x + CDbl(UserForm1.Controls("Textbox" & i))
 Next
 UserForm1.TextBox4 = x
End Sub
Cordialement à tous,

Bises à Laetitia et à Marie Madeleine.
 

Pièces jointes

  • Calcul 01.xls
    49 KB · Affichages: 132

Discussions similaires

Réponses
93
Affichages
2 K

Statistiques des forums

Discussions
312 493
Messages
2 088 957
Membres
103 990
dernier inscrit
lamiadebz