VBA macro graphique

Cloud

XLDnaute Nouveau
Bonjour,

je viens vers vous parce que je n'arrive pas à faire ce que je veux !
Je m'explique je veux faire un graphique "nuage de points" d'un ensemble de données.
Pour l'instant tout va bien.
J'arrive à faire le graphique sur une nouvelle feuille mais j'aimerais le faire sur la feuille active...
Voici mon code :

Code:
Sub gra()

'tracer le graphique
Set gr = Workbooks("Mesure.xlsx").Sheets("Marne").ChartObjects.Add(140, 10, 500, 300)
With gr
Set XValues = Range("D4:D10")
Set Values = Range("L4:L10")
[COLOR="#B22222"].SetSourceData Source:=Sheets("Marne").Range("D4:D10,L4:L10"), PlotBy:=xlColumns[/COLOR]
.ChartType = xlXYScatter
ActiveChart.SeriesCollection(1).XValues = XValues
ActiveChart.SeriesCollection(1).Values = Values
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "pk (km)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = " Chla (µg/l)"
.PlotArea.Interior.ColorIndex = 2
.Axes(xlValue).MajorGridlines.Border.LineStyle = xlDot
.ChartArea.Font.Size = 14
.Deselect
 End With
Application.ScreenUpdating = True

Application.DisplayAlerts = False
ActiveChart.SeriesCollection(2).Delete
gr.Delete
Application.DisplayAlerts = True
End Sub

ca bloque la ou c'est en rouge ...

Merci d'avance !
 
Dernière édition:

Hulk

XLDnaute Barbatruc
Re : VBA macro graphique

Slt Cloud, Forum :),

Essaie comme ceci..
Code:
Sub gr()
    
    Dim gr
    
    'tracer le graphique
    Set gr = Workbooks("Mesure.xlsm").Sheets("Marne").ChartObjects.Add(140, 10, 500, 300)
    
    With gr
        'Set XValues = Range("D4:D10")
        'Set YValues = Range("L4:L10") 'Renommé "YValues"
        gr.Chart.SetSourceData Source:=Sheets("Marne").Range("D4:D10", "L4:L10"), PlotBy:=xlColumns
        gr.Chart.ChartType = xlXYScatter
        'gr.Chart.SeriesCollection(1).Values = XValues
        'gr.Chart.SeriesCollection(9).Values = YValues
        gr.Chart.Axes(xlCategory, xlPrimary).HasTitle = True
        gr.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "pk (km)"
        gr.Chart.Axes(xlValue, xlPrimary).HasTitle = True
        gr.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = " Chla (µg/l)"
        gr.Chart.PlotArea.Interior.ColorIndex = 2
        gr.Chart.Axes(xlValue).MajorGridlines.Border.LineStyle = xlDot
        gr.Chart.ChartArea.Font.Size = 14
        gr.Chart.Deselect
    End With

    Application.ScreenUpdating = True
    Application.DisplayAlerts = False
    'gr.Chart.SeriesCollection(2).Delete
    'gr.Delete
    Application.DisplayAlerts = True

End Sub
Il fallait mettre gr.Chart en début de ligne.

Essaie avec les sets XValues et YValues et les Series.Collection pour voir...
 

Cloud

XLDnaute Nouveau
Re : VBA macro graphique

Merci de la réponse.
Alors le graphe est sur la bonne feuille mais maintenant ça me met 9 séries au lieu de deux (idéalement j'en voudrai qu'une ^^ L en fonction de D)

Edit : alors le fait qu'il y ait 9 séries je crois que ça vient du
Range("D4:D10", "L4:L10")
au lieu du
Range("D4:D10, L4:L10")

Mais le deuxième cas renvoie une erreur...
Dans le premier cas c'est pareil que si l'on ecrit
Range("D4:L10") non ?
 
Dernière édition:

Cloud

XLDnaute Nouveau
Re : VBA macro graphique

voici le code qui fonctionne en partie comme je le veux
Code:
Sub gra()
    Set XValues = Range("D4:D10")
    Dim gr
    'tracer le graphique
    Set gr = Workbooks("Mesure.xlsx").Sheets("Marne").ChartObjects.Add(10, 310, 350, 220)
    With gr
        gr.Chart.SetSourceData Source:=Sheets("Marne").Range("L4:L10"), PlotBy:=xlColumns
        gr.Chart.ChartType = xlXYScatter
        gr.Chart.Axes(xlCategory, xlPrimary).HasTitle = True
        gr.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "pk (km)"
        gr.Chart.Axes(xlValue, xlPrimary).HasTitle = True
        gr.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = " Chla (µg/l)"
        gr.Chart.PlotArea.Interior.ColorIndex = 2
        gr.Chart.Axes(xlValue).MajorGridlines.Border.LineStyle = xlDot
        gr.Chart.ChartArea.Font.Size = 14
        gr.Chart.Deselect
    End With
End Sub

le soucis est qu'il ne met met pas l'axe des X comme je le souhaite... moi ca va de 0 à 180 (km en l'occurence) et ca ne me met que de 1 à 7 (parce que 7 valeurs...)
 

Discussions similaires

Réponses
1
Affichages
172
Réponses
0
Affichages
155

Statistiques des forums

Discussions
312 310
Messages
2 087 130
Membres
103 480
dernier inscrit
etaniere