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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
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.
denis
Le #24112301
Bonjour,

Tout d'abord, merci de vous pencher sur mon problème.

Je vous joint également mon fichier test:

http://cjoint.com/?ALDplEC31CP

(Il faut utiliser le bouton [Aperçu] pour le test de la macro).

A vos questions:

as-tu essayé

Application.screenupdatingúlse
---> ça oui, je l'avais fais (et c'est vrai que le temps d'exécution est divisé par 2)
'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
---> ces 2 lignes là, non, je ne connais pas (je débute...)

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

En espérant avoir été plus clair

Au plaisir de vous lire

Denis.
Maude Este
Le #24112381
Bonsour®

"denis" a écrit
Voici un petit problème dont je n'arrive pas à trouver une explication:

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 ?

;o)))
utiliser les affichages personnalisés (gestionnaire de vues)
j'ai créé un affichage a l'aide d'un filtre correspondant a besoin <>0
j'ai nommé cette "vue" : BESOINS
le bouton sert a activer cette vue via la macro1
l'affichage a lieu en moins d'une seconde
http://cjoint.com/?ALDqmxLp6Hm
Jacquouille
Le #24112371
Re
j'en reviens toujours à la double condition?????

Je propose de commencer par le bas, ce qui évite des problèmes si deux
lignes qui se suivent remplissent la condition.

For i=[B65536].End(3).row to 9 step -1
If range("A"&i).value = 0 Then
Rows(i).Hidden = True
end if
next

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Denis Fossioz" a écrit dans le message de groupe de discussion :
4efc7925$0$5706$

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$

Jacquouille
Le #24112421
Re
Et un simple filtre appliqué sur la colonne A ... ? --> masquerait toutes
les lignes dont A=0 ...



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
MichD
Le #24112481
Bonjour,

Regarde le fichier joint : http://cjoint.com/?ALDq2VMMc8W



MichD
------------------------------------------
"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
Publicité
Poster une réponse
Anonyme