Problème de lenteur avec une macro Excel

Fermé
Sarzo - 3 nov. 2008 à 13:05
 Sarzo - 3 nov. 2008 à 14:55
Bonjour,

Je travaille actuellement sur un fichier Excel avec pas mal de données (10 M), plusieurs feuilles et des formules pour relier tout ça. J'ai une macro qui me permet d'analyser des résultats, le problème c'est qu'à chaque fois que je l'exécute le fichier devient un peu plus lent jusqu'à un point où je n'arrive plus à travailler dessus. Est ce qu'il y a une façon simple de modifier mon fichier ou ma macro pour éviter ce problème. La dernière fois, pour continuer à travailler j'ai du copier toute les formules dans un nouveau fichier Excel mais forcément ça m'a pris pas mal de temps.

Merci d'avance.
A voir également:

2 réponses

m@rina Messages postés 21218 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 1 janvier 2025 11 373
3 nov. 2008 à 13:36
Bonjour,

Tant qu'on ne sait pas ce que fait ta macro et comment elle est écrite, je ne vois pas comment on peut t'aider...

m@rina
0
En fait je n'ai pas voulu copier la macro parce qu'elle est assez longue mais voici une partie pour que tu puisses voir plus ou moins comment elle est écrite. Je viens de faire une copie de mon fichier et d'éliminer le contenu de toutes les cellules et la taille de ce fichier est encore de 17 MB. Je ne sais pas à quoi correspond toute cette information.

Merci d'avance si tu peux me donner un coup de main.


Sheets("Resumen").Select
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Filtro").Select
Range("A19").Select
ActiveSheet.Paste

Range("A19:Q5000").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With

With Selection.Font
.Name = "Frutiger-Light"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With

Range("F21").Select
Range("F18:F5000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("C1:C2"), Unique:=False
Range("A18:Q5000").Select
Selection.Copy
Sheets("No Vehiculos").Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select

Sheets("Filtro").Select
Range("A19:Q5000").Select
Selection.ClearContents
ActiveSheet.ShowAllData

Range("A19:Q5000").Select
Selection.Sort Key1:=Range("F19"), Order1:=xlDescending, Key2:=Range("P19") _
, Order2:=xlAscending, Key3:=Range("I19"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortTextAsNumbers, DataOption3 _
:=xlSortNormal

Calculate
0