Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. VBA Excel (versions 2021 et Microsoft 365)
  3. Les boîtes de dialogue
Extrait - VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
Extraits du livre
VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
2 avis
Revenir à la page d'achat du livre

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

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...