Simplification du code source : Incrémenter les références aux ComboBox et adresses de cellules
Bonjour à tou(te)s,
Excel est l'outil central de mon activité au quotidien. Bien que je ne sois pas (du tout) développeur, je m’essaie néanmoins à l'utilisation de VBA pour me faciliter certaines tâches rébarbatives. J'ai ainsi pu créer un classeur qui me permet de renseigner une feuille de calcul via l'utilisation d'un UserForm, ce dernier renfermant un (très) grand nombre de TextBox, ComboBox ou de CheckBox. Leurs valeurs sont récupérées et placées aux adresses prévues sur la feuille de calcul, et tout marche parfaitement bien.
Mon problème est que je vais devoir retoucher une partie de mon code pour l'ajout de quelques fonctionnalités, mais celle-ci (cette partie) avoisine les 800 lignes et bien qu'elle soit commentée correctement, n'ayant pas appliqué de méthodes propres aux développeurs (et pour cause, je n'en suis pas...) j'avoue que la tâche est particulièrement fastidieuse.
Par simplicité, et méconaissance, j'ai codé l'intégralité des références comme dans l'extrait ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Private Sub CommandButton1_Click()
ComboBox1.value = range("A1").value
ComboBox2.value = range("A2").value
ComboBox3.value = range("A3").value
ComboBox4.value = range("A4").value
ComboBox5.value = range("A5").value
ComboBox6.value = range("A6").value
ComboBox7.value = range("A7").value
ComboBox8.value = range("A8").value
ComboBox9.value = range("A9").value
ComboBox10.value = range("A10").value
End Sub |
Ma question est donc la suivante : est-il possible d'améliorer le code ci-dessus en réduisant le nombre de lignes par l'emploi d'une incrémentation, à quelque chose comme poser ComboBox(n).value = range("A"n) puis incrémenter les références aux objets et aux adresses des cellules par (n+1) ? Ce n'est pas tant le concept d'incrément qui me pose problème mais la manière dont cette incrémentation doit être écrite (sa syntaxe) au regard des adresses et autres numéros de série des ComboBox...
En vous remerciant par avance.