[macro]Graphique avec nom de range en range

Bonjour,

J'ai testé de définir à la main la plage de mon graphique avec une range dynamique nommée "Tableau1" (c'est un tableau).

Cela fonctionne, sauf que lorsque je ferme mon classeur et le réouvre, le graphique perd son dynamisme.

(Il garde juste en mémoire la dernière range) et j'ai donc des erreurs quand je mets à jour le tableau.

Ce que je souhaite faire est donc de retracer le graphique définit par la range "Tableau1" à l'aide d'une macro afin de mettre à jour la range.

Dim Graph1 As Worksheet
Dim Data1 As Worksheet

Set Graph1 = Worksheets("Ccat1")
Set Data1 = Worksheets("Cat1")
Set Sim = Worksheets("Simu")

Graph1.ChartObjects("Graphique 1").Activate
With ActiveChart
Do Until .SeriesCollection.Count = 0
       .SeriesCollection(1).Delete
Loop
End With

ActiveChart.SetSourceData Source:=Range("Tableau1")

Cependant, ce code ne fonctionne pas (dernière ligne).

Pourtant n'Est-ce pas la formulation VBA du fait de définir la plage "Tableau1" pour le graphique ?

Merci de votre aide futur

ActiveChart.SetSourceData Source:=Sheets("lenomdusheet").Range("Tableau1")

Cette formulation revient au même, l'objet range étant global au document Excel.

J'obtiens avec les deux méthodes le même message d'erreur :

"Le nombre maximal de séries de données par graphique est de 255"

Pourtant quand je trace à la main avec la même range dans la plage de données du graphique, cela fonctionne.

Enregistre la macro de ce que tu fais à la main et montre, on trouvera bien une différence.

Sub Macro1()
'
' Macro1 Macro
'
    Sheets("Ccat1").Select
    ActiveChart.ChartArea.Select
End Sub

La macro n'enregistre pas les actions suivantes (suite au ActiveChart.ChartArea.Select)

  • clic droit
  • "Sélectionner des données"
  • "Plage de données du graphique"
  • Là je tape juste "=Tableau1" dans le champ
  • "ok"
Rechercher des sujets similaires à "macro graphique nom range"