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

NON MsgBox par défaut

  • Initiateur de la discussion Initiateur de la discussion Leskwal
  • 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 !

Leskwal

XLDnaute Occasionnel
Bonsoir le Forum

Une question sans doute simple mais sur laquelle je sèche...

Je dois mettre à jour un fichier par une macro, et je souhaite que le " msgbox" en OUI / NON soit validé par code en NON sans que l'opérateur n'intervienne ... 😕

UN grand MERCI d'avance

Pascal
 
Re : NON MsgBox par défaut

Bonsoir et merci pour ta réponse

Je pense ne pas mettre suffisamment comprendre.

A ta proposition (ce que je pense avoir fait 🙂 )
Code:
MsgBox "Message", vbYesNo + vbDefaultButton2, "Titre"

je souhaite un code qui réponde AUTOMATIQUEMENT "NON".


Merci d'avance pour vos réponses

Cordialement

Pascal
 
Re : NON MsgBox par défaut

Bonsour®
A ta proposition (ce que je pense avoir fait 🙂 )
Code:
[FONT=monospace]MsgBox "Message", vbYesNo + vbDefaultButton2, "Titre"[/FONT]

je souhaite un code qui réponde AUTOMATIQUEMENT "NON".

Pascal

simulation de l'appui sur le bouton par défaut, avant l'affichage du MsgBox
Code:
SendKeys {ENTER}  
MsgBox "Message", vbYesNo + vbDefaultButton2, "Titre"
 
Re : NON MsgBox par défaut


Bonsoir le fil, bonsoir le forum,

Pourquoi un message puisque tu décides pour l'utilisateur ?
 
Re : NON MsgBox par défaut

Bonjour à tous et merci pour vos diverses réponses.

Je vais tenté d'être un peu plus clair.

J'ai mis en service l'an passé un classeur comportant 12 onglets (mois) et 4 onglets où s'effectuent divers traitements.

Chaque mois doit-être renseigné au jour le jour par un certain nombre de données par chacune des assistantes.

Chacune des assistantes à un fichier propre.

Chaque fin de mois, les assistante doivent exporter leurs données en cliquant sur un bouton.
Cette exportation formate d'une certaine manière les informations et les transfert à un endroit précis en attribuant automatiquement un nom.

J'ai ensuite (Merci XlD pour le sacré coup de main) créé une application qui permet d'aller traiter collectivement les fichiers exportés...

Voilà en quelques mots l'objet de cette application.


POURQUOI ?
Robert
Re : NON MsgBox par défaut

Bonsoir le fil, bonsoir le forum,

Pourquoi un message puisque tu décides pour l'utilisateur ?

Lorsqu'elles utilisent au quotidien ce classeur, les assistantes reçoivent différents msgbox leurs indiquant qu'elles ne doivent pas oublier d'exporter le fichier et d'autres choses...

Plusieurs évènements inter-dépendants déclenchent ces MSGBOX, les changements d'onglets (Worksheet Activate) couplés à la date système, des changements de données faisant varier certains résultats... ETC..


Aujourd'hui je veux mettre à jour le programme de leurs différents fichiers contenant leurs données. Il est bien sûr hors de question de leur demander de remplir le nouveau classeur avec leur anciennes données (Je tiens à ma peau...) 😱

POUR CONCLURE :

Ce nouveau fichier n'a de nouveau que du code, car les onglets sont identiques.

J'ai donc créer un bouton de "Mise à jour" dans le nouveau fichier (qui se détruit à la fin de la procédure de mise à jour).

Étapes :

1/ création d'une variable Publique string qui va retenir le nom de l'actuel fichier
2/ Ouverture de la fenetre "ouvrir" pour choisir le fichier à mettre à jour
3/ ouverture du fichier
4/ création d'une variable Publique string qui va retenir le nom du fichier nouvellement ouvert
5/ et à partir de là, copier / coller, de chaque onglet "MOIS"

Et le problème est donc :

A chaque bascule d'un fichier à l'autre pour effectuer les COPIER/COLLER de chaque mois, les MSGBOX apparaissent...

C'est pour cela que je souhaitais obtenir une commande qui :

- Soit désactive tous les MSGBOX
- Où sinon une commande qui par défaut réponde "NON" au MSGBOX vbYesNo de manière automatique


Voilà

Désolé d'avoir été aussi long.
Impossible d'envoyer, ne serait-ce qu'un bout de fichier, car trop lourd...


Encore un grand merci à vous pour vos futures réponses

Modeste geedee
simulation de l'appui sur le bouton par défaut, avant l'affichage du MsgBox
Code :
Code:
SendKeys {ENTER}  
MsgBox "Message", vbYesNo + vbDefaultButton2, "Titre"

Cela ne fonctionne malheureusement pas dans mon cas, car ce code est "séquentiel" alors que les MSGBOX apparaissent de façon "évènementielle".



Cordialement

Pascal
 
Re : NON MsgBox par défaut

Bonjour Leskwal

Cela ne fonctionne malheureusement pas dans mon cas, car ce code est "séquentiel" alors que les MSGBOX apparaissent de façon "évènementielle"
Alors il suffit d'utiliser
Code:
Application.EnableEvents = False
et à la fin
Code:
Application.EnableEvents = True

A+
 
Re : NON MsgBox par défaut

Bonjour Modeste geedee,Robert,Leskwal ,Roland_M,BrunoM45😀

Voici pour toi peut être une solution comme celle-ci:
Code:
Sub test()
Dim msg As Object
Set msg = CreateObject("WScript.Shell")
Select Case msg.Popup("Quitter automatiquement dans 10 sec ? ", 10, "10 secondes", vbYesNo + vbDefaultButton2)
Case vbYes
MsgBox "Appuie sur vbYes éffectué"
Case vbNo
MsgBox "Appuie sur vbNo éffectué"
Exit Sub
Case Else:
Set msg = Nothing
MsgBox "Le message a été validé par vbNo "
End Select
End Sub
Au plaisir .
 
Re : NON MsgBox par défaut

Bonjour le fil, bonjour le forum,

Pourquoi pas une variable booléenne en début de module puis une condition sur toutes les msgbox :
Code:
Dim test As Boolean


Sub Ta_macro()
test = True
If test = False Then MsgBox (1)...
.../...
If test = False then MsgBox (2)...
.../...
test = False
End Sub
 
Re : NON MsgBox par défaut

bonjour à tous,

ceci fonctionne parfaitement
Sub Essai()
Code:
Dim ReponseMsgBox As Variant
Application.EnableEvents = False
SendKeys "{ENTER}"
ReponseMsgBox = MsgBox("Message", vbYesNo + vbDefaultButton2, "Titre")
Application.EnableEvents = True

' pour vérifier l'essai !
MsgBox ReponseMsgBox ' < il est égal à 7 soit vbNo

End Sub

mais je comprends pas du tout comment tu pratiques !?
si tu ne gères pas les msgbox, comment veux tu intervenir !?
ici sur cet exemple c'est simple ! mais pour gérer tous les msgbox ça me parait impossible !
ou alors on va envoyer des SendKeys "{ENTER}" autant que de msgbox !
exemple SendKeys "{ENTER 10}" < si 10 msgbox attendu !?
mais il ne faut pas que ces (ENTER) interviennent sur des réponses attendues ailleurs dans le code !?

exemple si il y a 5 msgbox attendu
Code:
'à mettre au début de ton code
SendKeys "{ENTER 5}"
Application.EnableEvents = False
'suite du code...
'...
'...
'remettre à la fin du code
Application.EnableEvents = True

EDIT voir cet essai2 !?

Code:
Sub Essai2()
Application.EnableEvents = False
SendKeys "{ENTER 5}"
R1 = MsgBox("Message", vbYesNo + vbDefaultButton2, "Titre")
R2 = MsgBox("Message", vbYesNo + vbDefaultButton2, "Titre")
R3 = MsgBox("Message", vbYesNo + vbDefaultButton2, "Titre")
R4 = MsgBox("Message", vbYesNo + vbDefaultButton2, "Titre")
R5 = MsgBox("Message", vbYesNo + vbDefaultButton2, "Titre")
Application.EnableEvents = True

' pour vérifier l'essai !
MsgBox R1 & vbLf & R2 & vbLf & R3 & vbLf & R4 & vbLf & R5
End Sub
 
Dernière édition:
- 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
613
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…