XL 2019 CheckBox et MsgBox vbYesNoCancel

  • Initiateur de la discussion Initiateur de la discussion meldja
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

meldja

XLDnaute Impliqué
Bonjour,
Je me prends la tête sur une case à cocher qui renvoie sur un MsgBox vbYesNoCancel.
Je voudrais que si on décoche le CheckBox, le MsgBox ne se lance pas et que la valeur en I15 soit effacée.
Que si on coche le CheckBox, un choix soit proposé,
Yes => on copie une valeur en I15
No => on copie une autre valeur en I15
Cancel => on ne copie rien mais on décoche le CheckBox.
Le soucis c'est que selon l'option choisie, le MsgBox revient et il faut valider 2 à 3 fois la réponse.
Si quelqu'un a une idée, je joins le fichier test.
Cordialement
 

Pièces jointes

Bonjour,

voir le fichier joint la macro ci-dessous qui fait ce que vous dites :

VB:
Private Sub CheckBox1_Click()

    If CheckBox1 Then
        Select Case MsgBox("Restaurant administratif ?", vbYesNoCancel, "TYPE DE RESTO")
        Case vbYes: Range("I15") = Range("C56").Value
        Case vbNo: Range("I15") = Range("C57").Value
        Case vbCancel: CheckBox1.Value = False
        End Select
    Else
        Range("I15").ClearContents
    End If

End Sub

Le type de retour d'un msgbox n'est pas un Boolean mais un Integer dont vous trouverez les valeurs dans l'aide Microsoft :

Valeurs de retour​

ConstanteValeurDescription
vbOK1OK
vbCancel2Cancel
vbAbort3Abandonner
vbRetry4Réessayer
vbIgnore5Ignore
vbYes6Oui
vbNo7Non


P.S. pas utile de zipper les fichiers .xlsm s'ils font moins d'un mégaoctet pour les joindre ici.
Cordialement
 

Pièces jointes

Re,
J'ai remis un autre fichier avec du code plus propre j'ai l'impression et j'ai mis des commentaires.
Le problème n'est pas résolu.
Si je choisi la réponse oui, c'est bon.
Si je choisi la réponse non ou annulé, je dois cliquer 2 fois.
Cordialement
 

Pièces jointes

Bonjour.
Je dirais comme ça :
VB:
Private Sub CheckBox1_Click()
If CheckBox1.Value Then
   Select Case MsgBox("Restaurant administratif ?", vbYesNoCancel, "TYPE DE RESTO")
      Case vbYes: [I15].Value = [C56].Value
      Case vbNo: [I15].Value = [C57].Value
      Case Else: CheckBox1.Value = False
      End Select
   Else
      [I15].Value = Empty
      End If
   End Sub
Remarque. MsgBox ne renvoie pas un Boolean mais un VbMsgBoxResult.
 
Re,
J'ai remis un autre fichier avec du code plus propre j'ai l'impression et j'ai mis des commentaires.
Le problème n'est pas résolu.
Si je choisi la réponse oui, c'est bon.
Si je choisi la réponse non ou annulé, je dois cliquer 2 fois.
Cordialement
Bonjour,
Désolé, j'habite sur un bateau et je ne peux pas utiliser de PC, je n'ai pas de 220 volt, que du 12. En arrivant au boulot ce matin, je viens de consulter vos réponses, ce pourquoi je réponds aussi tardivement.
En tout cas merci à tous les deux, vos solutions fonctionnent nickel. Je vous souhaite une bonne journée et je mets ce poste en résolu.
Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
355
  • Question Question
XL 2019 Mgsbox
Réponses
8
Affichages
953
Retour