/ / Boucle à travers les contrôles dans Excel VBA

Boucle à travers les contrôles dans Excel VBA

Avec seulement quelques lignes de code, nous pouvons facilement boucle à travers les contrôles sur un Excel VBA Userform. Le formulaire utilisateur que nous allons créer se présente comme suit:

Boucle à travers les contrôles dans Excel VBA

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

1. Ouvrez Visual Basic Editor. Si l'explorateur de projet n'est pas visible, cliquez sur Affichage, Explorateur de projets.

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

Configuration de l'écran du formulaire utilisateur dans Excel VBA

3 Ajoutez l’étiquette, les cases à cocher (la première en haut, la seconde en dessous de la première, etc.) et le bouton de commande. Une fois que cela est terminé, le résultat doit être cohérent avec l'image du Userform présentée précédemment. Par exemple, créez un contrôle de case à cocher en cliquant sur CheckBox dans la boîte à outils. Ensuite, vous pouvez faire glisser une case à cocher sur le Userform.

4 Vous pouvez modifier les noms et les légendes des contrôles. Les noms sont utilisés dans le code Excel VBA. Les légendes sont celles qui apparaissent sur votre écran. Il est judicieux de changer le nom des contrôles, mais cela n’est pas nécessaire ici car nous n’avons que quelques contrôles dans cet exemple. Pour modifier la légende de Userform, le libellé, les cases à cocher et le bouton de commande, cliquez sur Afficher, Fenêtre Propriétés et cliquez sur chaque contrôle.

5. Pour afficher le formulaire utilisateur, 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 avons maintenant créé la première partie du Userform. Bien que cela ait déjà l'air sympa, rien ne se passera encore lorsque nous cliquerons sur le bouton Effacer.

6. Ouvrez Visual Basic Editor.

7. Dans l'Explorateur de projet, double-cliquez sur UserForm1.

8. Double-cliquez sur le bouton Effacer.

9. Ajoutez les lignes de code suivantes:

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls
    If TypeName(contr) = "CheckBox" Then
        contr.Value = False
    End If
Next

End Sub

Explication: Excel VBA parcourt tous les contrôles du Userform. La fonction TypeName est utilisée pour filtrer les contrôles de case à cocher. Si un contrôle de case à cocher, Excel VBA décoche la case à cocher. contr est choisi au hasard ici, vous pouvez utiliser n'importe quel nom. N'oubliez pas de faire référence à ce nom dans le reste de votre code.

Résultat lorsque vous cliquez sur le bouton Effacer:

Boucle à travers les contrôles Résultat

Lisez aussi: