Poursuivre ou annuler une macro
Résolu/Fermé
Bonjour,
J'ai créé au départ de ma macro une msgbox pour informer les utilisateurs que l'exécution prendra un temps conséquent.
Est-il possible de créer un bouton "Annuler" dans cette msgbox au même titre que le "OK" pour interrompre l'exécution si l'utilisateur n'a pas le temps nécessaire dispo?
Merci pour votre aide
J'ai créé au départ de ma macro une msgbox pour informer les utilisateurs que l'exécution prendra un temps conséquent.
Est-il possible de créer un bouton "Annuler" dans cette msgbox au même titre que le "OK" pour interrompre l'exécution si l'utilisateur n'a pas le temps nécessaire dispo?
Merci pour votre aide
A voir également:
- Vbokcancel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Annuler une offre sur vinted - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Achat sur Vinted : comment négocier un prix avec un vendeur - Guide
1 réponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
Modifié par pijaku le 13/11/2012 à 13:00
Modifié par pijaku le 13/11/2012 à 13:00
Bonjour,
Pour quitter une procédure sans l'exécuter, il convient d'utiliser
Les MsgBox sont paramétrables. Syntaxe : MsgBox(message[, boutons] [, titre] [, helpfile, context])
Si vous voulez qu'elle affiche Oui et Annuler, il faut utiliser l'argument "boutons" : vbOKCancel.
L'argument bouton renvoie une valeur de type numérique (1, 2, 3...7).
Si, avec un MsgBox de type vbOkCancel vous cliquez sur Oui, sa valeur est 1, si vous cliquez sur annuler la valeur est 2.
Il nous faut donc pour réaliser ceci :
- un MsgBox de type vbOkCancel,
- une variable pour pouvoir tester la réponse de l'utilisateur. Cette variable ne pourra prendre que deux valeurs, 1 ou 2, elle est donc de type numérique (nombre entier = Integer).
Voici le code de ce que vous souhaitez :
Plus de renseignements sur les MsgBox : ICI (Microsoft), une MsgBox personnalisée ICI.
Note : 1- Dans le code, je place la valeur du MsgBox dans une variable de type Integer, le résultat est le même avec un Byte...
2- Dans le code, on peux remplacer (pour une maintenance plus aisée du code) :
Cordialement,
Franck P
Pour quitter une procédure sans l'exécuter, il convient d'utiliser
Exit Sub.
Les MsgBox sont paramétrables. Syntaxe : MsgBox(message[, boutons] [, titre] [, helpfile, context])
Si vous voulez qu'elle affiche Oui et Annuler, il faut utiliser l'argument "boutons" : vbOKCancel.
L'argument bouton renvoie une valeur de type numérique (1, 2, 3...7).
Si, avec un MsgBox de type vbOkCancel vous cliquez sur Oui, sa valeur est 1, si vous cliquez sur annuler la valeur est 2.
Il nous faut donc pour réaliser ceci :
- un MsgBox de type vbOkCancel,
- une variable pour pouvoir tester la réponse de l'utilisateur. Cette variable ne pourra prendre que deux valeurs, 1 ou 2, elle est donc de type numérique (nombre entier = Integer).
Voici le code de ce que vous souhaitez :
Sub test() Dim OuiOuNon As Integer OuiOuNon = MsgBox("Voulez-vous continuer?", vbOKCancel, "Choix") If OuiOuNon = 2 Then Exit Sub MsgBox "Là vous avez cliqué sur Oui!!!" End Sub
Plus de renseignements sur les MsgBox : ICI (Microsoft), une MsgBox personnalisée ICI.
Note : 1- Dans le code, je place la valeur du MsgBox dans une variable de type Integer, le résultat est le même avec un Byte...
2- Dans le code, on peux remplacer (pour une maintenance plus aisée du code) :
If OuiOuNon = 2 Then Exit Subpar :
If OuiOuNon = vbCancel Then Exit Sub
Cordialement,
Franck P
14 nov. 2012 à 14:48
25 juil. 2022 à 11:59
merci infiniment pour ces explications, cela m'a été très utile