Dans l'environnement VBA : Insertion/UserForm
La boîte apparaît en mode création. Il est bien de changer son nom en BODNomBoite.
A l'intérieur, on peut créer différents contrôles, qu'il est aussi bien de renommer. Afin d'exécuter du code sur certains événemnets de certains contrôles, il suffit de doublecliquer dessus.
Une fois créée, cette boîte peut s'appeler avec la méthode Show. Par exemple, on pourrait, directement dans un onglet excel, placer un bouton (qu'on ne peut pas nommer d'ailleurs, je n'ai trouvé nulle part la propriété Name), et appeler une macro quand on clique sur ce bouton qui fait :
BDONomBoîte.Show
Directement dans la boîte de dialogue, il est bien de placer un bouton "Fermer", qui ferme simplement la boîte de dialogue. Placer simplement le code suivant sur le bouton :
BDONomBoîte.Hide
A partir de là, on peut bien évidememnt récupérer les valeurs entrées dans les différentes zones éventuelles d'édition de la boîte de dialogue pour en faire ce qu'on veut. Par exemple, ici, on récupère le contenu d'une zone de la boîte EDIEntree pour la placer dans la cellule A5 de l'onglet courant :
Range("A5").Value = EDIEntree
Il est possible d'appeler par leur nom toutes les boîtes de dialogues existantes dans Excel. 1 représente le numéro de la boîte de dialogue demandée
Application.Dialogs(1).Show ("c:\poubelle\*.doc") 'le paramètre est optionnel
Cette astuce permet de lister dans une feuille de calcul l’ensemble des polices avec les accents.
ATTENTION : Pour que ce code fonctionne, il faut intégrer à Excel la bibliothèque VBA de Word 8
Dim Police
Dim Ctr
Ctr = 0
For Each Police In FontNames
Ctr = Ctr + 1
Range("A" & Ctr) = Police
Range("A" & Ctr).Font.Name = "Arial"
Range("B" & Ctr) = "éèàêôâûäöü"
Range("B" & Ctr).Font.Name = Police
Range("C" & Ctr) = "Servez un whisky au juge blond qui fume"
Range("C" & Ctr).Font.Name = Police
Next Police
Cette boîte de dialogue a été construite avec le Dialog Editor de Excel 5, et voici sa correspondance codée :
Sub AppelleBoite()
' Affichage de cette boîte de dialogue :
DialogSheets("BoiteDia").Show
' >> ZONES DE TEXTE <<<<
' ATTENTION : FeuillesBoîteDialogue, ZonesModification et texte ne sont pas des variables définies par l'utilisateur, VariableQuelconque oui.
' Affichage d'un texte par défaut dans la zone de texte :
DialogSheets("BoiteDia").EditBoxes(1).Strings = "Coucou"
VariableQuelconque = DialogSheets("BoiteDia").EditBoxes(1).Strings
DialogSheets("BoiteDia").EditBoxes(2).Strings = "essai"
End Sub
Sub BOUannuler_QuandClic()
Msgbox "Ca Marche"
End Sub