Les boîtes de dialogue
Présentation
Les boîtes de dialogue ont pour principal objectif de gérer les échanges d’informations avec l’utilisateur : affichage de messages, demande d’informations, affichage ou saisie de données...
Trois types de boîtes de dialogue peuvent être utilisés :
-
Les boîtes de dialogue d’Excel appelées boîtes de dialogue intégrées permettant, par exemple, d’ouvrir ou d’enregistrer un fichier, de définir les options d’Excel, d’imprimer des feuilles de calcul, de trier des données...
-
Les boîtes de dialogue prédéfinies permettant d’afficher un message, de poser une question à l’utilisateur ou de l’inviter à saisir une information.
-
Les boîtes de dialogue personnalisées ou formulaires permettant d’afficher ou de saisir des données dans une interface conviviale. La création de formulaires personnalisés est décrite dans le chapitre suivant.
Les boîtes de dialogue intégrées
1. L’objet Dialog
Les boîtes de dialogue intégrées sont des objets Dialog appartenant à la collection Dialogs de l’objet Application.
Syntaxe
Pour afficher une boîte de dialogue, utilisez la méthode Show selon la syntaxe suivante : Application.Dialogs(xlDialog).Show
où xlDialog est une constante Excel indiquant la boîte de dialogue à afficher.
Exemples de constantes xlDialog
Constante |
Boîte de dialogue |
xlDialogBorder |
Bordures |
xlDialogFontProperties |
Police |
xlDialogDisplay |
Options d’affichage |
xlDialogDefineName |
Définir un nom |
xlDialogFormulaGoto |
Atteindre |
xlDialogOpen |
Ouvrir |
xlDialogSaveAs |
Enregistrer sous ... |
xlDialogSort |
Trier |
2. Les méthodes GetOpenFileName et GetSaveAsFileName
Les méthodes GetOpenFileName et GetSaveAsFileName de l’objet Application permettent respectivement d’afficher les boîtes de dialogue Ouvrir et Enregistrer sous du menu Fichier.
À la différence des objets Dialogs correspondants (constantes xlOpen et xlSaveAs), ces méthodes n’effectuent aucune action ; elles permettent uniquement de récupérer le nom du fichier saisi ou sélectionné par l’utilisateur.
Syntaxe de la méthode GetOpenFileName
Application.GetOpenFileName(FileFilter, FilterIndex, Title,
ButtonText, MultiSelect)
Tous les arguments sont facultatifs.
FileFilter |
Critères de filtrage : nom de filtre suivi des extensions. Ex : "PageWeb (*.htm;*.html) ,*.htm;*.html". |
FileIndex |
Index du critère de filtrage par défaut. |
Title |
Titre de la boîte de dialogue. |
ButtonText |
Libellé du bouton Ouvrir (sur Macintosh uniquement). |
MultiSelect |
Indique si l’utilisateur peut sélectionner plusieurs fichiers. |
Syntaxe de la méthode GetSaveAsFileName
Application.GetSaveAsFileName(InitialeFile, FileFilter,
FilterIndex, Title, ButtonText)
Tous les arguments sont facultatifs.
InitialeFile |
Nom de fichier apparaissant dans la zone de texte Nom. Si cet argument est omis, Excel utilise le nom du classeur actif. |
Les autres arguments sont identiques à ceux de la méthode...
Les boîtes de dialogue prédéfinies
1. La fonction InputBox
Elle affiche une invite et renvoie le texte tapé par l’utilisateur.
InputBox(prompt,title,default,xpos,ypos,helpfile,context)
prompt |
Chaîne qui sera affichée comme message. |
title |
Chaîne affichée dans la barre de titre. |
default |
Valeur proposée par défaut. |
xpos |
Position horizontale de la boîte de dialogue (valeur exprimée en twips). |
ypos |
Position verticale de la boîte de dialogue (valeur exprimée en twips). |
helpfile |
Nom du fichier d’aide contextuelle. |
context |
Numéro de contexte dans l’aide. |
Exemple
Affichage d’une boîte de dialogue demandant le nom des cellules à effacer (les cellules sont nommées avec des noms de mois).
Sub Effacement_Cellules_Nommées()
Dim sChoix As String
' Demande de saisir le mois à effacer
' Si le mois est reconnu, effacement des cellules nommées
' Sinon, envoi d'un message d'erreur
sChoix = InputBox( _
Prompt:="Quel mois effacer ?", _
Title:="Effacement de cellules")
On Error GoTo Err
Application.Goto reference:=sChoix
Selection.Clear
Exit Sub
Err:
MsgBox "Impossible d'effacer, nom de cellules inexistant"
End Sub
2. La méthode InputBox
Elle agit comme la fonction InputBox mais permet de contrôler le type de données à saisir.
objet.InputBox(prompt,title,default,left,top,helpfile,
helpContextID,type)
L’objet est requis, il s’agit obligatoirement de l’objet Application.
prompt |
Message affiché. |
title |
Titre de la boîte de dialogue. |
default |
Valeur proposée par défaut. |
left |
Position horizontale de la boîte de dialogue (en points). |
top |
Position verticale de la boîte de dialogue (en points). |
helpfile |
Nom du fichier d’aide en ligne. |
helpContextID |
Numéro... |