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,


Dans ce cas, joindre un fichier exemple qui respecte cette conception (mais sans données confidentielles) serait un plus pour faire des tests.

PS: Il n'est jamais interdit de revoir la conception d'un classeur.
Notamment si comme moi, on a tatoué sur l'épaule gauche ce principe K.I.S.S
A ne pas confondre avec ce KISS;)

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
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
344

Statistiques des forums

Discussions
312 211
Messages
2 086 296
Membres
103 171
dernier inscrit
clemm