Salut,
Heu juste une idée comme ça...
Si ton code est le même pour chacun des cas, pourquoi ne pas paramétrer l'action à faire dans une table?
Genre une table :
Direct | Prospection directe |1 | 9 | 3 | 1 |
Direct | |1 | 31| 3 | 12|
Syndicat | Prospection directe |2 | 9 | 3 | 1 |
3è champ : le total en fonction du type d'adhérent
4è champ : la ligne de la cellule
5è champ : la colonne de la cellule
6è champ : Le total en fonction de l'origine
Tu recherches l'enregistrement de la table qui correspond à tes deux critères.
Et après ton code c'est :
appexcel.Cells(rs!CellX,rs!CellY) = Rst_Tableau3![NbAdh]
avec CellX et CellY qui sont les champs de la table de paramètrage.
Et tu pourrais mettre tes totaux dans un array :
Total_Or(rs!Total) = Total_Or(rs!Total) + Rst_Tableau3![NbAdh]
Comme ça tu n'écris ton code qu'une fois et tu peux facilement changer les paramètres ou ajouter des nouveaux types sans avoir à copier/coller le code.
En triant le recordset Rst_Tableau3 sur des champs "TypeAdherent_Ent" et "OrigineContact_Ent", et en ne lisant la table de paramètrage seulement qu'à chaque changement de l'un de ces deux champs ça restera performant.
Bon reste à voir si le code est identique à chaque fois...
Partager