Macro - suppresion graphique
Dernière réponse : dans Programmation
Bonjour
sous excel, j'ai fait une macro qui me donne un joli graphique. le problème, c'est que je n'arrive pas à supprimer l'ancien graphique... j'ai mes graphs qui se surperpose et c'est tres moche !!
J'ai essayé de le faire avec l'assistant de création de macro (on clique sur enregistrement, puis on fais le graph pui on arrete l'enregistrement), mais, d'une part, Zeb me diras que cela nous fais un code horrible, d'autre part, il (excel) nomme chaque graphique differement... donc à chaque fois, mon programme bug !!
Quelqu'un aurai t il une piste ?
sous excel, j'ai fait une macro qui me donne un joli graphique. le problème, c'est que je n'arrive pas à supprimer l'ancien graphique... j'ai mes graphs qui se surperpose et c'est tres moche !!
J'ai essayé de le faire avec l'assistant de création de macro (on clique sur enregistrement, puis on fais le graph pui on arrete l'enregistrement), mais, d'une part, Zeb me diras que cela nous fais un code horrible, d'autre part, il (excel) nomme chaque graphique differement... donc à chaque fois, mon programme bug !!
Quelqu'un aurai t il une piste ?
Autres pages sur : macro suppresion graphique
Lassé par la pub ? Créez un compte
Oui, j'ai une piste : utiliser le créateur-de-macro-qui-fait-du-code-moche (je l'ai écrit ici
) et modifier et adapter le code proposé.
Le programme buggue ? ou Le programme ne fait pas le travail attendu ?
Publie un bout de code qu'on voit mieux le problème.
) et modifier et adapter le code proposé.Le programme buggue ? ou Le programme ne fait pas le travail attendu ?
Publie un bout de code qu'on voit mieux le problème.
Sheets("graphe TRG").Select
ActiveSheet.ChartObjects("Graphique 11").Activate
ActiveChart.ChartArea.Select
ActiveWindow.Visible = False
Selection.Delete
je reconnais que cela manque de beauté !
en fait, l'erreur viens de la ligne 2, mais je ne sais pas comment changer...11 correspond au nombre de graphique fait... je ne sais pas comment changer cela.
J'ai bien mis un titre sur mon graphique, mais bon, j'ai du louper quelques chose...
sinon, la solution qu'il me reste est de supprimer l'onglet et de le refaire à chaque graphique... mais je pense qu'il y a mieux, sinon, je ferais cette méthode un peu barbare !
1°) Tu ne dis pas qu'il s'agit de graphique dans une feuille de calcul. (Il peut aussi s'agir d'onglets de type chart
)
Ton code peut s'écrire comme ça :
Alors ton problème, c'est le nom du graphique. A la création, donne lui un nom. Dans ton code-qui-est-moche, tu dois avoir quelque chose comme ça :
Beurk...
Ah!!! Là c'est beau
Donc comme ça, tu peux l'appeler par son petit nom quand tu veux le supprimer :
Mais si tu veux supprimer un graphique sans connaître son nom, tu peux l'appeler par son numéro d'ordre dans la liste. En général, on veut supprimer le premier ou le dernier. C'est TROP facile :
)Ton code peut s'écrire comme ça :
Sheets("graphe TRG" ).ChartObjects("Graphique 11" ).Delete
Prends l'habiture quand tu vois un Machin.Select suivi d'un Selection.Truc d'écrire Machin.Truc. C'est tellement plus simple de se lire après.Alors ton problème, c'est le nom du graphique. A la création, donne lui un nom. Dans ton code-qui-est-moche, tu dois avoir quelque chose comme ça :
Charts.Add
ActiveChart.ChartType = xl3DColumn
ActiveChart.SetSourceData Source:= ...
Beurk...
dim nouveau_graphique as Chart
Set nouveau_graphique = Charts.Add
nouveau_graphique.Name = "Je suis un beau graphique"
nouveau_graphique.ChartType = xl3DColumn
nouveau_graphique.SetSourceData Source:= ...
Ah!!! Là c'est beau
Donc comme ça, tu peux l'appeler par son petit nom quand tu veux le supprimer :
Charts("Je suis un beau graphique" ).Delete
Mais si tu veux supprimer un graphique sans connaître son nom, tu peux l'appeler par son numéro d'ordre dans la liste. En général, on veut supprimer le premier ou le dernier. C'est TROP facile :
Charts(1).Delete
Charts(Charts.Count).Delete
Charts(Charts.Count).Delete
j'ai toujours une erreur...
il y a dejà un graph nommé "graphique" à la base... et j'ai toujours un probleme ligne 4.. erreur 9 !
j'ai essayé en remplacant la ligne 4 par charts(charts.count) ou alors charts(1) sans plus de resultat...
Dim nouveau_graphique As Chart
Worksheets("graphe TRG").Activate
Charts("graphique").Delete
Worksheets("TRG").Select
Range("C3:E23").Select
Set nouveau_graphique = Charts.Add
nouveau_graphique.Name = "graphique"
nouveau_graphique.ChartType = ...
il y a dejà un graph nommé "graphique" à la base... et j'ai toujours un probleme ligne 4.. erreur 9 !
j'ai essayé en remplacant la ligne 4 par charts(charts.count) ou alors charts(1) sans plus de resultat...
merci, j'avais pas fait attention.. maintenant, cela marche !!
pour info :
avec ChartObjects qui désigne les graphiques dans l'onglet !!
Merci !
pour info :
Sub graphe()
Dim nouveau_graphique As Chart
Worksheets("graphe TRG").ChartObjects.Delete
Worksheets("TRG").Select
Range("C3:E23").Select
Set nouveau_graphique = Charts.Add
nouveau_graphique.Name = "graphique"
nouveau_graphique.ChartType =.....
....
avec ChartObjects qui désigne les graphiques dans l'onglet !!
Merci !
Et voilà !!!
ChartObjects.Delete c'est pour supprimer toute la collection. (*)
ChartObjects(n).Delete c'est pour supprimer le n-ième de la collection.
ChartObjects("toto").Delete c'est pour supprimer de la collection celui qui s'appelle toto.
(*) Tu fais pas de détails toi. Au moins, c'est radical
PS:
TU VAS ME VIRER CES Select INUTILES !!!!
ChartObjects.Delete c'est pour supprimer toute la collection. (*)
ChartObjects(n).Delete c'est pour supprimer le n-ième de la collection.
ChartObjects("toto").Delete c'est pour supprimer de la collection celui qui s'appelle toto.
(*) Tu fais pas de détails toi. Au moins, c'est radical
PS:
TU VAS ME VIRER CES Select INUTILES !!!!
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumMacro dimension d'un graphique
- ForumMacro graphique wow
- ForumMacro effacer un graphique
- ForumMacro vba graphique
- ForumMacro taille graphique
- ForumMacro dimension graphique
- ForumAgrandir graphique macro
- ForumCrã ation graphique macro
- ForumCrã er graphique macro
- ForumCréer graphique macro
- Voir plus