Récupérer le nom d'un graphique en VBA

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
T
Tortank
Membre habitué
Membre habitué
Messages : 62
Inscrit le : 22 novembre 2019
Version d'Excel : 2016

Message par Tortank » 20 février 2020, 10:38

Bonjour,

J'ai déjà effectué pas mal de recherche mais les réponses s'adaptent généralement à des noms de cellule et non à des graphs eux-mêmes.

Du coup ma question, c'est comme récupérer en VBA le nom d'un graphique et l'affiche en MsgBox par exemple ?

Merci d'avance,
Avatar du membre
Pedro22
Passionné d'Excel
Passionné d'Excel
Messages : 3'934
Appréciations reçues : 401
Inscrit le : 26 janvier 2017
Version d'Excel : 2010 FR
Version de Sheets : FR
Téléchargements : Mes applications

Message par Pedro22 » 20 février 2020, 10:45

Bonjour,

Si le graphique est seul sur la feuille :
MsgBox Sheets("MaFeuille").ChartObjects(1).Name
S'il y en a plusieurs :
For i = 1 To Sheets("MaFeuille").ChartObjects.Count
        MsgBox Sheets("MaFeuille").ChartObjects(i).Name
Next i
Merci de prendre 30 sec pour lire la charte du forum.
Quelques conseils : ici
T
Tortank
Membre habitué
Membre habitué
Messages : 62
Inscrit le : 22 novembre 2019
Version d'Excel : 2016

Message par Tortank » 20 février 2020, 11:38

Bonjour,

Merci pour ta réponse,

Malheureusement cette commande permet de récupérer le nom du graphique, mais pas son titre, c'est de ma faute, je me suis mal exprimé...

Merci pour ton aide.
Avatar du membre
Pedro22
Passionné d'Excel
Passionné d'Excel
Messages : 3'934
Appréciations reçues : 401
Inscrit le : 26 janvier 2017
Version d'Excel : 2010 FR
Version de Sheets : FR
Téléchargements : Mes applications

Message par Pedro22 » 20 février 2020, 11:46

A tester :
MsgBox Sheets("MaFeuille").ChartObjects(1).ChartTitle
Merci de prendre 30 sec pour lire la charte du forum.
Quelques conseils : ici
T
Tortank
Membre habitué
Membre habitué
Messages : 62
Inscrit le : 22 novembre 2019
Version d'Excel : 2016

Message par Tortank » 20 février 2020, 11:54

Comme ceci ça fonctionne aussi, merci beaucoup !

MsgBox Worksheets("Mafeuil1").ChartObjects(1).Chart.ChartTitle.Text]
T
Tortank
Membre habitué
Membre habitué
Messages : 62
Inscrit le : 22 novembre 2019
Version d'Excel : 2016

Message par Tortank » 20 février 2020, 14:24

J'ai juste une dernière question, comment écrire ce résultat en texte et non en MsgBox ?

Merci d'avance
Avatar du membre
Pedro22
Passionné d'Excel
Passionné d'Excel
Messages : 3'934
Appréciations reçues : 401
Inscrit le : 26 janvier 2017
Version d'Excel : 2010 FR
Version de Sheets : FR
Téléchargements : Mes applications

Message par Pedro22 » 20 février 2020, 14:25

Tortank a écrit :
20 février 2020, 14:24
J'ai juste une dernière question, comment écrire ce résultat en texte et non en MsgBox ?

Merci d'avance
Comme ça ?
Sheets("Truc").Range("A1") = Worksheets("Mafeuil1").ChartObjects(1).Chart.ChartTitle.Text
Merci de prendre 30 sec pour lire la charte du forum.
Quelques conseils : ici
T
Tortank
Membre habitué
Membre habitué
Messages : 62
Inscrit le : 22 novembre 2019
Version d'Excel : 2016

Message par Tortank » 20 février 2020, 14:32

Dans l'idée, ma macro fonctionne sur Excel, et expédie des données sur Word.

Je crée mon Document Word de cette façon :
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add
Donc j'imagine que quelque chose comme ça devrait fonctionner :
 objDoc = onglet.ChartObjects(1).Chart.ChartTitle.Text
Malheureusement non :/

Mais je vais creuser sur l'idée de faire un égalité si c'est de cette façon que ça fonctionne.

Merci !
T
Tortank
Membre habitué
Membre habitué
Messages : 62
Inscrit le : 22 novembre 2019
Version d'Excel : 2016

Message par Tortank » 20 février 2020, 14:36

Peut être qu'en utilisant une propriété comme
.MoveLeft
permettrai d'écrire le texte sans se faire écraser par le reste de la macro :bof:
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message