Bonjour,
L'execution de mes macros sont tres lentes.
Les macros fonctionnent tres bien sur un autre poste et mon pc ne rame pas
Heeelp!!!!!!!
![]()
Bonjour,
L'execution de mes macros sont tres lentes.
Les macros fonctionnent tres bien sur un autre poste et mon pc ne rame pas
Heeelp!!!!!!!
![]()
On peut pas te dire pourquoi ça rame si tu ne nous dis rien sur tes macros, comme:
-le code
-la configuration des PC
-etc...
Slt,
les deux pc pris en test sont identiques (Dell, core2Duo, 2.4GHZ).
J'utilise XL 2003 et des macros visual Basic "classiques".
Il serait bien de voir ces codes "classiques"...
Bonsoir,
Quelque chose qui peut aider. En début de code, faire :
et en fin de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim Mode_calcul As Long Application.ScreenUpdating = False Mode_calcul = Application.Calculation
ça peut aider à accélérer un code où on manipule pas mal de graphiques par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Application.Calculation = Mode_calcul Application.ScreenUpdating = True
Si nécessaire, insérer un "Calculate" à des endroits bien précis du code si besoin (si la suite nécessite le résultat d'un calcul fait sous Excel).
Bonne soirée,
Didier
Il manque
après Mode_calcul = ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.Calculation = xlCalculationManual
![]()
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Voici un exemple(à la con mais c'est un exemple!!!):
Mais peut importe la boucle, la macro ou meme le fichier dans lequel se trouve la macro, le pb est le meme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Do While ActiveCell <> "" Cumulcritere = 0 cpteurligne = 0 Do While ActiveCell = ActiveCell.Offset(1, 0) Cumulcritere = Cumulcritere + ActiveCell.Offset(0, 7).Value cpteurligne = cpteurligne + 1 ActiveCell.Offset(1, 0).Select Loop Cumulcritere = Cumulcritere + ActiveCell.Offset(0, 7).Value ActiveCell.Offset(-cpteurligne, 7).Select ActiveCell.FormulaR1C1 = Cumulcritere If cpteurligne <> 0 Then Range(ActiveCell.Offset(1, -7), ActiveCell.Offset(cpteurligne, 50)).Select Selection.Delete Shift:=xlUp ActiveCell.Offset(0, 0).Select Else ActiveCell.Offset(1, -7).Select End If Loop
J'ai deja essayé le screen updating mais cela ne changeait rien.
Il est préférable de donner le code réel qui pose problème, plutôt qu'un exemple "à la con", sinon, on va devoir supposer un tas de possibilités, et donner des réponses forcément génériques
Réponses génériques:
- As-tu vérifié les options de calcul sur les deux machines? Un calcul automatique avec des formules de type SOMMEPROD(...) risque de faire ramer les macros...
- Evite de sélectionner les cellules et choisis plutôt de travailler avec des objets typés RANGE. La sélection incessante des cellules ralentit considérablement l'exécution.
- Dans ton code, je ne vois pas de screenupdating... Donc, difficile de te dire si, lors de tes essais, tu l'as utilisé à bon escient.
- ...
Encore une fois, si tu ne donnes pas les vraies infos, nous ne saurons pas vraiment t'aider...
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Partager