Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Msgbox différent selon le contenu d'une cellule

pat66

XLDnaute Impliqué
Bonjour le forum,

Je souhaiterai que le msgbox soit différent selon le contenu d'une cellule ce qui n'est pas le cas avec ma macro actuelle

Macro actuelle :

Sub osp()
Dim AnswerYes As String
Dim AnswerNo As String
AnswerYes = MsgBox("Souhaitez vous activer cette option ?", vbQuestion + vbYesNo, "Information")
If AnswerYes = vbYes Then
conditions 1 ........
else
conditions 2 .........
end if
end sub

Je souhaiterai un message différent selon le contenu de Y151, exemple :
Si cellule Y151 = "Oui"
MsgBox("Souhaitez vous désactiver cette option ?", vbQuestion + vbYesNo, "Information")
si réponse No = cancel = true
si réponse Yes
conditions 1 ...................

Si cellule Y151 = "Non"
MsgBox("Souhaitez vous activer cette option ?", vbQuestion + vbYesNo, "Information")
si réponse No = cancel = true
si réponse Yes
conditions 2 ...................

j'espère être clair
un grand merci et bon we

pat66
 
Dernière édition:
Solution
Bonjour @pat66 et @Staple1600

Je propose ceci

VB:
Sub osp()
Dim Reponse As Byte
Select Case Range("Y151")
Case "Oui"
    Reponse = MsgBox("Souhaitez vous désactiver cette option ?", 36, "Information")
    If Reponse = 6 Then         'L'utilisateur a répondu Oui
        'Condition Oui
    Else                        'L'utilisateur a répondu Non
        'Condition Non
    End If
Case "Non"
    Reponse = MsgBox("Souhaitez vous activer cette option ?", 36, "Information")
    If Reponse = 6 Then         'L'utilisateur a répondu Oui
        'Condition Oui
    Else                        'L'utilisateur a répondu Non
        'Condition Non
    End If
End Select
End Sub

Merci de ton retour
*Edit : Ajout du fichier

@Phil69970

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjo @pat66 , @Staple1600 , @Phil69970 ,

I k.i.s.s. you comme dirait @Staple1600 ou .

Juste pour le fun, en une seule instruction (Dans Y151, "Oui" est considérée comme étant "oui", tout autre contenu est assimilé à "non"). Le code :
VB:
Sub osp()
   If MsgBox("Cette option est actuellement" & IIf(LCase([y151]) = "oui", " activée.", " désactivée.") & vbLf & vbLf & "Voulez-vous" & IIf(LCase([y151]) = "oui", " la désactiver ?", " l'activer ?"), vbQuestion + vbYesNo + vbDefaultButton1) = vbYes Then [y151] = IIf(LCase([y151]) = "oui", "Non", "Oui") Else [y151] = IIf(LCase([y151]) = "oui", "Oui", "Non")
End Sub
 

Pièces jointes

  • pat66- oui ou non- v1.xlsm
    18.1 KB · Affichages: 5
Dernière édition:

pat66

XLDnaute Impliqué

Re,

bonsoir mapomme,
ta proposition est très instructive, mais je ne sais pas ou placer les différentes conditions selon le choix "oui" ou "non"
cdt
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
551
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…