OVH Cloud OVH Cloud

Macro lente

5 réponses
Avatar
Christian Calomme
Bonjour à tous,

Voici mon problème : j'ai écrit une macro assez longue (+/- 3500 lignes) qui
génère des tarifs de 45 pages personnalisés par client. Il y a donc pas mal
de variables (la langue, les familles de produit offertes au client, les
remises par famille, les frais de transport par pays, etc.). Il y a aussi
beaucoup de mise en page car toutes les pages ont une présentation
différente. Lorsque je teste la macro sur ma machine (P4, 2,6GHZ, 1Gb RAM),
Excel utilise jusqu'à 25% du processeur, spoolsv.exe jusqu'à 8% et csrss
jusqu'à 25%. Jusqu'il y a peu, lorsque je faisais tourner cette macro sur une
autre machine dans un autre réseau, tout se passait bien. Depuis quelque
temps, sur cette autre machine (P4, 2,8GHZ, 1Gb RAM) ou sur toute autre
machine de ce second réseau, Excel, spoolsv et csrss utilisent à eux trois
100% du CPU et l'exécution est devenue d'une lenteur invraisemblable (+/- 3
minutes sur ma machine, +/- 45 minutes sur les machines de l'autre
réseau...). De plus, le statut d'Excel passe sans cesse de "Running" à "Not
responding", ce que je peux comprendre car spoolsv utilise jusqu'à 32% du CPU
et csrss jusqu'à 58%, donc il ne reste pas beaucoup de place à ce pauvre
Excel.

Quelqu'un a t'il déjà rencontré ce style de problème et trouvé une solution ?
Avez-vous une idée géniale ?
Merci d'avance ;-)

5 réponses

Avatar
IdAL
Bonjour,
Une idée comme une autre déjà pour avoir vu accélérer des macros en limitant
l'affichage :
Application.screenUpDatingúlse

à mettre à chaque début de macro
La mise à jour d'affichage ne se fera qu'à la fin

Bonne journée,
IdAL

"Christian Calomme" wrote:

Bonjour à tous,

Voici mon problème : j'ai écrit une macro assez longue (+/- 3500 lignes) qui
génère des tarifs de 45 pages personnalisés par client. Il y a donc pas mal
de variables (la langue, les familles de produit offertes au client, les
remises par famille, les frais de transport par pays, etc.). Il y a aussi
beaucoup de mise en page car toutes les pages ont une présentation
différente. Lorsque je teste la macro sur ma machine (P4, 2,6GHZ, 1Gb RAM),
Excel utilise jusqu'à 25% du processeur, spoolsv.exe jusqu'à 8% et csrss
jusqu'à 25%. Jusqu'il y a peu, lorsque je faisais tourner cette macro sur une
autre machine dans un autre réseau, tout se passait bien. Depuis quelque
temps, sur cette autre machine (P4, 2,8GHZ, 1Gb RAM) ou sur toute autre
machine de ce second réseau, Excel, spoolsv et csrss utilisent à eux trois
100% du CPU et l'exécution est devenue d'une lenteur invraisemblable (+/- 3
minutes sur ma machine, +/- 45 minutes sur les machines de l'autre
réseau...). De plus, le statut d'Excel passe sans cesse de "Running" à "Not
responding", ce que je peux comprendre car spoolsv utilise jusqu'à 32% du CPU
et csrss jusqu'à 58%, donc il ne reste pas beaucoup de place à ce pauvre
Excel.

Quelqu'un a t'il déjà rencontré ce style de problème et trouvé une solution ?
Avez-vous une idée géniale ?
Merci d'avance ;-)


Avatar
IdAL
Bonjour,
Une idée comme une autre déjà pour avoir vu accélérer des macros en limitant
l'affichage :
Application.screenUpDatingúlse

à mettre à chaque début de macro
La mise à jour d'affichage ne se fera qu'à la fin

Bonne journée,
IdAL

"Christian Calomme" wrote:

Bonjour à tous,

Voici mon problème : j'ai écrit une macro assez longue (+/- 3500 lignes) qui
génère des tarifs de 45 pages personnalisés par client. Il y a donc pas mal
de variables (la langue, les familles de produit offertes au client, les
remises par famille, les frais de transport par pays, etc.). Il y a aussi
beaucoup de mise en page car toutes les pages ont une présentation
différente. Lorsque je teste la macro sur ma machine (P4, 2,6GHZ, 1Gb RAM),
Excel utilise jusqu'à 25% du processeur, spoolsv.exe jusqu'à 8% et csrss
jusqu'à 25%. Jusqu'il y a peu, lorsque je faisais tourner cette macro sur une
autre machine dans un autre réseau, tout se passait bien. Depuis quelque
temps, sur cette autre machine (P4, 2,8GHZ, 1Gb RAM) ou sur toute autre
machine de ce second réseau, Excel, spoolsv et csrss utilisent à eux trois
100% du CPU et l'exécution est devenue d'une lenteur invraisemblable (+/- 3
minutes sur ma machine, +/- 45 minutes sur les machines de l'autre
réseau...). De plus, le statut d'Excel passe sans cesse de "Running" à "Not
responding", ce que je peux comprendre car spoolsv utilise jusqu'à 32% du CPU
et csrss jusqu'à 58%, donc il ne reste pas beaucoup de place à ce pauvre
Excel.

Quelqu'un a t'il déjà rencontré ce style de problème et trouvé une solution ?
Avez-vous une idée géniale ?
Merci d'avance ;-)


Avatar
Laurent
Il est aussi possible de bloquer les calculs dans les cellules (calculs sur
ordre plutôt que calcul auto) pendant exécution de la macro.
Sauf si tu as besoin de la réactualisation des valeurs dans tes cellules
pour ta macro, évidemment.

pour cela, il faut mettre les commandes suivantes :

passage en calcul sur ordre :
application.calculation=xlmanual

passage en calcul auto :
application.calculation=xlautomatic

Laurent


"IdAL" a écrit dans le message de news:

Bonjour,
Une idée comme une autre déjà pour avoir vu accélérer des macros en
limitant
l'affichage :
Application.screenUpDatingúlse

à mettre à chaque début de macro
La mise à jour d'affichage ne se fera qu'à la fin

Bonne journée,
IdAL

"Christian Calomme" wrote:

Bonjour à tous,

Voici mon problème : j'ai écrit une macro assez longue (+/- 3500 lignes)
qui
génère des tarifs de 45 pages personnalisés par client. Il y a donc pas
mal
de variables (la langue, les familles de produit offertes au client, les
remises par famille, les frais de transport par pays, etc.). Il y a aussi
beaucoup de mise en page car toutes les pages ont une présentation
différente. Lorsque je teste la macro sur ma machine (P4, 2,6GHZ, 1Gb
RAM),
Excel utilise jusqu'à 25% du processeur, spoolsv.exe jusqu'à 8% et csrss
jusqu'à 25%. Jusqu'il y a peu, lorsque je faisais tourner cette macro sur
une
autre machine dans un autre réseau, tout se passait bien. Depuis quelque
temps, sur cette autre machine (P4, 2,8GHZ, 1Gb RAM) ou sur toute autre
machine de ce second réseau, Excel, spoolsv et csrss utilisent à eux
trois
100% du CPU et l'exécution est devenue d'une lenteur invraisemblable (+/-
3
minutes sur ma machine, +/- 45 minutes sur les machines de l'autre
réseau...). De plus, le statut d'Excel passe sans cesse de "Running" à
"Not
responding", ce que je peux comprendre car spoolsv utilise jusqu'à 32% du
CPU
et csrss jusqu'à 58%, donc il ne reste pas beaucoup de place à ce pauvre
Excel.

Quelqu'un a t'il déjà rencontré ce style de problème et trouvé une
solution ?
Avez-vous une idée géniale ?
Merci d'avance ;-)




Avatar
Christian Calomme
Bonjour,

Cela améliore effectivement.
Merci beaucoup ;-)

Bonne soirée,
Christian


Bonjour,
Une idée comme une autre déjà pour avoir vu accélérer des macros en limitant
l'affichage :
Application.screenUpDatingúlse

à mettre à chaque début de macro
La mise à jour d'affichage ne se fera qu'à la fin

Bonne journée,
IdAL

"Christian Calomme" wrote:

Bonjour à tous,

Voici mon problème : j'ai écrit une macro assez longue (+/- 3500 lignes) qui
génère des tarifs de 45 pages personnalisés par client. Il y a donc pas mal
de variables (la langue, les familles de produit offertes au client, les
remises par famille, les frais de transport par pays, etc.). Il y a aussi
beaucoup de mise en page car toutes les pages ont une présentation
différente. Lorsque je teste la macro sur ma machine (P4, 2,6GHZ, 1Gb RAM),
Excel utilise jusqu'à 25% du processeur, spoolsv.exe jusqu'à 8% et csrss
jusqu'à 25%. Jusqu'il y a peu, lorsque je faisais tourner cette macro sur une
autre machine dans un autre réseau, tout se passait bien. Depuis quelque
temps, sur cette autre machine (P4, 2,8GHZ, 1Gb RAM) ou sur toute autre
machine de ce second réseau, Excel, spoolsv et csrss utilisent à eux trois
100% du CPU et l'exécution est devenue d'une lenteur invraisemblable (+/- 3
minutes sur ma machine, +/- 45 minutes sur les machines de l'autre
réseau...). De plus, le statut d'Excel passe sans cesse de "Running" à "Not
responding", ce que je peux comprendre car spoolsv utilise jusqu'à 32% du CPU
et csrss jusqu'à 58%, donc il ne reste pas beaucoup de place à ce pauvre
Excel.

Quelqu'un a t'il déjà rencontré ce style de problème et trouvé une solution ?
Avez-vous une idée géniale ?
Merci d'avance ;-)




Avatar
Christian Calomme
Bonjour,

C'est vrai que cette méthode fait bouger les chose, merci beaucoup^;-)

Christian


Il est aussi possible de bloquer les calculs dans les cellules (calculs sur
ordre plutôt que calcul auto) pendant exécution de la macro.
Sauf si tu as besoin de la réactualisation des valeurs dans tes cellules
pour ta macro, évidemment.

pour cela, il faut mettre les commandes suivantes :

passage en calcul sur ordre :
application.calculation=xlmanual

passage en calcul auto :
application.calculation=xlautomatic

Laurent


"IdAL" a écrit dans le message de news:

Bonjour,
Une idée comme une autre déjà pour avoir vu accélérer des macros en
limitant
l'affichage :
Application.screenUpDatingúlse

à mettre à chaque début de macro
La mise à jour d'affichage ne se fera qu'à la fin

Bonne journée,
IdAL

"Christian Calomme" wrote:

Bonjour à tous,

Voici mon problème : j'ai écrit une macro assez longue (+/- 3500 lignes)
qui
génère des tarifs de 45 pages personnalisés par client. Il y a donc pas
mal
de variables (la langue, les familles de produit offertes au client, les
remises par famille, les frais de transport par pays, etc.). Il y a aussi
beaucoup de mise en page car toutes les pages ont une présentation
différente. Lorsque je teste la macro sur ma machine (P4, 2,6GHZ, 1Gb
RAM),
Excel utilise jusqu'à 25% du processeur, spoolsv.exe jusqu'à 8% et csrss
jusqu'à 25%. Jusqu'il y a peu, lorsque je faisais tourner cette macro sur
une
autre machine dans un autre réseau, tout se passait bien. Depuis quelque
temps, sur cette autre machine (P4, 2,8GHZ, 1Gb RAM) ou sur toute autre
machine de ce second réseau, Excel, spoolsv et csrss utilisent à eux
trois
100% du CPU et l'exécution est devenue d'une lenteur invraisemblable (+/-
3
minutes sur ma machine, +/- 45 minutes sur les machines de l'autre
réseau...). De plus, le statut d'Excel passe sans cesse de "Running" à
"Not
responding", ce que je peux comprendre car spoolsv utilise jusqu'à 32% du
CPU
et csrss jusqu'à 58%, donc il ne reste pas beaucoup de place à ce pauvre
Excel.

Quelqu'un a t'il déjà rencontré ce style de problème et trouvé une
solution ?
Avez-vous une idée géniale ?
Merci d'avance ;-)