Création d'un graphique par macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

akibodo

XLDnaute Junior
Bonjour à tous,

Voici mon souci :

J'essaye de créer un graphique automatiquement à l'aide d'une macro qui utilise des résultats calculés après filtres et mise en forme.

J'ai utilisé l'enregistreur de macro pour créer mon graphique, une fois fais je l'ai supprimé mais lorsque je relance la macro il y a une erreur d'excution sur cette ligne là :

Code:
Sheets("graph").DrawingObjects("Graphique 1").RoundedCorners = True

D'après ce que j'ai compris il incrémente les numéro de graphique en les superposant au fur et à mesure que l'on modifie l'aspect graphique du graph.

Malheureusement je ne comprend pas comment le gérer.

Je met un fichier en pièce jointe pour exemple plus concret , ou si ce n'est pas celà qui pose problème.

Merci d'avance.
 

Pièces jointes

Re : Création d'un graphique par macro

Bonjour AkiBodo

Si tu n'as qu'un graphique sur ta feuille:

Remplace toutes les mentions "Graphique 1" par 1

Ex:
Code:
Sheets("graph").DrawingObjects(1).RoundedCorners = True

Et en tête de macro, pour supprimer le graph existant éventuellement:

Code:
      'Destruction de l'ancien graphique s'il existe
        On Error Resume Next
        Sheets("graph").DrawingObjects(1).Delete
        On Error GoTo 0

A+
 
Re : Création d'un graphique par macro

Bonjour,

Salut, Hasco, un peu à la bourre, moi.....🙂

Si tu as plus d'un graphique, rajoute cette ligne (x = Right..... :

Code:
    ActiveChart.Location Where:=xlLocationAsObject, Name:="graph"
    With ActiveChart
        x = Right(.Name, Len(.Name) - 6)
        .HasAxis(xlCategory) = False

et ensuite :

Code:
    Sheets("graph").DrawingObjects(x).RoundedCorners = True
 
Re : Création d'un graphique par macro

Re,

Merci pour ces réponses mais pour ton code Bhbh j'ai ajouter End with.

Sinon le ".Name" je dois le remplacer par quelque chose ou ça dois marcher comme ça ?

Et puis je ne comprend pas un truc j'ai fais ce fichier en dehors de ma macro principale, lorsque je le lance la 1ère fois ça marche et après ça bug par contre quand j'essaye de l'implémentée dans ma macro principale ça bug dès le 1er essai.

Je rame un peu là ...

Autre truc qui me paraît bizarre, j'ai voulu supprimé l'onglet "graph" au cas ou il resterer une trace du graph et que celà causerait mon problème mais même si j'ai que 3 feuil il continue à incrémenté les N° des feuil créée soit 5 puis 6 même si je viens d'effacer la 5.
 
Dernière édition:
Re : Création d'un graphique par macro

Re-,

je ne t'ai montré qu'une partie de ton code, tu n'as qu'à insérer cette ligne à cet endroit, et modifier le nom du graphique par "x"

Et le x te donne le nom du graphique

Comme tu le nommes "graph" dans la ligne :

Code:
ActiveChart.Location Where:=xlLocationAsObject, Name:="graph"

son nom devient "graph Graphique 5" (par exemple)
avec le Right (.name...........), tu obtiens "Graphique 5"

Donc, ne change rien.....

Bonne soirée

Edit :

regarde ton fichier modifié
 

Pièces jointes

Dernière édition:
Re : Création d'un graphique par macro

Bonjour,
Merci pour ces informations.

Mais pourquoi lorsque j'ouvre votre fichier, mon Excel "freeze"? La fenêtre se gèle et me dis que "le programme ne répond pas"...

Je suis sous Excel 2002 et ça me fais ca avec tous les scripts de création de graphique par Macro...

Me manquerait-il un truc sur ma machine? Y'a-t-il un module prérequis que je n'ai pas pour utiliser cette macro?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour