Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Temps d'ex

14 réponses
Avatar
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

10 réponses

1 2
Avatar
Jacquouille
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
Avatar
h2so4
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
.
Avatar
Denis Fossioz
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" a écrit dans le message de news:
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$

Avatar
denis
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


Avatar
denis
Bonjour,

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

Au plaisir de vous lire.

Denis.
Avatar
denis
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.
Avatar
Maude Este
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
Avatar
Jacquouille
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" a écrit dans le message de news:
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$

Avatar
Jacquouille
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
Avatar
MichD
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
1 2