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" :

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