Ci-dessous, nous examinerons un programme dans Excel VBA qui crée une Userform qui contient plusieurs pages. Cette userform contient également des images.

Le contrôle multipage contient deux pages. A la page 1, l’utilisateur peut remplir son / ses renseignements personnels. A la page 2, l’utilisateur peut indiquer que la peinture qu’il / elle aime le plus.

Userform Page 1

Userform Page 2

Pour créer cette Userform, exécutez les étapes suivantes.

  1. Ouvrez le Visual Basic Editor. Si l’Explorateur de projets n’est pas visible, cliquez sur Afficher, Project Explorer.

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

Userform Screen Setup in Excel VBA

  1. Ajoutez le contrôle multipage, des étiquettes, des zones de texte (premier en haut, le deuxième en dessous du premier), cadre, boutons d’option (première à gauche, la deuxième à droite), zone de liste, le contrôle de l’image et le bouton de commande. Une fois cet exercice terminé, le résultat devrait être compatible avec la version vide de la Userform indiqué précédemment. Par exemple, créer un contrôle multipage en cliquant sur multipage de la boîte à outils. Ensuite, vous pouvez faire glisser un contrôle multipage sur le Userform. Lorsque vous arrivez au cadre de genre, souvenez-vous de dessiner ce cadre avant de placer les deux boutons d’option en elle.

  2. Vous pouvez modifier les noms et les légendes des contrôles. Les noms sont utilisés dans le code VBA Excel. Les légendes sont celles qui apparaissent sur votre écran. Il est bon de changer les noms des contrôles, mais il est pas nécessaire ici parce que nous avons seulement quelques contrôles dans cet exemple. Pour changer la légende du Userform, des onglets, des étiquettes multipages, cadre, boutons d’option et bouton de commande, cliquez sur Afficher, Fenêtre Propriétés et cliquez sur chaque contrôle.

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

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

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

  1. Ouvrez Visual Basic Editor.

  2. Dans l’Explorateur de projets, cliquez droit sur UserForm1 puis cliquez sur Afficher le code.

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

  4. Ajoutez les lignes de code suivantes:

Private Sub UserForm_Initialize()

With ListBox1

.AddItem "Mountains"

.AddItem "Sunset"

.AddItem "Beach"

.AddItem "Winter"

End With

End Sub

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

Nous avons créé la première partie de la Userform. Bien qu’il semble déjà soignée, rien ne se passera encore lorsque nous choisissons un élément dans la zone de liste ou lorsque l’on clique sur le bouton OK.

  1. Télécharger les images (côté droit de cette page) et les ajouter à « C: \ test \ »

  2. Dans l’Explorateur de projets, double-cliquez sur UserForm1.

  3. Double-cliquez sur la zone de liste.

  4. Ajoutez les lignes de code suivantes:

Private Sub ListBox1_Click()

If ListBox1.ListIndex = 0 Then

Image1.Picture = LoadPicture("C:\test\Mountains.jpg")

End If

If ListBox1.ListIndex = 1 Then

Image1.Picture = LoadPicture("C:\test\Sunset.jpg")

End If

If ListBox1.ListIndex = 2 Then

Image1.Picture = LoadPicture("C:\test\Beach.jpg")

End If

If ListBox1.ListIndex = 3 Then

Image1.Picture = LoadPicture("C:\test\Winter.jpg")

End If

End Sub

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

  1. Double-cliquez sur le bouton OK.

  2. Ajoutez les lignes de code suivantes:

Private Sub CommandButton1_Click()

Dim emptyRow As Long

'Make Sheet1 active

Sheet1.Activate

'Determine emptyRow

emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

'Transfer information

Cells(emptyRow, 1).Value = TextBox1.Value

Cells(emptyRow, 2).Value = TextBox2.Value

If OptionButton1.Value = True Then

Cells(emptyRow, 3).Value = "Male"

Else

Cells(emptyRow, 3).Value = "Female"

End If

Cells(emptyRow, 4).Value = ListBox1.Value

'Close Userform

Unload Me

End Sub

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

  1. Quittez l’éditeur Visual Basic, entrez les étiquettes ci-dessous dans les rangs 1 et tester la Userform.

Résultat:

Test the Userform