Utiliser les contrôles dans un UserForm, en VBA Excel par SilkyRoad (silkyroad.
Utiliser les contrôles dans un UserForm, en VBA Excel par SilkyRoad (silkyroad.developpez.com) Date de publication : 15/08/2006 Dernière mise à jour : 23/06/2007 Ce document décrit comment ajouter et utiliser des contrôles dans un UserForm. Vous y trouverez une description des objets de base, et aussi quelques informations sur d'autres objets plus spécifiques. Les exemples présentés ne sont qu'une partie infime des options offertes par tous les contrôles. Les possiblités d'utilisation sont très étendues et simples à mettre en oeuvre. Toutes les procédures de ce document ont été testées en utilisant Excel2002. Utiliser les contrôles dans un UserForm, en VBA Excel par SilkyRoad (silkyroad.developpez.com) - 2 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://silkyroad.developpez.com/VBA/ControlesUserForm/ I - Introduction..............................................................................................................................................................3 I-A - Comment Insérer un contrôle........................................................................................................................ 3 I-B - Boucler sur les contrôles contenus dans la Forme....................................................................................... 3 II - Les contrôles standards.........................................................................................................................................5 II-A - Label..............................................................................................................................................................5 II-B - CheckBox...................................................................................................................................................... 6 II-C - OptionButton................................................................................................................................................. 6 II-D - CommandButton........................................................................................................................................... 7 II-E - TextBox..........................................................................................................................................................8 II-F - ComboBox...................................................................................................................................................10 II-G - ListBox........................................................................................................................................................ 11 II-H - ScrollBar......................................................................................................................................................16 II-I - SpinButton.................................................................................................................................................... 16 II-J - MultiPage..................................................................................................................................................... 17 II-K - Image...........................................................................................................................................................18 II-L - Frame...........................................................................................................................................................19 II-M - RefEdit........................................................................................................................................................ 19 II-N - ToggleButton............................................................................................................................................... 20 III - Les contrôles spécifiques....................................................................................................................................21 III-A - WebBrowser............................................................................................................................................... 21 III-B - Office Web Components (OWC)................................................................................................................21 III-B-1 - ChartSpace........................................................................................................................................21 III-B-2 - SpreadSheet......................................................................................................................................21 III-B-3 - PivotTable.......................................................................................................................................... 21 III-C - WindowMediaPlayer...................................................................................................................................21 III-D - ShockwaveFlash........................................................................................................................................ 21 III-E - Windows Image acquisition....................................................................................................................... 21 III-F - TreeView.....................................................................................................................................................22 III-G - ListView......................................................................................................................................................22 III-H - ImageList....................................................................................................................................................22 III-I - Les calendriers............................................................................................................................................ 22 III-I-1 - Calendar..............................................................................................................................................22 III-I-2 - Monthview........................................................................................................................................... 22 III-I-3 - DatePicker...........................................................................................................................................23 III-J - StatusBar.................................................................................................................................................... 23 III-K - ProgressBar................................................................................................................................................23 IV - Liens....................................................................................................................................................................24 V - Téléchargement................................................................................................................................................... 25 Utiliser les contrôles dans un UserForm, en VBA Excel par SilkyRoad (silkyroad.developpez.com) - 3 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://silkyroad.developpez.com/VBA/ControlesUserForm/ I - Introduction I-A - Comment Insérer un contrôle Vous devez tout d'abord créer un UserForm dans votre classeur afin d'y ajouter des contrôles. Les contrôles sont accessibles depuis l'éditeur de macro, dans la fenêtre "boîte à outils". Normalement la boîte à outils s'affiche lorsque que vous créez un UserForm. Dans le cas contraire, Sélectionnez le Menu Affichage / Boîte à outils. Lorsque vous passez le curseur de la souris sur les objets, leur nom s'affiche dans une infobulle. Sélectionnez un des contrôles disponibles et positionnez le dans l'UserForm. Si l'objet que vous souhaitez utiliser n'est pas visible, faites un clic droit dans la boîte à outils, sélectionnez l'option "Contrôles supplémentaires". Dans la nouvelle fenêtre qui s'affiche, cochez la ligne qui vous intéresse puis cliquez sur OK pour valider. Utilisez la fenêtre de propriétés pour personnaliser le contrôle (Changer le nom, une fonctionnalité, l'apparence de l'objet...etc...). Si cette fenêtre n'est pas affichée par défaut: Sélectionnez le contrôle et appuyez sur la touche raccourci "F4". Si les macros servant à lire ou modifier une propriété sont placées dans l'UserForm, vous pouvez écrire: Vba Label1.Caption = "Test" Si la procédure est externe (placée dans un module standard, un autre UserForm...etc...) vous devez spécifier le nom de la Forme contenant l'objet: Vba UserForm1.Label1.Caption = "Test" I-B - Boucler sur les contrôles contenus dans la Forme Si votre projet contient de nombreux objets, il peut être intéressant de créer des boucles pour optimiser les procédures. Cet exemple boucle sur les contrôles afin de récupérer leur nom: Vba Dim Ctrl As Control 'Boucle sur la collection de contrôles For Each Ctrl In Me.Controls MsgBox Ctrl.Name Next Ctrl Vous pouvez aussi filtrer sur un type de contrôle spécifique. Cette procédure permet de boucler sur l'ensemble des contrôles et affiche leur contenu s'il s'agit de TextBox. Vba Dim Ctrl As Control For Each Ctrl In Me.Controls If TypeOf Ctrl Is MSForms.TextBox Then MsgBox Ctrl.Object.Value Utiliser les contrôles dans un UserForm, en VBA Excel par SilkyRoad (silkyroad.developpez.com) - 4 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://silkyroad.developpez.com/VBA/ControlesUserForm/ Vba Next Ctrl Une autre possiblité. Vba Dim Ctrl As Control For Each Ctrl In Controls If TypeName(Ctrl) = "TextBox" Then MsgBox Ctrl.Object.Value Next Ctrl Encore un autre exemple pour boucler sur les TextBox: Transférer le contenu de 10 TextBox dans la plage de cellules A1:A10 Vba Private Sub CommandButton1_Click() Dim i As Integer For i = 1 To 10 Cells(i, 1) = Me.Controls("TextBox" & i) Next i End Sub Cette dernière méthode nécessite que les TextBox soient nommés TextBox1 à Textbox10 et ordonnés pour correspondre aux cellules A1:A10. Cela demande de la rigueur lors de la création mais vous fera gagner un temps précieux, une économie dans le nombre de lignes de macro et une meilleure lisibilité de vos procédures. Lorsque vous devez ajouter un grand nombre de contrôles qui seront utilisés de la même manière (par exemple un groupe de TextBox), il devient vite fastidieux de réécrire plusieurs fois la même procédure. Dans ce cas, vous pouvez utiliser des modules de classe. Les classes définissent le fonctionnement des objets. Un objet peut être défini par une propriété, une méthode ou un évènement. (Vous n'écrivez qu'une seule procédure qui sera appliquable à tous les contrôles que vous aurez défini dans une collection). Utiliser les contrôles dans un UserForm, en VBA Excel par SilkyRoad (silkyroad.developpez.com) - 5 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://silkyroad.developpez.com/VBA/ControlesUserForm/ II - Les contrôles standards II-A - Label Les contrôles Labels (intitulés) sont principalement utilisés pour afficher des messages d'information. Lorsque l'USF est affiché, Vous ne pouvez modifier le contenu que par macro. Cet exemple modifie le texte d'un Label: Vba Label1.Caption = "le nouveau texte" 'Il est aussi possible d'écrire 'Label1 = "le nouveau texte" Pour lire le contenu d'un Label: Vba MsgBox Label1.Caption 'Il est aussi possible d'écrire 'MsgBox Label1 Spécifier des polices type Symbole par macro: En général vous pouvez utiliser directement la syntaxe Label1.Font.Name ="Arial" pour définir une police. Pour paramétrer des polices type Symbole (Wingdings, Webdings ...), utilisez: Vba Label1.Font.Name ="Wingdings" Label1.Font.Charset = 2 Nota: Utilisez le même principe pour les TextBox. Tout comme Les UserForm, les contrôles possèdent des évènements. Exemple: Le Label nommé Label1 suit le curseur de la souris après le 1er clic sur lui. Le 2eme clic permet de désactiver cette action. Vba Option Explicit Dim Cible As Boolean Private Sub UserForm_Initialize() Cible = False End Sub Private Sub Label1_Click() If Cible = True Then Cible = False Else Cible = True End If End Sub Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, _ ByVal X As Single, ByVal Y As Single) If Cible = True Then Utiliser les contrôles dans un UserForm, en VBA Excel par SilkyRoad (silkyroad.developpez.com) - 6 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://silkyroad.developpez.com/VBA/ControlesUserForm/ Vba Label1.Left = Label1.Left + X Label1.Top = Label1.Top + Y End If End Sub Private Sub UserForm_MouseMove(ByVal Button As Integer, _ ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Cible = True Then Label1.Left = X Label1.Top = Y End If End Sub II-B - CheckBox Le contrôle CheckBox (Case à cocher) permet de renvoyer les valeurs: Vrai (Lorsque la case est cochée) Faux (Lorsque la case est décochée) Un CheckBox peut aussi prendre la valeur Null si la propriété TripleState = True Cet exemple affiche la valeur du CheckBox1 lorsque l'on clique dessus. Vba Private Sub CheckBox1_Change() Select Case CheckBox1.Value Case True: CheckBox1.Caption = "Vrai" Case False: CheckBox1.Caption = "Faux" Case Else: CheckBox1.Caption = "Null" End Select End Sub Modifier la valeur du CheckBox1. Vba Private Sub CommandButton1_Click() CheckBox1 = True End Sub II-C - OptionButton Les contrôles Optionbutton (Boutons d'option) permettent de faire un choix parmi plusieurs options. Lorsqu'une des options est sélectionnée, les autres sont toutes désactivées. Il existe deux possibilités pour gérer un groupe d'OptionButton. 1. Utiliser la propriété GroupName en Attribuant la même chaine (par exemple "GR1") à tous les contrôles que vous souhaitez regrouper. Cet exemple permet de retrouver l'Optionbutton sélectionné. Vba Private Sub CommandButton1_Click() Dim Ctrl As Control 'Boucle sur tous les contrôles For Each Ctrl In Me.Controls 'Vérifie qu'il s'agit d'un OptionButton If TypeOf Ctrl Is MSForms.OptionButton Then Utiliser les contrôles dans un UserForm, en VBA Excel par SilkyRoad (silkyroad.developpez.com) - 7 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable uploads/s1/ controles-user-form.pdf
Documents similaires
-
25
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 28, 2021
- Catégorie Administration
- Langue French
- Taille du fichier 0.2972MB