Graphique + ajout courbe

[Résolu]
Signaler
Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006
-
Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006
-
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

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006

je pense que je sais pas écrire mes variabe r1 et r2 dans le range
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006

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
Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006

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
Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006

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
Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006

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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Messages postés
37
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
5 avril 2006

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