Création de graphique en VBA

Encore bonjour au forum,

Après plusieurs heures de recherche ce matin sur le sujet je me retrouve bloquer devant la création d'un graphique en vba,

J'ai utilisé l'enregistreur de macro pour voir comment cela tourne mais lorsque je lance l'enregistrement la macro s'arrête immédiatement, j'ai du louper quelques choses mais les réponses trouvées sur le net ne m'ont pas apportés une grande aide ( j'ai pas du bien comprendre les explications)

Ma macro s'arrête sur la définition de la série

ActiveChart.SeriesCollection(1).XValues = "=Prt!$B$7:$R$7;Prt!$B$13:$S$13;Prt!$B$19:$R$19"

Je vous laisse un fichier exemple avec le résultat attendu,

Si vous avez des idées ou des explications je suis preneur!

13graph.xlsm (42.08 Ko)

bonjour

personne ne crée de graphique en VBA. On crée au départ un graphique au clavier/souris, basé sur une plage de données (ou un tableau)

ensuite les utilisateurs ont juste à changer la plage de données (par couper/coller, par connexion, par Power Query ou autre méthode). Le graphique est mis à jour automatiquement par Excel.

Bonjour JMD,

Merci de ta réponse, même si elle ne me simplifie pas la vie lol

Apres investigation j'ai l'impression que le fait d'avoir les données sur plusieurs ligne ca fait planté la macro,

Mais j'ai pas encore trouver la parade!

Si vous avez des idées je cherches toujours de mon coté.

re

je te propose d'abandonner VBA et ça ne te simplifie pas la vie ?

dis-nous pourquoi tu as absolument besoin de VBA ?

Bonjour,

Comme préconisé par jmd, tu dois commencer par mettre tes données sous forme de tableau.

Si tu dois utiliser VBA, fais le éventuellement pour des mises en forme (plusieurs graphiques!...).

Un exemple dans le fichier qui simplifie la construction d'un graphique.

Cdlt.

14graph-1.xlsm (58.10 Ko)

Bonjour edlede,

Je te propose de remplacer toutes les lignes du type :

    ActiveChart.SeriesCollection(1).XValues = _
        "=Prt!$B$7:$R$7;Prt!$B$13:$S$13;Prt!$B$19:$R$19"

par

ActiveChart.SeriesCollection(1).XValues = Worksheets("Prt").Range("$B$7:$R$7,$B$13:$S$13,$B$19:$R$19")

Merci à Tous,

Grace à vos solutions j'ai obtenu exactement ce dont j'avais besoin!

Encore un grand merci et à très bientôt,

Rechercher des sujets similaires à "creation graphique vba"