Formulaire utilisateur Excel VBA avec plusieurs pages - Macros Excel faciles

Table des matières

Ci-dessous, nous examinerons un programme dans Excel VBA qui crée un formulaire utilisateur contenant plusieurs pages. Ce formulaire utilisateur contient également des images.

Le contrôle multipage contient deux pages. A la page 1, l'utilisateur peut renseigner ses informations personnelles. À la page 2, l'utilisateur peut indiquer quel tableau il aime le plus.

Pour créer ce formulaire utilisateur, exécutez les étapes suivantes.

1. Ouvrez l'éditeur Visual Basic. Si l'Explorateur de projets n'est pas visible, cliquez sur Affichage, Explorateur de projets.

2. Cliquez sur Insérer, Formulaire utilisateur. Si la boîte à outils n'apparaît pas automatiquement, cliquez sur Affichage, Boîte à outils. Votre écran doit être configuré comme ci-dessous.

3. Ajoutez le champ Multipage, les libellés, les zones de texte (le premier en haut, le second en dessous du premier), le cadre, les boutons d'option (le premier à gauche, le second à droite), la zone de liste, le champ Image et le bouton de commande. Une fois cette opération terminée, le résultat doit être cohérent avec la version vide du formulaire utilisateur présentée précédemment. Par exemple, créez un champ Multipage en cliquant sur Multipage dans la Boîte à outils. Ensuite, vous pouvez faire glisser un contrôle Multipage sur le Userform. Lorsque vous arrivez au cadre Genre, n'oubliez pas de dessiner ce cadre avant d'y placer les deux boutons d'option.

4. Vous pouvez modifier les noms et les légendes des champs. Les noms sont utilisés dans le code Excel VBA. Les légendes sont celles qui apparaissent sur votre écran. C'est une bonne pratique de changer les noms des contrôles, mais ce n'est pas nécessaire ici car nous n'avons que quelques contrôles dans cet exemple. Pour modifier la légende du formulaire utilisateur, les onglets multipages, les étiquettes, le cadre, les boutons d'option et le bouton de commande, cliquez sur Affichage, Fenêtre de propriétés et cliquez sur chaque contrôle.

5. Pour afficher l'Userform, placez un bouton de commande sur votre feuille de calcul et ajoutez la ligne de code suivante :

Private Sub CommandButton1_Click()
UserForm1.Show
Fin du sous-marin

Nous allons maintenant créer le Sub UserForm_Initialize. Lorsque vous utilisez la méthode Show pour le Userform, ce sous-programme sera automatiquement exécuté.

6. Ouvrez l'éditeur Visual Basic.

7. Dans l'Explorateur de projets, cliquez avec le bouton droit sur UserForm1 et puis cliquez sur Afficher le code.

8. Choisissez Userform dans la liste déroulante de gauche. Choisissez Initialiser dans la liste déroulante de droite.

9. Ajoutez les lignes de code suivantes :

Private Sub UserForm_Initialize()
Avec ListBox1
.AddItem "Montagnes"
.AddItem "Coucher de soleil"
.AddItem "Plage"
.AddItem "Hiver"
Terminer par
Fin du sous-marin

Explication : la zone de liste de la page 2 sera remplie.

Nous avons maintenant créé la première partie du Userform. Bien que cela semble déjà soigné, rien ne se passera encore lorsque nous sélectionnerons un élément dans la zone de liste ou lorsque nous cliquons sur le bouton OK.

10. Téléchargez les images (côté droit de cette page) et ajoutez-les à "C:\test\"

11. Dans l'Explorateur de projets, double-cliquez sur UserForm1.

12. Double-cliquez sur la zone de liste.

13. Ajoutez les lignes de code suivantes :

Sous-liste privée1_Click()
Si ListBox1.ListIndex = 0 Alors
Image1.Picture = LoadPicture("C:\test\Montagnes.jpg")
Fin si
Si ListBox1.ListIndex = 1 Alors
Image1.Picture = LoadPicture("C:\test\Sunset.jpg")
Fin si
Si ListBox1.ListIndex = 2 Alors
Image1.Picture = LoadPicture("C:\test\Plage.jpg")
Fin si
Si ListBox1.ListIndex = 3 Alors
Image1.Picture = LoadPicture("C:\test\Winter.jpg")
Fin si
Fin du sous-marin

Explication : ces lignes de code chargent une image en fonction de l'élément sélectionné dans la zone de liste.

14. Double-cliquez sur le bouton OK.

15. Ajoutez les lignes de code suivantes :

Private Sub CommandButton1_Click()
Dim emptyRow As Long
'Rendre la feuille 1 active
Feuille1.Activer
'Déterminer la ligne vide
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
'Informations de transfert
Cells(emptyRow, 1).Value = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value
Si OptionButton1.Value = True Alors
Cells(emptyRow, 3).Valeur = "Homme"
Autre
Cells(emptyRow, 3).Valeur = "Femme"
Fin si
Cells(emptyRow, 4).Value = ListBox1.Value
'Fermer le formulaire utilisateur
Décharge moi
Fin du sous-marin

Explication : tout d'abord, nous activons Sheet1. Ensuite, nous déterminons emptyRow. La variable emptyRow est la première ligne vide et augmente à chaque fois qu'un enregistrement est ajouté. Ensuite, nous transférons les informations du Userform vers les colonnes spécifiques de emptyRow. Enfin, nous fermons le Userform.

16. Quittez Visual Basic Editor, entrez les étiquettes ci-dessous dans la ligne 1 et testez le formulaire utilisateur.

Résultat:

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave