Bonjour à tous.

J'ai encore besoin d'aide afin de comprendre le résultat de mon code.

J'ai textbox 3 et 4 qui demandent des nombres. Textbox4 doit être plus grand que textbox3.
Le résultat de la soustraction de textbox3 - textbox4 s'affiche dans label16

Si le nombre de textbox4 est supérieur à textbox3, j'ai un msgbox afin de corriger la situation.

Voici mes codes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub TextBox4_AfterUpdate()
'si il n'y a rien dans les textbox on ne calcule pas
    If Me.TextBox3.Value = "" Or Me.TextBox4.Value = "" Then Exit Sub
    Me.Label16.Caption = Me.TextBox3.Value - Me.TextBox4.Value
 
    If Me.TextBox3.Value = "" Or Me.TextBox4.Value = "" Then Exit Sub
    Me.Label18.Caption = Round(Me.TextBox4.Value / Me.TextBox3.Value * 100, 2)
If Label16 < 0 Then
MsgBox "Le nombre de kilomètres pour des fins d'affaires est suppérieur au total des kilomètres parcourus", vbOKOnly
TextBox4 = ""
TextBox3.SetFocus
 
 
Exit Sub
 
End If
End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 
Select Case KeyAscii
    Case 48 To 57, 8
 
    Case Else
        KeyAscii = 0
End Select
 
If Len(TextBox4.Text) >= 6 Then KeyAscii = 0
 
End Sub
Selon moi, dans le premier code je devrais revenir au textbox3 si label16 < 0 mais non, je passe au textbox suivant.

Quel est mon erreur ?

Merci à l'avance