Affichage de la msgBox 2 fois (VBA Excel)

Résolu/Fermé
dreamerforever - Modifié par dreamerforever le 25/05/2010 à 13:59
 dreamerforever - 25 mai 2010 à 16:35
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 mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
25 mai 2010 à 15:38
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
25 mai 2010 à 16:35
Merci infiniment. Cette réponse est parfaite ;)
0