calcul automatique sur un userform

  • Initiateur de la discussion Initiateur de la discussion famdsm
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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:
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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
211
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
520
Réponses
40
Affichages
2 K
Réponses
3
Affichages
723
Retour