Spinzi
XLDnaute Impliqué
Bonjour à tous,
Je me suis lancé dans une programmation VBA suite à une demande urgente.
Maintenant que tout est opérationnel, j'aimerai pouvoir optimiser ce code pour qu'il tourne plus rapidement. A titre d'exemple, le fichier complet met environ 3 minutes pour sortir 10 grilles d'évaluation (sur 160 répondant aux critères de génération).
Vous trouverez en PJ une version allégée avec seulement le cœur du programme :
_l'onglet "Bilan CL" qui permet, suivant certains critères, de lancer la macro (si critère 1,2 et 3 validés - colonne K = vrai - et pas déjà généré alors - colonne L)
_le programme colle simplement le numéro de CL dans l'onglet "Synthèse" qui va alimenter les onglets "Critères N°"
Ces onglets sont alimentés via des formules et tapent dans des bases de données variant de 1 à 10 000 lignes. Utilisant avant des formules matricielles (qui alourdissent le traitement), le forum m'a permis de créer le module "Extraction" pour remplacer mes formules matricielles par des formules personnalisées, améliorant déjà les performances.
_le programme va ensuite copier les onglets "Synthèse" => "Extraction Eval" dans un nouveau classeur, renommé suivant le numéro, nom et date d'exécution de la macro.
Voyant les bénéfices apportés par le passage au format tableau (au sens Array), je me demande si il est possible de modifier mes variables dans le module "Generation Grille" pour améliorer le code.
Evidemment si vous voyez d'autres améliorations possibles, n'hésitez pas ! (le but étant tout de même de garder une simplicité dans la compréhension du programme, n'étant que débutant en VBA).
A vous relire si je ne suis pas clair dans ma demande,
Merci d'avance pour votre aide précieuse.
Spinzi
Je me suis lancé dans une programmation VBA suite à une demande urgente.
Maintenant que tout est opérationnel, j'aimerai pouvoir optimiser ce code pour qu'il tourne plus rapidement. A titre d'exemple, le fichier complet met environ 3 minutes pour sortir 10 grilles d'évaluation (sur 160 répondant aux critères de génération).
Vous trouverez en PJ une version allégée avec seulement le cœur du programme :
_l'onglet "Bilan CL" qui permet, suivant certains critères, de lancer la macro (si critère 1,2 et 3 validés - colonne K = vrai - et pas déjà généré alors - colonne L)
_le programme colle simplement le numéro de CL dans l'onglet "Synthèse" qui va alimenter les onglets "Critères N°"
Ces onglets sont alimentés via des formules et tapent dans des bases de données variant de 1 à 10 000 lignes. Utilisant avant des formules matricielles (qui alourdissent le traitement), le forum m'a permis de créer le module "Extraction" pour remplacer mes formules matricielles par des formules personnalisées, améliorant déjà les performances.
_le programme va ensuite copier les onglets "Synthèse" => "Extraction Eval" dans un nouveau classeur, renommé suivant le numéro, nom et date d'exécution de la macro.
Voyant les bénéfices apportés par le passage au format tableau (au sens Array), je me demande si il est possible de modifier mes variables dans le module "Generation Grille" pour améliorer le code.
Evidemment si vous voyez d'autres améliorations possibles, n'hésitez pas ! (le but étant tout de même de garder une simplicité dans la compréhension du programme, n'étant que débutant en VBA).
A vous relire si je ne suis pas clair dans ma demande,
Merci d'avance pour votre aide précieuse.
Spinzi