Lors de la création UserForms dans Excel VBA, vous pouvez utiliser la collection Controls pour boucler facilement grâce à des contrôles et définir une propriété de chaque commande à une valeur spécifique.

Le Userform nous allons créer se présente comme suit:

Controls Collection in Excel VBA

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. Ajouter l’étiquette, les zones de texte (d’abord en haut, le second en dessous du premier, et ainsi de suite) et le bouton de commande. Une fois cet exercice terminé, le résultat devrait être compatible avec l’image du Userform indiqué précédemment. Par exemple, créez un contrôle de zone de texte en cliquant sur TextBox de la boîte à outils. Ensuite, vous pouvez faire glisser une zone de texte sur la Userform.

  2. Pour modifier la légende de la Userform, l’étiquette et le 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 vbModeless

End Sub

Explication: en ajoutant vbModeless, vous pouvez utiliser le Userform et le travail dans votre feuille de calcul en même temps.

Nous avons créé la première partie de la Userform. Bien qu’il semble déjà soignée, rien ne se passera encore lorsque l’on clique sur le bouton de commande sur le Userform.

  1. Ouvrez Visual Basic Editor.

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

  3. Double-cliquez sur le bouton de commande.

  4. Ajoutez les lignes de code suivantes:

Private Sub CommandButton1_Click()

Dim i As Integer

For i = 1 To 10

Controls("TextBox" & i).Value = Cells(i + 1, 1).Value

Next i

End Sub

Explication: Avec seulement quelques lignes de code, nous pouvons remplir les zones de texte avec les numéros de téléphone de la feuille. Nous avons utilisé l’opérateur & pour concaténer (joindre) les éléments. Ces lignes de code fonctionnent parce que nous n’avons pas changé les noms des contrôles de zone de texte (TextBox1, TextBox2, TextBox3, etc.). Pour modifier les noms des contrôles, cliquez sur Affichage, fenêtre Propriétés et cliquez sur chaque contrôle.

Lorsque vous cliquez sur le bouton de commande sur la feuille:

Controls Collection Result