GNT sans publicité, site mobile, fonctionnalitées exclusives...

Temps d'ex

Le
denis
Bonjour,

Voici un petit problème dont je n'arrive pas à trouver une explication:
J' ai une macro qui fonctionne sur le schéma suivant:
- tant que cellule(lig,1) <> "_"
- si cellule(lig, 1) = 0
- Masquer ligne(lig)
- fin boucle

Au premier lancement, elle met un temps (7 sec), le problème vient qu'au
lancement suivant, elle met un temps plus long (7 x plus long) puis ce
temps augmente plus légèrement après d'autres appels.

Est-ce un problème normal ? J'ai déjà essayé de mettre un [End] avant la
fin de la procédure, rien n'y fait.

Je précise que je travaille avec:
-Pentium III 256 Mo RAM (j'avoue, c'est pas très récent)
- XP pro
- Excel 2003

Par avance merci
Lire les 14 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacquouille
Le #24111761
Bonjour
Je ne comprends pas les deux conditions: tant que, puis un si..;
If [A1] = 0
then masquer ligne 1
Cela ne devrait prendre que quelques millisecondes.
N'y a-t-il pas d'autres calculs qui se feraient via la macro?

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"denis" a écrit dans le message de groupe de discussion :
4efc4277$0$2531$

Bonjour,

Voici un petit problème dont je n'arrive pas à trouver une explication:
J' ai une macro qui fonctionne sur le schéma suivant:
- tant que cellule(lig,1) <> "_"
- si cellule(lig, 1) = 0
- Masquer ligne(lig)
- fin boucle

Au premier lancement, elle met un temps (7 sec), le problème vient qu'au
lancement suivant, elle met un temps plus long (7 x plus long) puis ce
temps augmente plus légèrement après d'autres appels.

Est-ce un problème normal ? J'ai déjà essayé de mettre un [End] avant la
fin de la procédure, rien n'y fait.

Je précise que je travaille avec:
-Pentium III 256 Mo RAM (j'avoue, c'est pas très récent)
- XP pro
- Excel 2003

Par avance merci
h2so4
Le #24111801
denis was thinking very hard :
bonjour,

as-tu essayé
Application.screenupdatingúlse
'empêche le refraichissement d'écran
Application.Calculation = xlCalculationManual
'empêche le recalcul automatique
Application.EnableEvents = False
'empêche le déclenchement d'une macro sur base d'un event
- tant que cellule(lig,1) <> "_"
- si cellule(lig, 1) = 0
- Masquer ligne(lig)
- fin boucle


Application.screenupdatingúlse
Application.Calculation = xlCalculationautomatic
Application.EnableEvents = False




Bonjour,

Voici un petit problème dont je n'arrive pas à trouver une explication:
J' ai une macro qui fonctionne sur le schéma suivant:
- tant que cellule(lig,1) <> "_"
- si cellule(lig, 1) = 0
- Masquer ligne(lig)
- fin boucle

Au premier lancement, elle met un temps (7 sec), le problème vient qu'au
lancement suivant, elle met un temps plus long (7 x plus long) puis ce
temps augmente plus légèrement après d'autres appels.

Est-ce un problème normal ? J'ai déjà essayé de mettre un [End] avant la
fin de la procédure, rien n'y fait.

Je précise que je travaille avec:
-Pentium III 256 Mo RAM (j'avoue, c'est pas très récent)
- XP pro
- Excel 2003

Par avance merci



--
h2so4
ca PAN
pique DORA
.
Denis Fossioz
Le #24112191
Bonjour,

Tout d'abord merci d'avoir répondu.

Et comme un exemple est plus parlant, voici un lien:

http://cjoint.com/?ALDplEC31CP



En fait, mon interrogation porte plus sur le fait du pourquoi le temps
d'exécution de la macro augmente avec le nombre de fois où je l'appelle.

Mais si vous me donnez un coup de pouce pour encore l'améliorer, ce serait
la cerise...



Au plaisir de vous lire.



Denis.





"Jacquouille" 4efc498b$0$5045$
Bonjour
Je ne comprends pas les deux conditions: tant que, puis un si..;
If [A1] = 0
then masquer ligne 1
Cela ne devrait prendre que quelques millisecondes.
N'y a-t-il pas d'autres calculs qui se feraient via la macro?

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"denis" a écrit dans le message de groupe de discussion :
4efc4277$0$2531$

denis
Le #24112211
Bonjour,

Merci également de vous être penché sur mon petit problème.
Je vous joint également le fichier test:
http://cjoint.com/?ALDplEC31CP

Pour répondre à vos questions:
as-tu essayé
Application.screenupdatingúlse
'empêche le refraichissement d'écran


----> oui, je l'avais fait (et c'est vrai que j'obtiens une division par 2
du temps de traitement.
Application.Calculation = xlCalculationManual
'empêche le recalcul automatique


---> ça...
Application.EnableEvents = False
'empêche le déclenchement d'une macro sur base d'un event


---> ...et ça, non, je pensais que ça n'influencerait pas le temps mais je
vais essayer de suite !
- tant que cellule(lig,1) <> "_"
- si cellule(lig, 1) = 0
- Masquer ligne(lig)
- fin boucle


Application.screenupdatingúlse
Application.Calculation = xlCalculationautomatic
Application.EnableEvents = False


denis
Le #24112241
Bonjour,

Oups, j'ai oublié de dire d'utiliser le bouton [Aperçu] pour tester la macro.

Au plaisir de vous lire.

Denis.
Publicité
Suivre les réponses
Poster une réponse
Anonyme