En effet, j'essaie de pas trop coupler le userform avec la structure du tableau, histoire d'avoir le moins possible à modifier lorsque l'un ou l'autre change. La fonction qui alimente et récupère les données du userform ainsi que le userform lui-même pourraient être utilisés dans une autre configuration (Word, un autre classeur,...) et lier le userform à un listrow verrouille son utilisation à Excel. Comme je l'ai précisé à Patrick, si la source change, j'ai plus de souplesse avec un array qu'aver le listrow. Mais je pousse peut-être le bouchon un peu loin.
Pour autant, dans le cadre d'un
framework où il faudrait travailler avec plusieurs userforms liés à des tableaux structurés, on pourrait passer le listrow à la fonction qui gère le userform en se servant des tags comme tu le préconises et en récupérant le nom de la colonne de chaque ligne du listrow, avec un jeu d'échange de données entre listrow et userform qui pourrait être générique et s'appliquer à n'importe quelle paire listrow/usrform
.
Mais pour ma part, je préfèrerais probablement une autre solution qui consisterait à passer deux tableaux d'array, l'un pour les données et un autre de même structure pour les noms des contrôles du userform. Ca rendrait plus générique tout en ne liant pas aux listrow et donc à la structure du classeur.
Quelque chose du genre:
Pour moi, je me répète
, sauf classeur avec beaucoup de userform et donc où le couplage faible a moins d'importance, je préfère cela à l'utilisation des TAG des contrôles, surtout que ceux-ci pourraient devoir être utilisés pour autre chose. On serait alors obliger d'utiliser des tag multivalués avec un split sur un séparateur, mais je pense que ça devient aussi lourd que de créer l'array avec les noms des contrôles...
en fait, c'est une question de choix d'architecture
Partager