Bien le bonjour les Developpezeurs,
J'ai été confronté à un problème, dernièrement ; je devais remplir un tableau excel avec des petites croix, là où les checkboxes de mon formulaire étaient cochées. Le souci, c'est que j'avais 6 colonnes d'une cinquantaine de checkboxes à traiter.
L'idée la plus simple consistait à écrire une ligne de code par checkboxes, mais je me voyais mal écrire 300 fois :
If [nomcheckbox] = True Then Range([AdresseCellule]) = "x"
Je me suis donc mis en tête de gérer le problème avec un for each... next, en testant le nom préalablement défini, ce qui me permettait de trouvé la position du checkbox et de mettre un "x" au bon endroit.
Bien que le code était fort exaltant intellectuellement (j'étais très fier de moi !), il n'en comportait pas moins de 500 lignes, soit plus que la première méthode.
Soudain, un flash !!! Je me suis rapellé, que les objets d'un formulaire contiennent une variable Tag. Il suffit alors d'entrer dans chaque "Tag" l'adresse de la cellule correspondante dans le tableau. Par exemple : AG27.
Le code subit alors une cure d'amaigrissement de choc :
1 2 3 4 5 6 7
| Dim Ctl As Control
For Each Ctl In UF.Controls
If Ctl.Value = True Then
Feuil1.Range(Ctl.Tag) = "x"
End If
Next |
Bon biensûr, çà demande un petit temps de préparation, car il faut entrer toutes les adresses dans les champs Tag.
Voilà.
Partager