Affichage de la msgBox 2 fois (VBA Excel)

Résolu
dreamerforever -  
 dreamerforever -
Bonjour,

Je code actuellement sous Excel 2007 avec VBA et je rencontre un problème assez génant à la longue. En effet, ma msgBox s'affiche 2 fois alors que cela n'a pas lieu d'être. Ci-joint mon code permettant de rentrer un code postal pour exemple.


Private Sub cp_Change() 
    cp.MaxLength = 5 ' Le code postal se compose de 5 caractères maximal. 
    If Not IsNumeric(cp.Text) Then 
        cp.Value = "" 
        MsgBox "Le code postal doit être composé de 5 chiffres.", vbExclamation, "Erreur" 
    End If 
End Sub



Je vous remercie par avance.
A voir également:

2 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

C'est parce que tu es dans l'évènement Change(). En faisant cp.Value = "", tu relance l'évènement. Il suffit de faire un test en entrée de procédure. Si le contenu de la textbox est vide alors on ne teste pas et on sort de la procédure.

Private Sub cp_Change()
    cp.MaxLength = 5 ' Le code postal se compose de 5 caractères maximal.
    
    If cp.Text = "" Then Exit Sub
        
    If Not IsNumeric(cp.Text) Then
        MsgBox "Le code postal doit être composé de 5 chiffres.", vbExclamation, "Erreur"
        cp.Value = ""
        Exit Sub
    End If
    
End Sub


;o)
2
dreamerforever
 
Merci infiniment. Cette réponse est parfaite ;)
0