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.

2 réponses

  1. Polux31 Messages postés 7219 Statut Membre 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
  2. dreamerforever
     
    Merci infiniment. Cette réponse est parfaite ;)
    0