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

macro graphe : erreur 1004 - débogage impossible / excel plante !

16 réponses
Avatar
bobaldo
Bonjour,

J'ai un souci avec un fichier excel que j'ai developpé.
ce fichier utilise du code VBA pour faire un certain nombre de calculs et
pour créer un graphe des réultats obtenus.

J'uilise environ 40 ou 50 onglets dans lesquels sont fait les calculs et
autant d'onglets où sont représenté sous forme de graphique les résultats.

Chaque série de calculs est codée dans un module, et le code qui permet de
créer le graphe est également dans un module.

Quand j'execute chaque module manuellement, tout fonctionne : l'onglet
calcul est rempli, et le grpahe est créé.

J'ai crée une macro d'execution globale qui appelle chaque module de calcul
et chaque module de création de graphe.
C'est là que les soucis commencent...

Il arrive 2 problèmes :

--> Quand j'arrive vers la fin du programme, j'ai un message d'erreur :
Erreur 1004 - La méthode 'Range' de l'objet '_Global' a échoué.
Je clique sur "débogage" et excel tout entier s'éteint brutalement.

ou bien

--> La macro tourne jusqu'au bout, les calculs et les graphes sont créés,
mais dès que la macro a fini, excel se coupe brutalement là aussi.


je ne pense pas forcement à l'erreur grossière de code car quand j'execute
les modules séparement, tout fonctionne parfaitement. C'est quand j'execute
la macro d'automatisation de tout le fichier que ça foire et que je rencontre
les problèmes ci-dessus.

Par avance merci pour votre aide ou vos remarques.

10 réponses

1 2
Avatar
papou
Bonjour
La limite de quantité de mémoire disponible a été atteinte ?
Pour vérifier, si tu en as la possibilité, fais courir ta macro sur moins de
feuilles et de graphs.

Cordialement
Pascal

"bobaldo" a écrit dans le message de
news:
Bonjour,

J'ai un souci avec un fichier excel que j'ai developpé.
ce fichier utilise du code VBA pour faire un certain nombre de calculs et
pour créer un graphe des réultats obtenus.

J'uilise environ 40 ou 50 onglets dans lesquels sont fait les calculs et
autant d'onglets où sont représenté sous forme de graphique les résultats.

Chaque série de calculs est codée dans un module, et le code qui permet de
créer le graphe est également dans un module.

Quand j'execute chaque module manuellement, tout fonctionne : l'onglet
calcul est rempli, et le grpahe est créé.

J'ai crée une macro d'execution globale qui appelle chaque module de
calcul
et chaque module de création de graphe.
C'est là que les soucis commencent...

Il arrive 2 problèmes :

--> Quand j'arrive vers la fin du programme, j'ai un message d'erreur :
Erreur 1004 - La méthode 'Range' de l'objet '_Global' a échoué.
Je clique sur "débogage" et excel tout entier s'éteint brutalement.

ou bien

--> La macro tourne jusqu'au bout, les calculs et les graphes sont créés,
mais dès que la macro a fini, excel se coupe brutalement là aussi.


je ne pense pas forcement à l'erreur grossière de code car quand j'execute
les modules séparement, tout fonctionne parfaitement. C'est quand
j'execute
la macro d'automatisation de tout le fichier que ça foire et que je
rencontre
les problèmes ci-dessus.

Par avance merci pour votre aide ou vos remarques.


Avatar
bobaldo
C'est peut être une possibilité, la macro marche avec moins de graphe.
Mais au final le fichier Excel n'est pas immanse, seulement 3 ou 4Mo.
Comment connaitre la limite de mémoire disponible ?
Pourquoi tout fonctionnerait correctement quand je fais trouner les macros
de façon séparée, et pas quand elle sont automatisée ?

Le fait que j'ai plusieurs scenarios de plantage me rend dubitatif...

Une erreur dans mon code ? : j'y crois peu car ça fonctionne quand je les
fais tourner séparement
Une windowzerie ?




Bonjour
La limite de quantité de mémoire disponible a été atteinte ?
Pour vérifier, si tu en as la possibilité, fais courir ta macro sur moins de
feuilles et de graphs.

Cordialement
Pascal

"bobaldo" a écrit dans le message de
news:
Bonjour,

J'ai un souci avec un fichier excel que j'ai developpé.
ce fichier utilise du code VBA pour faire un certain nombre de calculs et
pour créer un graphe des réultats obtenus.

J'uilise environ 40 ou 50 onglets dans lesquels sont fait les calculs et
autant d'onglets où sont représenté sous forme de graphique les résultats.

Chaque série de calculs est codée dans un module, et le code qui permet de
créer le graphe est également dans un module.

Quand j'execute chaque module manuellement, tout fonctionne : l'onglet
calcul est rempli, et le grpahe est créé.

J'ai crée une macro d'execution globale qui appelle chaque module de
calcul
et chaque module de création de graphe.
C'est là que les soucis commencent...

Il arrive 2 problèmes :

--> Quand j'arrive vers la fin du programme, j'ai un message d'erreur :
Erreur 1004 - La méthode 'Range' de l'objet '_Global' a échoué.
Je clique sur "débogage" et excel tout entier s'éteint brutalement.

ou bien

--> La macro tourne jusqu'au bout, les calculs et les graphes sont créés,
mais dès que la macro a fini, excel se coupe brutalement là aussi.


je ne pense pas forcement à l'erreur grossière de code car quand j'execute
les modules séparement, tout fonctionne parfaitement. C'est quand
j'execute
la macro d'automatisation de tout le fichier que ça foire et que je
rencontre
les problèmes ci-dessus.

Par avance merci pour votre aide ou vos remarques.







Avatar
papou
Re
Malheureusement je n'ai pas la réponse à tes différentes questions :-(
Mais en tout cas il semble que ce soit la piste à privilégier (pb de
mémoire).
Essaie de fractionner ton travail peut-être ?

Cordialement
Pascal

"bobaldo" a écrit dans le message de
news:
C'est peut être une possibilité, la macro marche avec moins de graphe.
Mais au final le fichier Excel n'est pas immanse, seulement 3 ou 4Mo.
Comment connaitre la limite de mémoire disponible ?
Pourquoi tout fonctionnerait correctement quand je fais trouner les macros
de façon séparée, et pas quand elle sont automatisée ?

Le fait que j'ai plusieurs scenarios de plantage me rend dubitatif...

Une erreur dans mon code ? : j'y crois peu car ça fonctionne quand je les
fais tourner séparement
Une windowzerie ?




Bonjour
La limite de quantité de mémoire disponible a été atteinte ?
Pour vérifier, si tu en as la possibilité, fais courir ta macro sur moins
de
feuilles et de graphs.

Cordialement
Pascal

"bobaldo" a écrit dans le message de
news:
Bonjour,

J'ai un souci avec un fichier excel que j'ai developpé.
ce fichier utilise du code VBA pour faire un certain nombre de calculs
et
pour créer un graphe des réultats obtenus.

J'uilise environ 40 ou 50 onglets dans lesquels sont fait les calculs
et
autant d'onglets où sont représenté sous forme de graphique les
résultats.

Chaque série de calculs est codée dans un module, et le code qui permet
de
créer le graphe est également dans un module.

Quand j'execute chaque module manuellement, tout fonctionne : l'onglet
calcul est rempli, et le grpahe est créé.

J'ai crée une macro d'execution globale qui appelle chaque module de
calcul
et chaque module de création de graphe.
C'est là que les soucis commencent...

Il arrive 2 problèmes :

--> Quand j'arrive vers la fin du programme, j'ai un message d'erreur :
Erreur 1004 - La méthode 'Range' de l'objet '_Global' a échoué.
Je clique sur "débogage" et excel tout entier s'éteint brutalement.

ou bien

--> La macro tourne jusqu'au bout, les calculs et les graphes sont
créés,
mais dès que la macro a fini, excel se coupe brutalement là aussi.


je ne pense pas forcement à l'erreur grossière de code car quand
j'execute
les modules séparement, tout fonctionne parfaitement. C'est quand
j'execute
la macro d'automatisation de tout le fichier que ça foire et que je
rencontre
les problèmes ci-dessus.

Par avance merci pour votre aide ou vos remarques.









Avatar
Modeste
Bonsour® bobaldo avec ferveur ;o))) vous nous disiez :

C'est peut être une possibilité, la macro marche avec moins de graphe.
Mais au final le fichier Excel n'est pas immanse, seulement 3 ou 4Mo.
Comment connaitre la limite de mémoire disponible ?


dans la feuille visible cellule nommée : suivimem
=INFO("memutil")/INFO("memtot")
au cours de la macro
doevents
lafeuillevisible.calculate
application.statusbar = suivimem

@+
;o)))

Avatar
papou
Modeste :
=INFORMATIONS("memutil")/INFORMATIONS("memtot")
Pour ce qui concerne mon Excel 2003.

;-)
Cordialement
Pascal

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

Bonsour® bobaldo avec ferveur ;o))) vous nous disiez :

C'est peut être une possibilité, la macro marche avec moins de graphe.
Mais au final le fichier Excel n'est pas immanse, seulement 3 ou 4Mo.
Comment connaitre la limite de mémoire disponible ?


dans la feuille visible cellule nommée : suivimem
=INFO("memutil")/INFO("memtot")
au cours de la macro
doevents
lafeuillevisible.calculate
application.statusbar = suivimem

@+
;o)))





Avatar
bobaldo
J'ai bien effectué la démarche que vous m'indiquez.
Je mesure donc au fur et à mesure de l'avancement de la macro le % de
mémoire utilisée.
Au début de la macro, ça commence à 87%. Ca augmente petit à petit. Quand
mon programme plante ("erreur 1004...."), j'en suis à 94%.

Est ce cela selon vous ?
Pour ma culture, de quelle mémoire parle t on ? d'une mémoire allouée à
excel ? de la mémoire vive (1024mo sur le pc que j'utilise) ? ou autre ?

Si c'est cela la cause de mes soucis, Connaissez vous un moyen de purger
cette mémoire en cours de macro ?


Modeste :
=INFORMATIONS("memutil")/INFORMATIONS("memtot")
Pour ce qui concerne mon Excel 2003.

;-)
Cordialement
Pascal

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

Bonsour® bobaldo avec ferveur ;o))) vous nous disiez :

C'est peut être une possibilité, la macro marche avec moins de graphe.
Mais au final le fichier Excel n'est pas immanse, seulement 3 ou 4Mo.
Comment connaitre la limite de mémoire disponible ?


dans la feuille visible cellule nommée : suivimem
=INFO("memutil")/INFO("memtot")
au cours de la macro
doevents
lafeuillevisible.calculate
application.statusbar = suivimem

@+
;o)))










Avatar
bobaldo
J'ai essayé d'arranger mon code, de vider toutes les variables quand j'en
n'ai plus besoin ( set xxx = Nothing ).

Toujours la même erreur ou le même plantage !

Chaque graphe qui est créé alourdit la mémoire utilisée jusqu'au plantage.
Comment faire pour vider au fur et à mesure la mémoire qui est allouée à ces
nouveaux graphiques ???




J'ai bien effectué la démarche que vous m'indiquez.
Je mesure donc au fur et à mesure de l'avancement de la macro le % de
mémoire utilisée.
Au début de la macro, ça commence à 87%. Ca augmente petit à petit. Quand
mon programme plante ("erreur 1004...."), j'en suis à 94%.

Est ce cela selon vous ?
Pour ma culture, de quelle mémoire parle t on ? d'une mémoire allouée à
excel ? de la mémoire vive (1024mo sur le pc que j'utilise) ? ou autre ?

Si c'est cela la cause de mes soucis, Connaissez vous un moyen de purger
cette mémoire en cours de macro ?


Modeste :
=INFORMATIONS("memutil")/INFORMATIONS("memtot")
Pour ce qui concerne mon Excel 2003.

;-)
Cordialement
Pascal

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

Bonsour® bobaldo avec ferveur ;o))) vous nous disiez :

C'est peut être une possibilité, la macro marche avec moins de graphe.
Mais au final le fichier Excel n'est pas immanse, seulement 3 ou 4Mo.
Comment connaitre la limite de mémoire disponible ?


dans la feuille visible cellule nommée : suivimem
=INFO("memutil")/INFO("memtot")
au cours de la macro
doevents
lafeuillevisible.calculate
application.statusbar = suivimem

@+
;o)))












Avatar
papou
Bonjour
Tu ne peux pas !
Selon moi, il te faut revoir plus globalement ta copie de manière à réduire
le nombre de graphique créés.
Tu te trouves déjà dans une situation très limite avec les éléments que tu
nous as fournis dans ton premier message :
environ 40 ou 50 onglets ...
...et autant d'onglets...sous forme de graphique...


Je me demande d'ailleurs comment on peut exploiter un fichier avec un tel
nombre d'informations ?

Cordialement
Pascal

"bobaldo" a écrit dans le message de
news:
J'ai essayé d'arranger mon code, de vider toutes les variables quand j'en
n'ai plus besoin ( set xxx = Nothing ).

Toujours la même erreur ou le même plantage !

Chaque graphe qui est créé alourdit la mémoire utilisée jusqu'au plantage.
Comment faire pour vider au fur et à mesure la mémoire qui est allouée à
ces
nouveaux graphiques ???




J'ai bien effectué la démarche que vous m'indiquez.
Je mesure donc au fur et à mesure de l'avancement de la macro le % de
mémoire utilisée.
Au début de la macro, ça commence à 87%. Ca augmente petit à petit. Quand
mon programme plante ("erreur 1004...."), j'en suis à 94%.

Est ce cela selon vous ?
Pour ma culture, de quelle mémoire parle t on ? d'une mémoire allouée à
excel ? de la mémoire vive (1024mo sur le pc que j'utilise) ? ou autre ?

Si c'est cela la cause de mes soucis, Connaissez vous un moyen de purger
cette mémoire en cours de macro ?


Modeste :
=INFORMATIONS("memutil")/INFORMATIONS("memtot")
Pour ce qui concerne mon Excel 2003.

;-)
Cordialement
Pascal

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

Bonsour® bobaldo avec ferveur ;o))) vous nous disiez :

C'est peut être une possibilité, la macro marche avec moins de
graphe.
Mais au final le fichier Excel n'est pas immanse, seulement 3 ou
4Mo.
Comment connaitre la limite de mémoire disponible ?


dans la feuille visible cellule nommée : suivimem
=INFO("memutil")/INFO("memtot")
au cours de la macro
doevents
lafeuillevisible.calculate
application.statusbar = suivimem

@+
;o)))














Avatar
bobaldo
Bonjour,

Pour ce qui est de l'exploiter, il n'y a aucun problème. Il s'agit d'un
outil d'aide à la décision et de comparaison.

Pour ce qui est de mon problème, je me retrouve toujours avec le même
problème à regler...

Si quelqu'un a une idée je suis preneur !


Bonjour
Tu ne peux pas !
Selon moi, il te faut revoir plus globalement ta copie de manière à réduire
le nombre de graphique créés.
Tu te trouves déjà dans une situation très limite avec les éléments que tu
nous as fournis dans ton premier message :
environ 40 ou 50 onglets ...
...et autant d'onglets...sous forme de graphique...


Je me demande d'ailleurs comment on peut exploiter un fichier avec un tel
nombre d'informations ?

Cordialement
Pascal

"bobaldo" a écrit dans le message de
news:
J'ai essayé d'arranger mon code, de vider toutes les variables quand j'en
n'ai plus besoin ( set xxx = Nothing ).

Toujours la même erreur ou le même plantage !

Chaque graphe qui est créé alourdit la mémoire utilisée jusqu'au plantage.
Comment faire pour vider au fur et à mesure la mémoire qui est allouée à
ces
nouveaux graphiques ???




J'ai bien effectué la démarche que vous m'indiquez.
Je mesure donc au fur et à mesure de l'avancement de la macro le % de
mémoire utilisée.
Au début de la macro, ça commence à 87%. Ca augmente petit à petit. Quand
mon programme plante ("erreur 1004...."), j'en suis à 94%.

Est ce cela selon vous ?
Pour ma culture, de quelle mémoire parle t on ? d'une mémoire allouée à
excel ? de la mémoire vive (1024mo sur le pc que j'utilise) ? ou autre ?

Si c'est cela la cause de mes soucis, Connaissez vous un moyen de purger
cette mémoire en cours de macro ?


Modeste :
=INFORMATIONS("memutil")/INFORMATIONS("memtot")
Pour ce qui concerne mon Excel 2003.

;-)
Cordialement
Pascal

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

Bonsour® bobaldo avec ferveur ;o))) vous nous disiez :

C'est peut être une possibilité, la macro marche avec moins de
graphe.
Mais au final le fichier Excel n'est pas immanse, seulement 3 ou
4Mo.
Comment connaitre la limite de mémoire disponible ?


dans la feuille visible cellule nommée : suivimem
=INFO("memutil")/INFO("memtot")
au cours de la macro
doevents
lafeuillevisible.calculate
application.statusbar = suivimem

@+
;o)))



















Avatar
Misange
Bonjour,

Pour ce qui est de l'exploiter, il n'y a aucun problème. Il s'agit d'un
outil d'aide à la décision et de comparaison.


manifestement il y a quand même un problème ! :-)


Pour ce qui est de mon problème, je me retrouve toujours avec le même
problème à regler...

Si quelqu'un a une idée je suis preneur !


La mémoire utilisée pour gérer les graphique dans excel ne représente
qu'une fraction de la mémoire disponible pour l'application entière.
Augmenter la mémoire physique n'est donc que partiellement efficace.
Certaines choses sont particuièrement gourmandes en mémoire : notamment
décoche systématiquement l'option mettre à jour la taille des polices
avec le graphique. Evite aussi +++ de mettre des polices différentes
dans les graphiques.

Ce que Papou essaie de te dire c'est qu'il y a bien peu de chances que
tes lecteurs regardent en même temps 40 graphiques situés sur 40 onglets...
Une solution, c'est de générer les graphiques à l'activation de la
feuille, par macro. Très efficace

une autre c'est lorsque plusieurs graphiques ont en fait exactement la
même structure, de ne changer que la source de données (par macro aussi)

une troisième, c'est de fractionner le classeur en plein de petits en
faisant des liaisons vers un classeur maitre contenant les données et en
n'ouvrant que le classeur maitre et un seul classeur dépendant avec les
graphiques.

Voilà quelques pistes...

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net




Bonjour
Tu ne peux pas !
Selon moi, il te faut revoir plus globalement ta copie de manière à réduire
le nombre de graphique créés.
Tu te trouves déjà dans une situation très limite avec les éléments que tu
nous as fournis dans ton premier message :
environ 40 ou 50 onglets ...
...et autant d'onglets...sous forme de graphique...
Je me demande d'ailleurs comment on peut exploiter un fichier avec un tel

nombre d'informations ?

Cordialement
Pascal

"bobaldo" a écrit dans le message de
news:
J'ai essayé d'arranger mon code, de vider toutes les variables quand j'en
n'ai plus besoin ( set xxx = Nothing ).

Toujours la même erreur ou le même plantage !

Chaque graphe qui est créé alourdit la mémoire utilisée jusqu'au plantage.
Comment faire pour vider au fur et à mesure la mémoire qui est allouée à
ces
nouveaux graphiques ???




J'ai bien effectué la démarche que vous m'indiquez.
Je mesure donc au fur et à mesure de l'avancement de la macro le % de
mémoire utilisée.
Au début de la macro, ça commence à 87%. Ca augmente petit à petit. Quand
mon programme plante ("erreur 1004...."), j'en suis à 94%.

Est ce cela selon vous ?
Pour ma culture, de quelle mémoire parle t on ? d'une mémoire allouée à
excel ? de la mémoire vive (1024mo sur le pc que j'utilise) ? ou autre ?

Si c'est cela la cause de mes soucis, Connaissez vous un moyen de purger
cette mémoire en cours de macro ?


Modeste :
=INFORMATIONS("memutil")/INFORMATIONS("memtot")
Pour ce qui concerne mon Excel 2003.

;-)
Cordialement
Pascal

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

Bonsour® bobaldo avec ferveur ;o))) vous nous disiez :

C'est peut être une possibilité, la macro marche avec moins de
graphe.
Mais au final le fichier Excel n'est pas immanse, seulement 3 ou
4Mo.
Comment connaitre la limite de mémoire disponible ?
dans la feuille visible cellule nommée : suivimem

=INFO("memutil")/INFO("memtot")
au cours de la macro
doevents
lafeuillevisible.calculate
application.statusbar = suivimem

@+
;o)))



















1 2