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 !
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 ... 😕
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 ... 😕
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 :
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
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
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
- 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