C'est dans un état de dépression que je viens vous demander de l'aide.
Voici maintenant 2 jours que j'erre sur un problème VBA dont je ne comprends pas la nature.
J'en suis à la fin du développement d'un moyen programme sur VBA qui implique la création de worksheet, l'ouverture d'autres classeurs pour y copier des données et enfin la création de graphiques avec les données ainsi reprises (et en meme temps un peu modifiées).
C'est ce dernier point qui me pose problème. J'ai en effet découper mon programme en plusieurs modules avec chacuns une tâche particulière. Lorsque je joins le dernier module (création de graphiques) aux autres, le programme plante. Si je ne le lance pas en même temps, tout va bien.
L'erreur est : Erreur d'exécution '-2147417848 (80010108)' et le détail : "La méthode 'chartArea de l'objet '_chart' a échoué". La ligne surlignée est :"graph1.ChartArea.Clear" (cf code plus bas)
Par ailleurs, une fois que j'appuie sur "fin" pour quitter la boite de dialogue de l'erreur, il m'est impossible d'aller sur mon classeur Excel qui plante systématiquement. Il faut soit que j'effecture un Ctrl+alt+supr pour fermer et rouvrir le programme, soit que je tente de sauvegarder sous VBA pour qu'un message de Microsoft Excel de plantage me propose d'envoyer un rapport d'erreur à Microsoft et me relance mon Excel.
En me renseignant sur ce type d'erreur, il se pourrait qu'elle ait pour origine un appel à une fonction dejà fermée. Cependant, mon module "graph" ne fait que tracer des graphiques. Il fait bien appel à des worksheet du classeur courant, mais rien de plus. A savoir, qu'il m'arrive de réussir à lancer le module graphique indépendamment.
Pour vous éclaircir sur le fonctionnement global de mon appli. Lorsque j'ouvre mon fichier "prog.xls", il n'y a qu'une feuille "accueil" sur laquelle il y a un bouton CmdButton qui appel un userform (nommé UserForm1) par la fonction : UserForm1.UserForm1_Initialize
Dans cet userform, l'utilisateur renseigne deux trois broutilles dans des textbox et autres combobox avant de lancer l'appli grâce au CmdButton "go" qui appelle la sub du premier module "macro_go".
C'est dans ce module (macro_go) que je lance toutes les autres sub des autres modules. Pour rappel, tout marche bien lorsque je lance toutes les sub sauf celle du module "graph"
Comme test, j'ai pris un bout de code du module graph et je l'ai mis dans mon module macro_go pour tenter d'y voir plus clair. Voici les deux codes de mon module macro_go, le premier normal qui engendre l'erreur d'exécution ; et le deuxième avec le bout de code qui renvoie la même erreur. La ligne surlignée est "graph1.ChartArea.Clear" (cf code plus bas).
A savoir que j'ai mis en variable globale les divers worksheet qui sont appelés dans la macro graphique ("Graph" ). L'erreur était la même quand je déclarais les worksheet comme : Set ws = Application.workbook("prog.xls" ).worksheet("bla bla b.." ) ..
Marsh Posté le 22-07-2010 à 18:12:42
Bonjour,
C'est dans un état de dépression que je viens vous demander de l'aide.
Voici maintenant 2 jours que j'erre sur un problème VBA dont je ne comprends pas la nature.
J'en suis à la fin du développement d'un moyen programme sur VBA qui implique la création de worksheet, l'ouverture d'autres classeurs pour y copier des données et enfin la création de graphiques avec les données ainsi reprises (et en meme temps un peu modifiées).
C'est ce dernier point qui me pose problème. J'ai en effet découper mon programme en plusieurs modules avec chacuns une tâche particulière. Lorsque je joins le dernier module (création de graphiques) aux autres, le programme plante. Si je ne le lance pas en même temps, tout va bien.
L'erreur est : Erreur d'exécution '-2147417848 (80010108)' et le détail : "La méthode 'chartArea de l'objet '_chart' a échoué". La ligne surlignée est :"graph1.ChartArea.Clear" (cf code plus bas)
Par ailleurs, une fois que j'appuie sur "fin" pour quitter la boite de dialogue de l'erreur, il m'est impossible d'aller sur mon classeur Excel qui plante systématiquement. Il faut soit que j'effecture un Ctrl+alt+supr pour fermer et rouvrir le programme, soit que je tente de sauvegarder sous VBA pour qu'un message de Microsoft Excel de plantage me propose d'envoyer un rapport d'erreur à Microsoft et me relance mon Excel.
En me renseignant sur ce type d'erreur, il se pourrait qu'elle ait pour origine un appel à une fonction dejà fermée. Cependant, mon module "graph" ne fait que tracer des graphiques. Il fait bien appel à des worksheet du classeur courant, mais rien de plus. A savoir, qu'il m'arrive de réussir à lancer le module graphique indépendamment.
Pour vous éclaircir sur le fonctionnement global de mon appli. Lorsque j'ouvre mon fichier "prog.xls", il n'y a qu'une feuille "accueil" sur laquelle il y a un bouton CmdButton qui appel un userform (nommé UserForm1) par la fonction : UserForm1.UserForm1_Initialize
Dans cet userform, l'utilisateur renseigne deux trois broutilles dans des textbox et autres combobox avant de lancer l'appli grâce au CmdButton "go" qui appelle la sub du premier module "macro_go".
C'est dans ce module (macro_go) que je lance toutes les autres sub des autres modules. Pour rappel, tout marche bien lorsque je lance toutes les sub sauf celle du module "graph"
Comme test, j'ai pris un bout de code du module graph et je l'ai mis dans mon module macro_go pour tenter d'y voir plus clair. Voici les deux codes de mon module macro_go, le premier normal qui engendre l'erreur d'exécution ; et le deuxième avec le bout de code qui renvoie la même erreur. La ligne surlignée est "graph1.ChartArea.Clear" (cf code plus bas).
A savoir que j'ai mis en variable globale les divers worksheet qui sont appelés dans la macro graphique ("Graph" ). L'erreur était la même quand je déclarais les worksheet comme : Set ws = Application.workbook("prog.xls" ).worksheet("bla bla b.." ) ..
Merci de votre aide !