VBA - Modification du titre d'un graphique

Bonjour à tous,

Je vous joins un fichier dans lequel vous trouverez un onglet Données et un onglet Graphique.

Je souhaite qu'à l'activation de l'onglet Graphique, seul le titre de chacun des graphiques (ici seulement 2 graphiques pour l'exemple) soit modifié selon la cellule I3 de l'onglet Données.

Je vous remercie d'avance.

Cordialement.

21test.xlsx (13.50 Ko)

Bonjour

Pas besoin de VBA pour cela, il suffis juste de cliquer sur l'encadré du titre du graphique et mettre dans la barre de formule d'Excel la référence de la cellule que tu veux. Dans cette cellule tu peux écrire ce que tu veux et ceci de manière dynamique, voir exemple dans le fichier joint

29test.xlsx (16.91 Ko)

Bonjour,

Un exemple.

Cdlt.

13test.xlsm (20.38 Ko)
Private Sub Worksheet_Activate()
Dim objChart As ChartObject, strTitle As String
    strTitle = Worksheets("Données").Cells(3, 9).Value
    For Each objChart In Me.ChartObjects
        objChart.Chart.ChartTitle.Text = strTitle
    Next objChart
End Sub

Bonjour,

Tout d'abord, merci à vous deux !

GGautier : je ne savais pas que c'était possible. L'inconvénient, devoir passer par autant de cellule supplémentaire que j'ai de graphique. J'ai donc essayé de mettre la formule concaténer dans le titre du graphique, mais ça ne fonctionne pas... Une idée pour simplifier ta proposition ?

Jean-Eric : c'est également super comme solution. Le problème est que le titre est modifié intégralement alors que je souhaite conservé la première partie de celui-ci comme dans mon exemple : c'est seulement la partie "SOLUTION 1" que je souhaite rentre variable en fonction de ma cellule I3. Une idée d'optimisation ?

Je vous mets en compétition, formule VS VBA

Re:

Tu as combien de graphique en tout ? Tes graphiques ont-il tous la même base (a savoir deux colonnes) ?

De plus, malheureusement je crois que ce n'est pas possible de mettre une formule dans l'encadré d'un titre mais seulement la référence à une cellule.

Dans ton cas je pense qu'il fraudais combiner la technique de Eric et celle que je viens de te présenter...

Re,

Essaie ainsi :

Private Sub Worksheet_Activate()
Dim objChart As ChartObject, strTitle As String
    strTitle = "Evolution des patates - " & Worksheets("Données").Cells(3, 9).Value
    For Each objChart In Me.ChartObjects
        objChart.Chart.ChartTitle.Text = strTitle
    Next objChart
End Sub

Je pense que la meilleur solution est que tu prépares dans un onglet le titre de tes graphiques via une formule de concaténation. Comme ça tu as juste à étirer la formule au nombre de graphiques que tu as. Et tu utilise du VBA pour assigner un titre à chacun d'eux !

Voilà le code que j'utilise :

Private Sub Worksheet_Activate()

Dim objChart As ChartObject, strTitle As String

For i = 1 To 4
    strTitle = Sheets("Données").Cells(i, 13).Value
    Shapes(i).Chart.ChartTitle.Text = strTitle
Next i

End Sub
17test.xlsm (27.09 Ko)

bonjour à tous,

une adaptation du code de Jean-Eric , pour conserver le titre jusqu'au tiret et ajouter la valeur de I3:

Dim objChart As ChartObject, strTitle As String
Dim L As Byte, T1 As String
    strTitle = Worksheets("Données").Cells(3, 9).Value
    For Each objChart In Me.ChartObjects
        L = InStr(objChart.Chart.ChartTitle.Text, "-")
        T1 = Left(objChart.Chart.ChartTitle.Text, L)
        objChart.Chart.ChartTitle.Text = T1 & " " & strTitle
    Next objChart

Vous êtes tous vraiment trop fort !

Mais c'est AlgoPlus qui remporte le premier prix ! En effet, j'ai de nombreux graphiques sur un onglet. Il ne comporte pas tous le même nom. De plus, je dois réaliser cette opération sur plusieurs onglets différents (20 autres solutions). C'est pourquoi le code d'AlgoPlus est celui qui se trouve être le plus facile pour moi à adapter à mon fichier d'origine.

Encore merci à tous !

Bonne journée à vous

Rechercher des sujets similaires à "vba modification titre graphique"