Graphique à partir d'une plage de données variable

Signaler
Messages postés
2
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
29 juillet 2005
-
Messages postés
133
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
8 juin 2012
-
bonjour,

je souhaite créer un graphique en utilisant une plage de données qui peut varier. J'effectue donc une recherche des colonnes à sélectionner suivant les critères que je recherche, puis je regarde combien il y a de lignes, sachant qu'il y a le même nombre de lignes dans chaque colonne.
Le problème survient lorsque je crée le graphique... au début j'utilisais setSourceData Source := maPlage ... mais il y avait un message d'erreur me disant quelque chose comme "la methode cells échoue... de l'objet global"...
maintenat le message d'erreur est " propriété ou methode non geree par cet objet. L'erreur est a la ligne :
MaSerie.Values = "=" & Worksheets("Feuil1").objRange

c est surement lié à ma facon de selectionner...
je suis débutant et ne connais pas encore toutes les ruses de VBA... merci de m'aider!

Le but: un graphique en points avec colonne P en abscisse et colonneA en ordonnées...

merci!

Alexandre

Sub DoGraph()
'

'


'Variable stockant le graphique
Dim objChart As Chart
'Variable stockant la plage de cellules du graphique
Dim objRange As Range, MaSerie As Series
Dim i As Integer
Dim j As Integer
j = 1
While Cells(2, j).Value <> ""
Cells(2, j).Value = CStr(Cells(2, j).Value)
j = j + 1
Wend


While Cells(2, j).Value <> "P"
j = j + 1
Wend
colonneP = j
j = 1
While Cells(2, j).Value <> "A"
j = j + 1
Wend
colonneA = j


i = 2
While Not IsNumeric(Cells(i, colonneP).Value) Or Cells(i, colonneP).Value = ""
i = i + 1
Wend
premiereLigne = i


While Cells(i, colonneP).Value <> ""
i = i + 1
Wend
derniereLigne = i - 1


For j = colonneP To colonneA
For i = premiereLigne To derniereLigne
Cells(i, j).Value = CDbl(Cells(i, j).Value)
Next i
Next j

Set objRange = Range(Cells(premiereLigne, colonneP), Cells(derniereLigne, colonneA))
Set objChart = Charts.Add
objChart.ChartType = xlXYScatter
Set MaSerie = objChart.SeriesCollection.NewSeries
MaSerie.Values = "=" & Worksheets("Feuil1").objRange


ActiveChart.Location Where:=xlLocationAsNewSheet

1 réponse

Messages postés
133
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
8 juin 2012
4
Bonjour.

J'ai supposé tes données en colonne débutant en ligne 3.
La ligne 2 comportant les intitulés recherchés "P" et "A".

ctac

Sub DoGraph()
Dim I&, J&, K&, ObjChart As Chart, _
MaSerie As Series, WS As Worksheet
Set WS = ActiveSheet
I = Range("A2").EntireRow.Find("P", , xlValues).Column
J = Cells(2, I).End(xlDown).Row
K = Cells(2, I).EntireRow.Find("A", , xlValues).Column
Set ObjChart = Charts.Add
ObjChart.ChartType = xlXYScatter
Set MaSerie = ObjChart.SeriesCollection.NewSeries
MaSerie.XValues = WS.Range(WS.Cells(3, I), WS.Cells(J, I))
MaSerie.Values = WS.Range(WS.Cells(3, K), WS.Cells(J, K))
Set MaSerie = Nothing
Set ObjChart = Nothing
Set WS = Nothing
End Sub