PB de Performance Macro

  • Initiateur de la discussion Initiateur de la discussion FDinguirard
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

FDinguirard

Guest
Bonjour,

le document ci-joint contient du code qui permet de :

a) à chaque ligne vide suivie d'une ligne non vide : imprimer la plage de valeurs précédente avec titres

b) si deux lignes vides consécutives, arrêt du programme.


PROBLEME :

sur mon poste, cela prend 30 secondes.
sur le poste de eric qui a posté la question d'origine sur ce forum, cela prend 10 minutes.

Quelles sont les pistes d'optimisations possibles ?
 

Pièces jointes

bonjour

pour voir si la ligne est vide, faites un test sur :

msgbox application.counta(activesheet.rows(i))

je ne pense pas qu'il soit nécessaire de redéfinir toute la mise en page à chaque fois, à moins que le changement de la zone réinitialise tous les paramètres de la mise en page.


bye
Stéphane
 
Merci STéphane : la macro est 5 fois plus rapide sur mon poste !

Ci joint le code.

Peux tu me faire un petit cours sur la fonction CountA () car elle ne figure pas dans l'aide en ligne.

FD
 

Pièces jointes

bonjour

counta est l'équivalent de la fonction de feuille de calcul vba.
on doit lui passer en une expression qui retourne une plage

msgbox application.counta(range("A1:A5"))


count est l'équivalent de la fonction nb

bye
stephane
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour