Graphique + ajout courbe

Résolu
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006 - 27 mars 2006 à 14:51
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006 - 28 mars 2006 à 09:28
Bonjour à tous,
Je recherche le moyen d'inserer par l'intermédiaire d'une boucle, des courbes avec valeurs,noms et onglet variables.
Ma partie AddNewSeries ne fonctionne pas, il me parle d'objet je sais pas quoi, bref !!!! je bloque A l'aide !!!!!!!!!

Sub tri()
Application.ScreenUpdating = False

ActiveSheet.Name = "Tab_main"

Charts.Add
Worksheets(1).Activate
TotalCol = ActiveSheet.UsedRange.Columns.Count
For TotalCol = TotalCol To 2 Step -1

Sheets.Add
Columns(1).Value = Sheets("Tab_main").Columns(1).Value
Columns(2).Value = Sheets("Tab_main").Columns(TotalCol).Value

Call copi_coll
Call AddNewSeries
Next TotalCol
End Sub
Sub copi_coll()
Selection.AutoFilter Field:=2, Criteria1:="<>"
Range("A1:B1999").Select
Selection.Copy
Range("E1:F1999").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Range("A2000", [B2000].End(xlDown)).Select
Selection.Copy
Range("E:F").SpecialCells(xlCellTypeBlanks).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
Selection.AutoFilter Field:=2
ActiveSheet.Name = [B1]
Columns("A:D").Select
Selection.Delete Shift:=xlToLeft
End Sub

Sub AddNewSeries()
DernierOnglet = ActiveSheet.Name
With ActiveChart.SeriesCollection.NewSeries
.Name = DernierOnglet
.Values = Sheets(DernierOnglet).Range("A1", [A1].End(xlDown))
.XValues = Sheets(DernierOnglet).Range("B1", [B1].End(xlDown))
End With
End Sub

13 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
27 mars 2006 à 15:10
Salut,

Essaie ceci

Sub AddNewSeries()
Dim MonGraph As Chart
Set MonGraph = ActiveWorkbook.Charts.Add
DernierOnglet = ActiveSheet.Name
With ActiveChart.SeriesCollection.NewSeries
.Name = DernierOnglet
.Values = Sheets(DernierOnglet).Range("A1", [A1].End(xlDown))
.XValues = Sheets(DernierOnglet).Range("B1", [B1].End(xlDown))
End With
End Sub

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
3
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006
27 mars 2006 à 15:59
J'ai eu des probèmes au niveau de Range du coup j'ai fais avec une variable. Mais le problème reste sur le type de graphe (nuage de point) et je n'arrive pas à l'avoir que sur un graphe .
Sub AddNewSeries()
DernierOnglet = ActiveSheet.Name

Dim r1 As Range, r2 As Range, MaPlage As Range
Set r1 = Range("A2", [A2].End(xlDown))
Set r2 = Range("B2", [B2].End(xlDown))
Dim MonGraph As Chart
Set MonGraph = ActiveWorkbook.Charts.Add
With MonGraph.SeriesCollection.NewSeries
.Name = DernierOnglet
.Values = Sheets(DernierOnglet).Range("r1")
.XValues = Sheets(DernierOnglet).Range("r2")
End With
End Sub
3
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006
27 mars 2006 à 17:00
ok j'ai réussi pour le type mais j'ai toujour le pb de courbe , car à chaque boucle il me rajoute un nouveau graphique sur un nouveau onglet et moi je voudrai un graphique sur un onglet avec toute les courbes dedans
3
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006
27 mars 2006 à 17:23
ca marche si j'intègre direct dans ma boucle mais quand il attaque la boucle suivante il me dit
Impossible de définir la proprièté XVALUES de la class série
??????????????????????
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006
27 mars 2006 à 17:39
je pense que je sais pas écrire mes variabe r1 et r2 dans le range
3
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006
28 mars 2006 à 09:28
ayé
je donne mon code à qui le voudra, merci pour ton aide.

Code:
Sub tri()

Application.ScreenUpdating = False

ActiveSheet.Name = "Tab_main"
Dim MonGraph As Chart
Dim NouvSerie As Series
Set MonGraph = ActiveWorkbook.Charts.Add
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "toto"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Temps"
End With
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlBottom
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = 0
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
ActiveChart.Legend.Select
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
Selection.Shadow = False
Selection.Interior.ColorIndex = xlAutomatic
MonGraph.SeriesCollection(1).Delete
Worksheets(1).Activate
TotalCol = ActiveSheet.UsedRange.Columns.Count
For TotalCol = TotalCol To 2 Step -1

Sheets.Add
Columns(1).Value = Sheets("Tab_main").Columns(1).Value
Columns(2).Value = Sheets("Tab_main").Columns(TotalCol).Value

Call copi_coll

DernierOnglet = ActiveSheet.Name
ActiveSheet.UsedRange.Select
Dim sel1 As Range, sel2 As Range
Set sel1 = Range("A2", [A2].End(xlDown))
Set sel2 = Range("B2", [B2].End(xlDown))
With ActiveWorkbook.Worksheets(1)
Set NouvSerie = MonGraph.SeriesCollection.NewSeries
NouvSerie.Name = DernierOnglet
NouvSerie.Values = sel2
NouvSerie.XValues = sel1
MonGraph.ChartType = xlXYScatterSmoothNoMarkers
End With

Next TotalCol
End Sub
3
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006
27 mars 2006 à 15:25
Je pense avoir avoir trouver la solution mais je voudrais l'avoir en nuage de point ou lui indiquer ?
Sub AddNewSeries()
DernierOnglet = ActiveSheet.Name
Charts(1).Activate
With ActiveChart.SeriesCollection.NewSeries
.Name = DernierOnglet
.Values = Sheets(DernierOnglet).Range("A:A")
.XValues = Sheets(DernierOnglet).Range("B:B")
End With
End Sub
0
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006
27 mars 2006 à 15:28
Je pense avoir avoir trouver la solution mais je voudrais l'avoir en nuage de point ou lui indiquer ?
Sub AddNewSeries()
DernierOnglet = ActiveSheet.Name
Charts(1).Activate
With ActiveChart.SeriesCollection.NewSeries
.Name = DernierOnglet
.Values = Sheets(DernierOnglet).Range("A:A")
.XValues = Sheets(DernierOnglet).Range("B:B")
End With
End Sub
0
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006
27 mars 2006 à 15:30
Je pense avoir avoir trouver la solution mais je voudrais l'avoir en nuage de point ou lui indiquer ?
Sub AddNewSeries()
DernierOnglet = ActiveSheet.Name
Charts(1).Activate
With ActiveChart.SeriesCollection.NewSeries
.Name = DernierOnglet
.Values = Sheets(DernierOnglet).Range("A:A")
.XValues = Sheets(DernierOnglet).Range("B:B")
End With
End Sub
0
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006
27 mars 2006 à 15:38
Je pense avoir avoir trouver la solution mais je voudrais l'avoir en nuage de point ou lui indiquer ?
Sub AddNewSeries()
DernierOnglet = ActiveSheet.Name
Charts(1).Activate
With ActiveChart.SeriesCollection.NewSeries
.Name = DernierOnglet
.Values = Sheets(DernierOnglet).Range("A:A")
.XValues = Sheets(DernierOnglet).Range("B:B")
End With
End Sub
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
27 mars 2006 à 16:19
Re,

Essaie de voir si ca te va.

ActiveChart.ChartType = xlXYScatter

Note: As tu essayé l'enregistreur de macro, c est bien utile pour trouver comment Excel fait ses opérations.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
27 mars 2006 à 17:06
re,

Et bien mets ceci:

Dim MonGraph As Chart
Set MonGraph = ActiveWorkbook.Charts.Add

Avant d'appeler ta fonction AddNewSeries.
@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
yod6666 Messages postés 37 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 5 avril 2006
27 mars 2006 à 17:16
Il bloque ici : erreur : objet requis
With MonGraph.SeriesCollection.NewSeries

codes :

Sub AddNewSeries()
DernierOnglet = ActiveSheet.Name
Dim r1 As Range, r2 As Range
Set r1 = Range("A2", [A2].End(xlDown))
Set r2 = Range("B2", [B2].End(xlDown))
With MonGraph.SeriesCollection.NewSeries
.Name = DernierOnglet
.Values = Sheets(DernierOnglet).Range("r1")
.XValues = Sheets(DernierOnglet).Range("r2")
MonGraph.ChartType = xlXYScatterSmoothNoMarkers
End With
End Sub
0
Rejoignez-nous