Macros-commandes VBA/Boite de dialogue
Parmi les outils VBA il y a différentes boites de dialogue standard fournies par le langage.
La boite de dialogue MsgBox
[modifier | modifier le wikicode]Cette boite de dialogue permet d'afficher des messages à l'utilisateur à partir de constantes ou de variables VBA, elle permet aussi la saisie de réponses à des questions fermées (oui, non, ok, cancel, …). L'utilisateur dispose de plusieurs types de boutons pour poser une question fermée (vbOKOnly, vbOKCancel, vbAbortRetryIgnore, vbYesNo, vbYesNoCancel, vbRetryCancel, …) qui renvoient plusieurs types de réponses quand ils sont activés :
- Le bouton OK renvoie la valeur vbOK
- Le bouton OUI renvoie la valeur vbYes
- Le bouton NON renvoie la valeur vbNo
- Le bouton Annuler renvoie la valeur vbCancel
- Le bouton Ignorer renvoie la valeur vbIgnore
- Le bouton Recommencer renvoie la valeur vbRetry
- ...
Titre | Exemple | Commentaire |
---|---|---|
Syntaxe générale | MsgBox(prompt[, buttons] [, title] [, helpfile, context]) | La fonction MsgBox possède de nombreux autres arguments, consulter l’aide pour plus d’informations |
Uniquement afficher un message | MsgBox "Hello World",vbOKOnly+vbInformation,"INFO" | Message simple dans une fenêtre INFO avec un indicateur informatif et un bouton OK (seule réponse possible) |
Afficher un message avec une variable | Msgbox "Vous avez ouvert " & Workbooks.Count & " classeurs" | Message simple dans une fenêtre avec affichage de constantes et de variables |
Poser une question fermée à choix unique | Reponse=MsgBox("Voulez-vous continuer ?",vbYesNo) | Message simple dans une fenêtre avec saisie de réponses soit OUI soit NON |
La boite de dialogue InputBox
[modifier | modifier le wikicode]Cette boite de dialogue permet de récupérer des valeurs saisies par l'utilisateur en réponse à des questions ouvertes. Les réponses sont stockées dans des variables VBA pour être réutilisées ultérieurement.
Titre | Exemple | Commentaire |
---|---|---|
Syntaxe générale | InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context]) | La fonction InputBox possède plusieurs autres arguments, consulter l’aide pour plus d’informations |
Poser une question ouverte à réponse textuelle | nom=InputBox("saisir votre nom") | Cette boîte de saisie permet à l’utilisateur de saisir un texte répondant à ce qui lui est demandé, la variable nom prend alors la valeur qui a été saisie par l'utilisateur |
Poser une question ouverte à réponse numérique | reponse = InputBox("Entrer un nombre entre 1 et 100", "JEU") | Cette boîte de saisie permet à l’utilisateur de saisir un nombre dans une fenêtre "JEU", la variable reponse prend alors la valeur qui a été saisie par l'utilisateur |
La boite de dialogue d’ouverture de fichier
[modifier | modifier le wikicode]Cette boite fait partie du modèle objet et permet via une fenêtre de dialogue spécifique l’ouverture de fichiers ou de dossier. Ici, c’est l’utilisateur qui dirige la manœuvre de recherche arborescente et graphique de fichier.
Les paramètres facultatifs suivants peuvent être utilisés pour la méthode GetOpenFileName : FileFilter, FilterIndex, Title, MultiSelect
La boite de dialogue de sauvegarde de fichier
[modifier | modifier le wikicode]Cette boite fait partie du modèle objet et permet via une fenêtre de dialogue spécifique l'enregistrement de fichier. Ici, c’est l’utilisateur qui dirige la manœuvre de recherche arborescente, de typage et de nommage de fichier.
Les paramètres facultatifs suivants peuvent être utilisés pour la méthode GetSaveAsFileName : InitialeFile, FileFilter, FilterIndex, Title
Liste des imprimantes du PC
[modifier | modifier le wikicode]La liste des imprimantes installées sur un PC est accessible avec :
Application.Dialogs(xlDialogPrinterSetup).Show
MsgBox Application.ActivePrinter
Le bouton "Configurer" de cette boite permet d'accéder aux propriétés de l'imprimante sélectionnée.
La sélection effectuée par l'utilisateur modifie directement l'imprimante active.
Par contre pour rechercher une imprimante par une partie de son nom, il faut que le script lise la base de registre[1].
Références
[modifier | modifier le wikicode]Bibliographie
[modifier | modifier le wikicode]- Jensen O.G., 2003, Initiation à la programmation VBA Word, KNOWWARE, Ecuelles
- Bidault M., 2000, Excel et VBA, CAMPUS, Paris
Liens internes
[modifier | modifier le wikicode]- Convertisseur Euro-Franc : exercice de saisie d'une valeur avec boite de dialogue pour calcul
- Filtre_dynamique : exercice de saisie d'une valeur avec boite de dialogue pour filtre
- Quiz facile VBA
- Leçon VISUAL BASIC
- Leçon Tableur EXCEL
Liens externes
[modifier | modifier le wikicode]- Cours VBA Les boites de dialogue
- Une vidéo sur les boites de dialogue
- Une vidéo sur les boites de dialogue intégrée