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

XL 2010 Optimisasion temps de calcul d'une macro

Erakmur

XLDnaute Occasionnel
Bonjour,

Dans l'onglet validation, vous avez un bouton vers la macro1. Cette macro, je l'ai faite à partir de l'enregistreur de macro sur un onglet et puis je l'ai dupliqué autant de fois que nécessaire. Mon soucis, c'est qu'avec l'ordinateur que m'a fourni mon entreprise, cela me prend 9 minutes à l'éxécuter.

Question: Y'a t'il un moyen de diminuer le temps de calcul de cette macro ?

Cordialement
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@Erakmur
Pourrais-tu joindre,stp, un fichier allégé?
7Mo c'est trop pour un fichier exemple
(en tout cas, c'est trop pour moi , je ne télécharge pas de classeur <500ko)

Ou à défaut, peux-tu copier ton code VBA dans ta discussion?
 

Staple1600

XLDnaute Barbatruc
Bonsoir Job75

Moi, je ne veux rien mesurer.
J'exprime juste ma préférence
7Mo c'est trop pour un fichier exemple
(en tout cas, c'est trop pour moi , je ne télécharge pas de classeur <500ko)

PS: J'ai ouvert le fichier de 2Mo qui déjà plantouille mon Excel.
J'ai juste eu le temps de voir qu'il y avait beaucoup de Select dans le code VBA.

@Erakmur
Et en passant, les données du classeur sont-elles fictives ou confidentielles?
Puis en repassant, quel est le nom de la macro qui met 9 minutes à s’exécuter?
 

Erakmur

XLDnaute Occasionnel
Voici la macro, elle peut paraitre impressionnante comme ça mais elle se répète énormément: Elle consiste à enlever les filtres puis à actualisé les TDC puis faire un filtre du plus petit au plus grand et filtrer en enlevant les cases vide.

L'ordre est important.

Peut être qu'à la place de demander à Excel de traiter onglet par onglet, on pourrait lui dire pour l'onglet X,Y,Z... fait cette manipulation au lieu de lui dire pour l'onglet X, tu fais la manipulation puis tu passes à l'onglet Y et tu refais la manip...
 

Pièces jointes

  • Macro.txt
    19.3 KB · Affichages: 40

Staple1600

XLDnaute Barbatruc
Re

Alors va falloir changer tes pièces jointes pour être en accord avec la charte du forum

Sinon, pour ta question, peux-tu déjà tester cette macro (pour ce concerne les filtres)
VB:
Sub Macro1_B()
Dim ws As Worksheet
'Décocher vide
For Each ws In Worksheets
If ws.AutoFilterMode = True Then
ws.AutoFilter.Range.AutoFilter Field:=2, Criteria1:="<>"
End If
Next
End Sub
 
Dernière édition:

Discussions similaires

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