VBA : parcourir graphiques : données source

dionys0s

XLDnaute Impliqué
Bonjour le forum

j'aimerais parcourir les graphiques d'une feuille, et récupérer dans une variable la plage de données liée à ce graphique.

Je parviens déjà à parcourir les graphiques et les seriescollections, mais impossible de récupérer la plage de données de chaque graphique et seriescollection

VB:
With Activesheet
  For k = 1 To .ChartObjects.Count
    With .ChartObjects(k).Chart
      For kPrim = 1 To .SeriesCollection.Count
        With .SeriesCollection(kPrim)
          Debug.Print .Name
        End With
      Next kPrim
    End With
  Next k
End With

J'ai eu beau chercher, notamment ici, je n'ai rien trouvé.

Thanks for your help :)
 
Dernière édition:

dionys0s

XLDnaute Impliqué
Re : VBA : parcourir graphiques : données source

Re le forum

bon et bien j'ai fini par trouver une méthode mais je la trouve un peu bancale tout de même... je la soumet ici à tout hasard, si quelqu'un y trouve à redire :
VB:
Public Sub QuickLauch()

 ChartsDataSource(ActiveSheet).Select

End Sub

Public Function ChartsDataSource(ByVal Wsh As Worksheet) As Range

 Dim k As Long, kPrim As Long, Addr As String

 With Wsh
  For k = 1 To .ChartObjects.Count
   With .ChartObjects(k).Chart
    For kPrim = 1 To .SeriesCollection.Count
     With .SeriesCollection(kPrim)
      Addr = Replace(Replace(Replace(Replace(.Formula, "=SERIES(", vbNullString), Wsh.Name & "!", vbNullString), "," & kPrim & ")", vbNullString), "$", vbNullString)
      If Not ChartsDataSource Is Nothing Then
       Set ChartsDataSource = Application.Union(ChartsDataSource, Wsh.Range(Addr))
      Else
       Set ChartsDataSource = Wsh.Range(Addr)
      End If
     End With
    Next kPrim
   End With
  Next k
 End With

End Function
 

dionys0s

XLDnaute Impliqué
Re : VBA : parcourir graphiques : données source

Re,

je continue le monologue :
la méthode ci-dessus n'est pas fiable : il faut que le graphique soit correctement paramétré (que chaque série ait le nom, les valeurs et l'étiquette paramétrés) pour que ça fonctionne. Si ce n'est pas le cas : plantage.
 

Discussions similaires

Réponses
1
Affichages
159
Réponses
0
Affichages
133
Réponses
7
Affichages
317

Statistiques des forums

Discussions
312 084
Messages
2 085 190
Membres
102 809
dernier inscrit
Sandrine83