Graphique sous excel

Y

yanndan

Guest
Bonjour,

Ca fait qualques jours que je cherhce mais jene trouve pas ce que je cherche. Je cherche à faire une macro qui dessine un graphique à partie des données de ma feuille.J'ai une feuille excel avec 5 colonnes. la premiere contient les étiquettes à mettre sur les points, la deuxieme les X de la premiere courbe la troisieme les X de la deuxieme courbe, la quatrieme les Y de lapremier courbe et la 5 les y de la deuxieme courbe.
J'essaie dasn un premier temps de tracer ma cour be mais ma 2 eme colonne parasite le graphique .
Voila le code pour la premiere courbe:

Dim objChart As Chart, objRange As Range, MaSerie As series
Set objChart = ThisWorkbook.charts.Add
objChart.ChartType = xlLineMarkers
objChart.Name = "Graphique"
objChart.HasLegend = True
Set MaSerie = objChart.seriesCollection.NewSeries

MaSerie.Values = "=" & Worksheets("Feuil3").Range("D:D").Columns(1).Address(True, True, xlR1C1, True)
MaSerie.XValues = "=" & Worksheets("Feuil3").Range("B:B").Columns(1).Address(True, True, xR1C1, True)


Je tourne en rond depuis qq jours sur le pb du graphe et ça me saoule...... Je cherche aussi comment affecter aux points les étiquettes que je souhaite

Merci de toute info
Dan
 
Y

yanndan

Guest
Boujour tout le monde ,
j'ai résolu mon problème. Ce qui se passait c'est que suite à une procédure précédente excel selectionnait des cellules en plus et lorsque je lui demandais un dessin, il les prenait en compte.

Je mets ci dessous le code pour aider un autre aqui voudrait faire un nuage de points aussi.
Par ailleurs je cherche aussi comment on change l'axe des abscisses en macro vb sur un chart.

Merci à tout le monde pour vos messages.

' Sert juste à s'assurer qu'il n'y aura pas de parasites dûs à la selection de cellules fait par excel
Worksheets("Feuil3").Activate
Worksheets("Feuil3").Range("Z100").Select

'Création du dessin
'

'Ajout de la feuille graphique
Set objChart = ThisWorkbook.charts.Add

'type nuage de points
objChart.ChartType = xlXYScatter

'nom du graphe
objChart.Name = "Graphique"
objChart.HasLegend = False


Set MaSerie = objChart.seriesCollection.NewSeries
'Je donne une valeurs aux abscisses
MaSerie.XValues = "=" & Worksheets("Feuil3").Range(Worksheets("Feuil3").Cells(2, 2), Worksheets("Feuil3").Cells(38, 2)).Address(True, True, xlR1C1, True)
''Je donne une valeurs aux ordonnées
MaSerie.Values = "=" & Worksheets("Feuil3").Range(Worksheets("Feuil3").Cells(2, 4), Worksheets("Feuil3").Cells(38, 4)).Address(True, True, xlR1C1, True)
'Donne le nom à la série
MaSerie.Name = Worksheets("Feuil3").Range("B1").Value

'Affectation des étiquettes
NombrePoints = objChart.seriesCollection(1).Points.Count
For i = 1 To NombrePoints
With objChart. _
seriesCollection(1).Points(i)
.HasDataLabel = True
.DataLabel.Characters.Text = Worksheets("Feuil3").Range("A" & i + 1)
.DataLabel.Orientation = xlUpward
End With

Next
 

Discussions similaires

Statistiques des forums

Discussions
312 839
Messages
2 092 682
Membres
105 509
dernier inscrit
hamidvba