Message box avec condition

piwiss

XLDnaute Nouveau
Bonjour,

J'espère que tout le konde va bien. J'ai besoin de votre aide svp.
En fait j'ai une liste déroulante (oui / non) dans la colonne A1. Et jáimerai que quand je choisis "Oui", les contenus des cellules B1, C1, D1, E1 s'effacent. Sinon le contenu de la cellule A1 reste "Non". Et ainsi de suite pour les autres lignes. Ca marche , mais le problème c'est que quand je choisis "Oui" pour d'autre lignes, le message box s'affiche deux ou trois fois ou plus. Mais j'aimerai que le macro se tient compte seulement de la ligne considérée.
J'espère que mon explication est claire, ci-joint le fichier.
Merci déjà pour votre aide.
 

Pièces jointes

  • messagebox1.xlsm
    13.9 KB · Affichages: 12

Lolote83

XLDnaute Barbatruc
Salut,
Peut être comme ceci
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim reponse
    Application.EnableEvents = False
    xLig = Target.Row
    If Range("A" & xLig) = "OUI" Then
        reponse = MsgBox("Are you sure?", vbQuestion + vbYesNo, "")
        If reponse = vbYes Then
            Range("B" & xLig & ":E" & xLig) = ""
        End If
    End If
    Application.EnableEvents = True
End Sub
En espérant avoir bien compris
@+ Lolote83
 

piwiss

XLDnaute Nouveau
Salut,
Merci beaucoup pour votre aide, c'est ce que je voulais. J'ai seulement ajouter :

Else Range("A" & xLig) = "NON"


VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim reponse
    Application.EnableEvents = False
    xLig = Target.Row
    If Range("A" & xLig) = "OUI" Then
        reponse = MsgBox("Are you sure?", vbQuestion + vbYesNo, "")
        If reponse = vbYes Then
            Range("B" & xLig & ":E" & xLig) = ""
        Else
            Range("A" & xLig) = "NON"
        
        End If
    End If
    Application.EnableEvents = True
End Sub
 

Discussions similaires

Réponses
2
Affichages
104
Réponses
2
Affichages
340

Statistiques des forums

Discussions
312 036
Messages
2 084 812
Membres
102 676
dernier inscrit
LN6