Astuce VBA : utiliser des variables dans le nom d'un contrôle

Pouvoir agir sur un contrôle en fonction d'une variable peut s'avérer très utile pour développer plus efficacement.


Par exemple, pour supprimer le contenu de 20 TextBox, il est possible d'écrire :

Private Sub CommandButton_vider_Click()
    
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    TextBox5.Value = ""
    TextBox6.Value = ""
    TextBox7.Value = ""
    TextBox8.Value = ""
    TextBox9.Value = ""
    TextBox10.Value = ""
    TextBox11.Value = ""
    TextBox12.Value = ""
    TextBox13.Value = ""
    TextBox14.Value = ""
    TextBox15.Value = ""
    TextBox16.Value = ""
    TextBox17.Value = ""
    TextBox18.Value = ""
    TextBox19.Value = ""
    TextBox20.Value = ""
    
End Sub

Mais grâce à Controls, il est possible de réduire le code à 3 lignes :

Private Sub CommandButton_vider_Click()
    
    For i = 1 To 20
        Controls("TextBox" & i).Value = ""
    Next
    
End Sub

Tuto vidéo

Dans cette vidéo vous découvrirez, entre autres choses, comment compléter les 48 champs de cet UserForm avec seulement 3 lignes de code au lieu de 48, grâce à l'utilisation de "Controls" :

excel vba nombreux controles nom controle variable

Le fichier Excel de cette vidéo est disponible ici : controls.xls