VBA : titres et légendes invisibles

  • Initiateur de la discussion Initiateur de la discussion Bulot
  • Date de début Date de début

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 !

Bulot

XLDnaute Nouveau
Bonjour,

J'utilise VBA pour faire des graphs sous Excel 2010 mais mes titres et légendes n’apparaissent pas. Je n'arrive pas à les créer même à la main sur les graph générés par VBA, par contre si je fais un nouveau graph a la main la légende est visible et je peux ajouter le titre sans soucis.

Voici mon code
Code:
Sub plotLuff()
Dim myChart As Chart
Dim oChart As ChartObject
Dim wsL As Worksheet
Dim wsR As Worksheet

Set wsL = ActiveWorkbook.Worksheets("Data")
Set wsR = ActiveWorkbook.Worksheets("Results")

'Créer le graph
wsR.Activate
Cells.Clear
ActiveSheet.DrawingObjects.Delete
wsR.Range("A1").Select
Set oChart = ActiveSheet.ChartObjects.add(Left:=0, Width:=200, Top:=0, Height:=400)
Set myChart = oChart.Chart
myChart.ChartType = xlXYScatterSmoothNoMarkers
myChart.HasTitle = True
myChart.ChartTitle.Text = "Mon titre de graph"
myChart.HasLegend = True

' Effacer les séries inutiles
Do Until myChart.SeriesCollection.Count = 0
    myChart.SeriesCollection(1).Delete
Loop

' Remplir le graph    
Dim i As Integer
Dim nbLoadCase As Integer
nbLoadCase = 2
For i = 1 To nbLoadCase
    myChart.SeriesCollection.NewSeries
    myChart.SeriesCollection(i).Name = "LoadCase" & CStr(i)
    myChart.SeriesCollection(i).XValues = "=$F$6:$F$10"
    myChart.SeriesCollection(i).Values = "=$G$6:$G$10"
Next

ActiveWorkbook.Save
End Sub

Je sèche complètement, si vous avez une idée de comment remettre les titres merci de votre aide !
 
Re : VBA : titres et légendes invisibles

Bonjour Michel,

Merci pour ta réponse, mais la méthode SetElement ne fonctionne pas : Method 'SetElement' of object '_Chart' failed

Pour avoir un ActiveChart j'ai activé oChart (ChartObject), je ne peux pas activer myChart (Chart). Qu'est ce qui doit être actif, le ChartObject ou le Chart ?
 
Re : VBA : titres et légendes invisibles

Re

Sinon, tu peux faire ceci pour automatiser sur plusieurs graphiques:

Code:
Sub ajoute_Leg_Titre_Graphs()
    n = ActiveSheet.ChartObjects.Count
    For i = 1 To n
        ActiveSheet.ChartObjects(i).Activate
        ActiveChart.SetElement (msoElementLegendBottom)
        ActiveChart.SetElement (msoElementChartTitleAboveChart)
    Next
End Sub
 
Re : VBA : titres et légendes invisibles

Merci beaucoup !
J'aimerai pouvoir te dire que c'est formidable et que ça marche, malheureusement quand j'ai ré ouverts mon fichier pour y apporter tes dernières modifs il était déjà guéri (ma macro se lance à l'ouverture)! (Bon, je n'y comprends strictement rien, ça à l'air un peu aléatoire comme problème, ce qui n'est pas très satisfaisant comme explication...). Enfin j'ai quand même rajouté ce petit bout, histoire de consolider le tout !

Ou alors il a mis un peu de temps à prendre en compte les modifs précédentes (ça non plus c'est pas terrible comme explication!) ?

Bon, dans tous les cas pour l'instant ça marche, j'espère que ça tiendra, et milles mercis pour ta disponibilité !
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
819
Réponses
1
Affichages
522
Réponses
0
Affichages
460
Retour