Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[VBA] Macros trop longues et à optimiser

Anthonymctm

XLDnaute Occasionnel
Bonjour le forum,

Avec ce que j'ai trouvé sur le net et sur le forum, j'ai réussi a bricoler un macro de retraitement et de mise en forme
Je vous ai joint un fichier test

Les macros fonctionnent, par contre l'exécution totale met beaucoup de temps (plusieurs minutes)
C'est pour ça que j'ai besoin de votre expertise

Le but de la macro est, selon le nombre d'onglet EC (X) de réaliser un descriptif à imprimer.
Ce descriptif se remplis via des formule en AF, et pour modifier modifier la police à l’intérieur d'une formule je n'ai trouvé que la méthode suivante :
-Copier/coller les valeurs,
-Réinitialiser la police,
-Appliquer la police souhaitée sur les bouts de textes souhaités (selon police dans la colonne O)

Merci !
 

Pièces jointes

  • Test MEF.xlsm
    716.3 KB · Affichages: 20

Anthonymctm

XLDnaute Occasionnel
Une piste intéressante je pense pourrait être de ne pas appliquer la macro Chercher_Colorier_plage_liste sur les lignes masquées. (je ne sais pas comment le faire)(les lignes masquées sont celles où la colonne N = 0)

En effet, avant de lancer la macro MEF_descriptif, je masque toutes les lignes non concernées (mais le code s’applique quand même dessus.
 
Dernière édition:

Anthonymctm

XLDnaute Occasionnel
J'ai trouvé sur le net pour n'appliqué la range que sur les cellules visibles
VB:
Sub Chercher_Colorier_plage_liste(xrgTxt As Range, xrgQuoi As Range)
 ' idem précédent mais on recherche au sein d'une plage de cellule xrgTxt.
' C'est le cas le plus général: on recherche au sein de toute la plage xrgTxt
' chaque mot de la plage xrgQuoi et on applique la mise en forme graisse et couleur

Dim xcell As Range
old = Application.ScreenUpdating: Application.ScreenUpdating = False

 For Each xcell In xrgTxt.SpecialCells(xlCellTypeVisible)
    Chercher_Colorier_un_liste xcell, xrgQuoi
  Next xcell
  Application.ScreenUpdating = old
 
End Sub
Je sais pas si c'est optimal mais je passe déjà de 5 minutes à 1 minute de traitement
 

Discussions similaires

Réponses
8
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…