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 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
5 – La possibilité de joindre des fichiers est donnée sur ce forum. Ne pas hésiter à utiliser cette fonction, tout en veillant que les données soient bidons et donc qu’aucune donnée confidentielle, nominative ne soit dans le fichier.

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
358

Statistiques des forums

Discussions
312 275
Messages
2 086 707
Membres
103 377
dernier inscrit
fredy45