Il est de bon ton de se souhaiter la bonne année. Mais vous, et vous seul, pourrez faire en sorte que cette année soit bonne, meilleure que celle qui vient de s'écouler. Apprenez à ne compter que sur vous, car personne n'est plus qualifié que vous-même pour bâtir, réparer ou améliorer votre propre vie. Personne ne fera les choses à votre place. D'ailleurs, tout ce que les autres peuvent faire, c'est souhaiter que vous le fassiez. Et ne croyez pas que tout ceux qui vous entourent vous apporteront des solutions : certains font juste partie de vos problèmes. Transformez vos résolutions en actes, et dans douze mois, retournez-vous et souriez-vous fièrement : C'était long. C'était difficile. Mais ça y est : 2017 était une bonne année, merci Moi.

VBABoiteDialogueperso

Création

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.

Utilisation

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

Boîtes de dialogues personnalisées

Appel des boites de dialogues existantes

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

Astuces de programmation personnelles

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

Boîtes de dialogues personnalisées

Utilisation de la boîte de dialogue personnalisée

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

Code correspondant a la boite de dialogue personnalisée (bouton annuler)

Sub BOUannuler_QuandClic()

Msgbox "Ca Marche"

End Sub