Gestion des graphes

gam1

XLDnaute Nouveau
Ce que j'ai :
1 classeur :
sur 1 feuille, j'ai mon graph et mes options a selectionner.
sur une autre feuille j'ai mes données, le nom de ma serie.

Mon objectif :
lorsque je clic sur un bouton de ma feuille, mon graphique se mets a jour, verifie les options selectionnées: si elles sont selectionnées affiche la serie (le graphique) associée, sinon n'affiche pas la série sur le graphique.
Je veux juste ajouter des series ou non (je veux garder mon graph)


Mon probleme :
N'ayant pas trouver beaucoup d'info sur la gestion des graph avec VBA, j'ai enregistre une macro et analyse le code.
Le probleme est dans la definition du graph, la macro appel le graph par un nom qui semble changer à chaque ouverture. Et impossible de trouver le nom du graph dans les proporiéte du graph.

Quelqu'un a déjà travailler avec des graphs et VBA? Merci pour vos reponses.

Mon Code

Charts.Add 'ca me plait pas, car ca ajoute forcement un nouveau graphe n'importe ou.
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets("Indicator Board").Range("X45")
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "=Planning_projet!R31C7:R31C84"
ActiveChart.SeriesCollection(1).Values = "=Planning_projet!R126C6:R126C84"
ActiveChart.SeriesCollection(1).Name = "=Planning_projet!R126C4"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Indicator Board"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Project"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveSheet.Shapes("Graphique 335").IncrementLeft -183.75
ActiveSheet.Shapes("Graphique 335").IncrementTop 79.5
ActiveSheet.Shapes("Graphique 335").ScaleHeight 0.88, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes("Graphique 335").ScaleWidth 0.96, msoFalse, _
msoScaleFromTopLeft
 

Spitnolan08

XLDnaute Barbatruc
Re : Gestion des graphes

Bonjour,
Code:
Charts.Add.name= "TrucGam1"
va t'appeler nouveau graph avec le nom TrucGam1
A partir de là tu peux faire plein de choses...

Avec, par exemple une variable public déclarée en tête d'un module standard, tu peux gérer l'incrémentation de tes graphes :
Code:
Public N° as integer

Charts.Add.name= "TrucGam" & N°+1
te nommera chaque nouveau graphe ajouté par cette macro TrucGam1, TrucGam2, ...

Mais je n'ai peut être pas compris la question...

Cordialement
 

Pierrot93

XLDnaute Barbatruc
Re : Gestion des graphes

Bonsoir Gam, Spitnolan:)

une autre solution, si ton graphique est déjà créé sur une feuille de calcul et qu'il n'y en a qu'un seul, utiliser une variable, regarde l'exemple ci dessous, si cela peut t'aider :

Code:
Sub test()
Dim c As ChartObject
Set c = Sheets("Feuil1").ChartObjects(1)
With c.Chart
    .ChartType = xlLineMarkers
    .SetSourceData Source:=Sheets("Indicator Board").Range("X45")
    .SeriesCollection.NewSeries
    .SeriesCollection(1).XValues = "=Planning_projet!R31C7:R31C84"
    .SeriesCollection(1).Values = "=Planning_projet!R126C6:R126C84"
    .SeriesCollection(1).Name = "=Planning_projet!R126C4"
End With
End Sub

bonne soirée
@+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg