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

MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

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 !

Nonno 94

XLDnaute Occasionnel
😕 Bonjour le Forum,

je viens vous demander conseil pour le choix et l'utilisation d'une MsgBox dans les conditions suivantes :
- Cas "Oui" = une procédure est lancée par Macro
- Cas "Non" = une 2 ème MsgBox (Oui/Non) est affichée avec le message suivant : "Me le redemander dans 5 minutes".
En cliquant sur "Oui", le rappel interviendra dans 5 ' et la 1 ère MsgBox s'affichera de nouveau;
en cliquant sur "Non", la macro s'arrête et la 1 ère MsgBox ne s'affichera plus.
- Cas "Abandonner" (éventuellement) = ??

Pouvez-vous me dire quelle MsgBox est, selon vous, la mieux adaptée à ce cas et quels codes permettront de la faire fonctionner ?

Avec mes remerciements pour vos réponses et en vous souhaitant une bonne journée.
Cordialement.

Nonno 94.
 
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

Salut

A première vue, ce choix t'incombe... Je me demande juste comment comprendre la différence entre abandonner et non ? Un UserForm avec "Oui + Non + Me le redemander" ne serait-il pas plus parlant ?
Pour la seconde partie de la question, l'aide VBA sur MsgBox est très claire... et sinon avec un bout de fichier travaillé jusqu'où tu y arrives, je suis sûr que l'on pourra t'aider à franchir le point de blocage...

Ya'v
 
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

Bonjour.
Je pense que je terminerais le texte de mon Select Case Of MsgBox(etc. par ", voulez vous l'exécuter maintenant ?", vbYesNoCancel, TitreTâche
Case vbYes: ExécutionProcédure, Case vbNo: Application.OnTime etc.
Cordialement.
 
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

😕😕 Bonsoir danreb et désolé d'avoir tardé à répondre du fait d'une urgence.

J'ai essayé de modifier le code ainsi que vous me l'avez indiqué mais j'ai dû commettre une erreur car j'ai un message ......d'erreur !
Voici ce que j'ai essayé de faire :

Code:
Sub mess_04a()
'MsgBox Oui + Non + Abandonner

Select Case MsgBox("Votre message ici", vbYesNoCancel, "Titre de la MsgBox")
 Case vbYes:  récupération_des_données (feuille)                         'Bonjour
 Case vbNo: Application.OnTime NextTime, "macro1", , False                        'BONSOIR
            MsgBox "fini"
 Case vbCancel: SALUTI
End Select
Range("A1").Select
End Sub

Le message d'erreur est le suivant :
"Erreur d'exécution 1004' et la méthode 'On Time' de l'objet '_Application' a échoué".
pour la ligne Case vbNo: Application.OnTime NextTime, "macro1", , False surlignée en jaune.

Ci-dessous, le code de la Macro1 pour la MsgBox qui propose de "redemander".

Code:
Sub macro1()
Dim NextTime As Double
NextTime = Now + TimeValue("00:00:20")
Excel.Application.OnTime NextTime, "macro1"

'MsgBox Oui + Non
Select Case MsgBox("Votre message ici", vbYesNo, "Titre de la MsgBox")
Case vbYes
MsgBox "Bonjour"
Case vbNo
Excel.Application.OnTime NextTime, "macro1", , False
MsgBox "fini"
End Select

Les Cases vbYes et vbCancel fonctionnent bien.

J'espère que vous parviendrez à corriger mon erreur. Avec mes remerciements.
Cordialement.

Nonno 94.
 
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

Bonsoir.
Il vaudrait mieux que NextTime soit déclaré As Date, et initialisé.
Je ne peux que vous conseiller de vérifier la valeur de NextTime, et si elle est bonne, de vérifier si macro1 est bien écrit dans un module ordinaire et non un module de classe ou assimilé.
À +
 
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

😕😕 Bonjour Dranreb,

vous voudrez bien m'excuser de ne pas avoir répondu plus tôt du fait d'obligations professionnelles.
Je ne comprends pas ce que vous me demandez; aussi, je vous joins un petit fichier qui vous permettra, je l'espère de mieux comprendre ma demande.
Dans ce fichier, la "MsgBox Oui + Non + Abandonner" s'ouvre lorsque la valeur de la cellule [J1] est égale à 1.
Les options seraient les suivantes :
- Le cas "Oui" lance une macro (Bonjour dans le fichier joint) et
- je souhaiterais que le cas "Non" ouvre la "'MsgBox Oui + Non" affichant le message suivant :"Redemander dans 5 minutes ?"
avec Rappel dans 5 minutes pour le choix "Oui" par une macro et le texte "Sortir" pour le choix "Non".
- le cas "Abandonner" = la MsgBox "s"efface".

Il faudrait donc remplacer la macro "Bonsoir" du fichier joint ce que je ne parviens pas à faire.
Si cela est possible, pouvez-vous m'indiquer de quelle façon ?

Avec mes remerciements et en vous souhaitant une bonne journée.
Cordialement.

Nonno 94.
 
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

Bonjour.
VB:
Sub macro1()
Select Case MsgBox("Sauf annulation de votre part, une certaine tâche longue serait nécessaire." _
   & vbLf & "Est-ce maintenant que vous voulez l'effectuer ?", vbYesNoCancel, "Titre de la MsgBox")
   Case vbYes: MsgBox "Ici: Exécution de la tâche en question"
   Case vbNo: Application.OnTime Now + TimeValue("00:00:20"), "macro1"
   End Select
End Sub
Cordialement.
 
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

🙂🙂 Re et merci pour cette réponse qui me convient parfaitement.

J'aimerais simplement vous poser une dernière "petite" question sur cette discussion; à savoir comment changer le titre (actuellement "Microsoft Excel" de cette MsgBox ?

Code:
Case vbYes: MsgBox "Ici: Exécution de la tâche en question"

Avec mes remerciements et en vous souhaitant une bonne fin d'après-midi.
Cordialement.

Nonno 94.

P. S. : le Lion veille-t-il toujours paisiblement sur le Territoire dans lequel mon père est né il y a plus d'un siècle ?
 
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

Bonsoir.
comment changer le titre (actuellement "Microsoft Excel" de cette MsgBox
Est-ce possible que vous n'ayez pas compris que c'était le 3ième paramètre qu'il fallait spécifier à la place de ce titre par défaut ?
Mettez le curseur sur le mot MsgBox et touche F1.
Là je n'avais pas mis un MsgBox complètement renseigné comme je le fais toujours, parce que ne pensais pas que vous y laisseriez un MsgBox: c'était juste pour montrer l'endroit où il fallait exécuter la mystérieuse tâche en question, soit par appel d'une procédure soit carrément par les instructions qui l'effectuent.
Le Lion veille-t-il toujours paisiblement
Oui, et ce n'est pas demain la veille qu'on reprendra la chanson d’Henri Salvador à propos de ce petit frère de la statue de la liberté.

P.S. Je viens de voir le lien proposé par Pierrot, que je salue. Je précise: lorsqu'on a besoin de la valeur MsgBoxResult rendue par MsgBox, comme c'est le cas dans un Case Off c'est la syntaxe à employer pour les fonction qu'il faut appliquer: il faut encadrer les paramètres de parenthèses. Quand on l'utilise comme procédure il n'en faut pas.
Cordialement.
 
Dernière édition:
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

😕😕 Bonjour Messieurs,

A chaque jour suffisant sa "peine Excel" et la journée d'hier ayant de ce point de vue été plutôt animée, je reviens aujourd'hui pour une "petite" (mais trop grande pour moi !) demande de réglage sur les codes que vous avez contribué (largement) à mettre au point.
Pour vous permettre de mieux "apprécier" la situation, je joins un fichier d'essai.
Le réglage est le suivant : ne pas avoir à cliquer 2 fois sur les boutons de la MsgBox Oui + Non + Abandonner et les boutons de la MsgBox Oui + Non pour "sortir".
Ce "léger désagrément" dont je ne parviens pas à trouver la cause ne se produit qu'à l'ouverture du fichier.

Vous sachant perfectionnistes, j'ai pensé que vous souhaiteriez "régler" ce problème .......

En vous remerciant par avance et en vous souhaitant une bonne journée.
Cordialement.

Nonno 94.
 
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

Bonjour.
Mais pourquoi faites vous si compliqué ? Supprimez macro1 et faites dans mess_04a:
VB:
Case vbNo:   Application.OnTime Now + TimeValue("00:00:20"), "mess_04a"
Cordialement.
 
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

😛😛 Bonjour Dranreb et merci pour votre réponse.

Il semble malheureusement que votre modification ne donne pas le résultat attendu; en effet, le "rappel" se produit toujours !
Voici le code tel que je l'ai modifié :

Code:
Sub mess_04a()
'MsgBox Oui + Non + Abandonner

Select Case MsgBox("Les Données 'CONSENSUS' doivent être mises à jour. Voulez-vous lancer la Procédure maintenant ?", vbYesNoCancel, "IMPORT des Données 'CONSENSUS'")
 Case vbYes:  BONJOUR    'récupération_des_données (feuille)           'BONJOUR
 Case vbNo:   Application.OnTime Now + TimeValue("00:00:20"), "mess_04a"  'macro1
 Case vbCancel: MsgBox "Procédure ajournée. Au revoir.", vbOKOnly, "IMPORT des Données 'CONSENSUS'"
End Select
  Feuil3.Worksheet_SelectionChange Feuil3.Range("A1")  'Range("A1").Select
End Sub

Est-il modifié ainsi que vous me l'avez indiqué ?

Cordialement.
Nonno 94.

P. S. : si je ne "fais pas simple", c'est parce que comme tous les "débutants" (pour ne pas dire "mauvais"), je ne sais pas ..... !!!!!
 
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

Chez moi en appliquant cette modification la sub mess_04a n'est pas rappelée si on fait Annuler tout de suite.
P.S.: Evitez quand même d'activer des feuilles dans les macro: ça ne sert à rien: travaillez partout avec les CodeName des feuilles plutot qu'avec ActiveSheet. Évitez les Select en général.
À +
 
Dernière édition:
Re : MsgBox Oui + Non ou MsgBox Oui + Non + Abandonner ?

salut

Si... j'ai bien compris la première demande (2 questions)
Code:
Sub mess_04a()
  Application.Goto Feuil3.Range("A1") 'Si... utile
  Select Case MsgBox("Les Données 'CONSENSUS' doivent être mises à jour." & Chr(10) & "Voulez-vous lancer la Procédure maintenant ?", vbYesNoCancel, "IMPORT des Données 'CONSENSUS'")
    Case vbYes: Bonjour
    Case vbNo: Bonsoir: Exit Sub
    Case Else: MsgBox "Procédure ajournée. Au revoir.", vbOKOnly, "IMPORT des Données 'CONSENSUS'"
  End Select
End Sub
Sub Bonjour()
  'action
  MsgBox "j v"
End Sub
Sub Bonsoir()
  'régler la durée
  If MsgBox("Souhaitez-vous un rappel ?", vbYesNo, "Redemander dans 15 secondes") = vbNo Then Exit Sub
  Application.OnTime Now + TimeValue("00:00:15"), "mess_04a"
End Sub
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…