demonsares
XLDnaute Junior
Bonjour à toutes et à tous, Bonjour le Forum,
Je me permet de venir poster ici mon problème après de grosses recherches.
J'ai trouvé beaucoup de réponses, j'ai essayé de les adapter à mon problème, mais à chaque fois c'est l'échec...
Problématique : Je dois créer un nombre de graphique correspondant au nombre de colonne à partir de la colonne F, soit la colonne 5. Dans mon fichier ci-joint, j'ai donc 5 colonnes, soit 5 graphiques à créer et donc le graphique 1 ira dans l'onglet Graphique 1, le graphique 2 dans l'onglet Graphique 2 etc...
Mes recherches : Actuellement j'ai plusieurs bouts de codes... C'est vraiment le "bordel", j'en ai cherché de partout et comme cité ci-dessus, je n'ai pas réussit :
'Nbr_palier = InputBox("Rentrer le nombre de palier d'étalonnage :")
NumCol = 5
NumLig = 6208
Worksheets("Graphique").Visible = 1
For i = 1 To NumCol
Sheets("Graphique").Select
With ActiveWorkbook.ActiveSheet
.Copy After:=Worksheets("Graphique")
End With
ActiveSheet.Name = ("Graphique " & i)
s = Sheets.Count - 1
For b = 1 To s
Sheets("Graphique " & i).Select
Sheets("Graphique " & i).Move After:=Sheets(b)
Next b
Next i
Dim NoCol As Integer
Dim NoCol2 As Integer
Dim Plage As Variant
Dim Plage2 As Variant
Dim Adresse As Variant
NoCol = counter + 1
NoCol2 = counter + 135
Adresse = Cells(2, NoCol).Address & ":" & Cells(1 + nbdonne, NoCol2).Address ' peut importe ne sert qu'à créer le graph
Plage = "=sheet2!" & Cells(2, NoCol).Address(ReferenceStyle:=xlR1C1) & ":" & Cells(1 + nbdonne, NoCol).Address(ReferenceStyle:=xlR1C1)
Plage2 = "=sheet2!" & Cells(2, NoCol2).Address(ReferenceStyle:=xlR1C1) & ":" & Cells(1 + nbdonne, NoCol2).Address(ReferenceStyle:=xlR1C1)
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets("sheet2").Range(Adresse), PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).XValues = Plage
ActiveChart.Location Where:=xlLocationAsObject, Name:=sheetname
ActiveWindow.Visible = False
ActiveChart.SeriesCollection(1).XValues = Plage
ActiveChart.SeriesCollection(1).Values = Plage2
'For i = 1 To NumCol
' Sheets("Graphique " & i).Select
' Range(Cells(2, NumCol + i), Cells(NumLig, NumCol + i)).Select
' ActiveSheet.Shapes.AddChart.Select
' ActiveChart.ChartType = xlXYScatter
' ActiveChart.SetSourceData Source:=Sheets("Analyse des données").Range(Cells(2, NumCol + i), Cells(NumLig, NumCol + i), Cells(2, 5), Cells(NumLig, 5))
' With ActiveChart
' .HasTitle = False
' .Axes(xlCategory, xlPrimary).HasTitle = False
' .Axes(xlValue, xlPrimary).HasTitle = False
' End With
'Next i
'Sheets("Analyse des données").Select
'Range(Cells(2, NumCol), Cells(NumLig, NumCol + i)).Select
'ActiveSheet.Shapes.AddChart.Select
'ActiveChart.ChartType = xlXYScatter
'ActiveChart.SetSourceData Source:=Sheets("Analyse des données").Range(Cells(2, NumCol), Cells(NumLig, NumCol + i))
'NbGraph = Sheets("Analyse des données").ChartObjects.Count
'Sheets("Analyse des données").ChartObjects(NbGraph).Activate
'ActiveChart.Parent.Cut
'Sheets("Graphique " & i & "").Select
'Range("A4").Select
'ActiveSheet.Paste
'Sheets("Analyse des données").Select
'Minimum = Cells(b, 2).Value
'Maximum = Cells(C, 2).Value
'NbGraph = Sheets("Graphique " & i & "").ChartObjects.Count
'Sheets("Graphique " & i & "").ChartObjects(NbGraph).Activate
' ActiveChart.Axes(xlValue).Select
' ActiveChart.Axes(xlValue).MinimumScale = Minimum - 5
' ActiveChart.Axes(xlValue).MaximumScale = Maximum + 5
'Next i
'Sheets("Analyse des données").Select
'd = 6
'For i = 1 To NumCol
'NbGraph = Sheets("Graphique " & i & "").ChartObjects.Count
'Sheets("Graphique " & i & "").ChartObjects(NbGraph).Activate
'Next i
'NumCol = 10 - 5
'NumLig = 6208
'Worksheets("Graphique").Visible = 1
'For Z = 1 To NumCol
'Sheets("Graphique").Select
' With ActiveWorkbook.ActiveSheet
' .Copy After:=Worksheets("Graphique")
' End With
'ActiveSheet.Name = ("Graphique " & Z)
's = Sheets.Count - 1
'For i = 1 To s
'Sheets("Graphique " & Z).Select
'Sheets("Graphique " & Z).Move After:=Sheets(i)
'Next i
'Range(Cells(2, Z + 5), Cells(NumLig, Z + 5)).Select
'ActiveSheet.Shapes.AddChart.Select
'ActiveChart.ChartType = xlXYScatter
'ActiveChart.SetSourceData Source:=Sheets("Analyse des données").Range(Cells(2, Z + 5), Cells(NumLig, Z + 5))
'NbGraph = Sheets("Analyse des données").ChartObjects.Count
'Sheets("Analyse des données").ChartObjects(NbGraph).Activate
'ActiveChart.Parent.Cut
'Sheets("Graphique " & Z & "").Select
'Range("A4").Select
'ActiveSheet.Paste
'ActiveSheet.Shapes.AddChart.Select
'ActiveChart.ChartType = xlXYScatterSmooth
'ActiveChart.SeriesCollection.NewSeries
'ActiveChart.SeriesCollection(1).Name = "='Analyse des données'!$F$1"
'ActiveChart.SeriesCollection(1).XValues = "='Analyse des données'!$E$2:$E$6208"
'ActiveChart.SeriesCollection(1).Values = "='Analyse des données'!$F$2:$F$6208"
'Next Z
'Sheets.Add After:=Sheets(Sheets.Count)
'Sheets(Sheets.Count).Name = "Données ciblées"
'Range("A1").Select
End Sub
Si vous êtes arrivés ici et que vous n'avez pas tout lu concernant mes recherches, c'est tout à fait normal.
Je vais redéfinir le concept.
J'ai un tableau de colonne variable et de ligne variable. Actuellement dans mon cas j'ai 6208 lignes et 10 colonnes. Dans ce tableau seul les colonnes ayant des valeurs numériques (°C) m'intéresse. J'en ai donc 5 ! Mais ce nombre peu à l'avenir changer. Pour cela j'ai mis une variable NumCol qui compte le nombre de colonnes et je fais NumCol = NumCol - 5 (en effet les 5 premières colonnes ne me servent à rien).
Les lignes seront aussi variables.
Il faut créer un graphique capable de se tracer en fonction d'un nombre de lignes variables et qu'il y en ai autant que de colonnes.
Je me permet de venir poster ici mon problème après de grosses recherches.
J'ai trouvé beaucoup de réponses, j'ai essayé de les adapter à mon problème, mais à chaque fois c'est l'échec...
Problématique : Je dois créer un nombre de graphique correspondant au nombre de colonne à partir de la colonne F, soit la colonne 5. Dans mon fichier ci-joint, j'ai donc 5 colonnes, soit 5 graphiques à créer et donc le graphique 1 ira dans l'onglet Graphique 1, le graphique 2 dans l'onglet Graphique 2 etc...
Mes recherches : Actuellement j'ai plusieurs bouts de codes... C'est vraiment le "bordel", j'en ai cherché de partout et comme cité ci-dessus, je n'ai pas réussit :
'Nbr_palier = InputBox("Rentrer le nombre de palier d'étalonnage :")
NumCol = 5
NumLig = 6208
Worksheets("Graphique").Visible = 1
For i = 1 To NumCol
Sheets("Graphique").Select
With ActiveWorkbook.ActiveSheet
.Copy After:=Worksheets("Graphique")
End With
ActiveSheet.Name = ("Graphique " & i)
s = Sheets.Count - 1
For b = 1 To s
Sheets("Graphique " & i).Select
Sheets("Graphique " & i).Move After:=Sheets(b)
Next b
Next i
Dim NoCol As Integer
Dim NoCol2 As Integer
Dim Plage As Variant
Dim Plage2 As Variant
Dim Adresse As Variant
NoCol = counter + 1
NoCol2 = counter + 135
Adresse = Cells(2, NoCol).Address & ":" & Cells(1 + nbdonne, NoCol2).Address ' peut importe ne sert qu'à créer le graph
Plage = "=sheet2!" & Cells(2, NoCol).Address(ReferenceStyle:=xlR1C1) & ":" & Cells(1 + nbdonne, NoCol).Address(ReferenceStyle:=xlR1C1)
Plage2 = "=sheet2!" & Cells(2, NoCol2).Address(ReferenceStyle:=xlR1C1) & ":" & Cells(1 + nbdonne, NoCol2).Address(ReferenceStyle:=xlR1C1)
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets("sheet2").Range(Adresse), PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).XValues = Plage
ActiveChart.Location Where:=xlLocationAsObject, Name:=sheetname
ActiveWindow.Visible = False
ActiveChart.SeriesCollection(1).XValues = Plage
ActiveChart.SeriesCollection(1).Values = Plage2
'For i = 1 To NumCol
' Sheets("Graphique " & i).Select
' Range(Cells(2, NumCol + i), Cells(NumLig, NumCol + i)).Select
' ActiveSheet.Shapes.AddChart.Select
' ActiveChart.ChartType = xlXYScatter
' ActiveChart.SetSourceData Source:=Sheets("Analyse des données").Range(Cells(2, NumCol + i), Cells(NumLig, NumCol + i), Cells(2, 5), Cells(NumLig, 5))
' With ActiveChart
' .HasTitle = False
' .Axes(xlCategory, xlPrimary).HasTitle = False
' .Axes(xlValue, xlPrimary).HasTitle = False
' End With
'Next i
'Sheets("Analyse des données").Select
'Range(Cells(2, NumCol), Cells(NumLig, NumCol + i)).Select
'ActiveSheet.Shapes.AddChart.Select
'ActiveChart.ChartType = xlXYScatter
'ActiveChart.SetSourceData Source:=Sheets("Analyse des données").Range(Cells(2, NumCol), Cells(NumLig, NumCol + i))
'NbGraph = Sheets("Analyse des données").ChartObjects.Count
'Sheets("Analyse des données").ChartObjects(NbGraph).Activate
'ActiveChart.Parent.Cut
'Sheets("Graphique " & i & "").Select
'Range("A4").Select
'ActiveSheet.Paste
'Sheets("Analyse des données").Select
'Minimum = Cells(b, 2).Value
'Maximum = Cells(C, 2).Value
'NbGraph = Sheets("Graphique " & i & "").ChartObjects.Count
'Sheets("Graphique " & i & "").ChartObjects(NbGraph).Activate
' ActiveChart.Axes(xlValue).Select
' ActiveChart.Axes(xlValue).MinimumScale = Minimum - 5
' ActiveChart.Axes(xlValue).MaximumScale = Maximum + 5
'Next i
'Sheets("Analyse des données").Select
'd = 6
'For i = 1 To NumCol
'NbGraph = Sheets("Graphique " & i & "").ChartObjects.Count
'Sheets("Graphique " & i & "").ChartObjects(NbGraph).Activate
'Next i
'NumCol = 10 - 5
'NumLig = 6208
'Worksheets("Graphique").Visible = 1
'For Z = 1 To NumCol
'Sheets("Graphique").Select
' With ActiveWorkbook.ActiveSheet
' .Copy After:=Worksheets("Graphique")
' End With
'ActiveSheet.Name = ("Graphique " & Z)
's = Sheets.Count - 1
'For i = 1 To s
'Sheets("Graphique " & Z).Select
'Sheets("Graphique " & Z).Move After:=Sheets(i)
'Next i
'Range(Cells(2, Z + 5), Cells(NumLig, Z + 5)).Select
'ActiveSheet.Shapes.AddChart.Select
'ActiveChart.ChartType = xlXYScatter
'ActiveChart.SetSourceData Source:=Sheets("Analyse des données").Range(Cells(2, Z + 5), Cells(NumLig, Z + 5))
'NbGraph = Sheets("Analyse des données").ChartObjects.Count
'Sheets("Analyse des données").ChartObjects(NbGraph).Activate
'ActiveChart.Parent.Cut
'Sheets("Graphique " & Z & "").Select
'Range("A4").Select
'ActiveSheet.Paste
'ActiveSheet.Shapes.AddChart.Select
'ActiveChart.ChartType = xlXYScatterSmooth
'ActiveChart.SeriesCollection.NewSeries
'ActiveChart.SeriesCollection(1).Name = "='Analyse des données'!$F$1"
'ActiveChart.SeriesCollection(1).XValues = "='Analyse des données'!$E$2:$E$6208"
'ActiveChart.SeriesCollection(1).Values = "='Analyse des données'!$F$2:$F$6208"
'Next Z
'Sheets.Add After:=Sheets(Sheets.Count)
'Sheets(Sheets.Count).Name = "Données ciblées"
'Range("A1").Select
End Sub
Si vous êtes arrivés ici et que vous n'avez pas tout lu concernant mes recherches, c'est tout à fait normal.
Je vais redéfinir le concept.
J'ai un tableau de colonne variable et de ligne variable. Actuellement dans mon cas j'ai 6208 lignes et 10 colonnes. Dans ce tableau seul les colonnes ayant des valeurs numériques (°C) m'intéresse. J'en ai donc 5 ! Mais ce nombre peu à l'avenir changer. Pour cela j'ai mis une variable NumCol qui compte le nombre de colonnes et je fais NumCol = NumCol - 5 (en effet les 5 premières colonnes ne me servent à rien).
Les lignes seront aussi variables.
Il faut créer un graphique capable de se tracer en fonction d'un nombre de lignes variables et qu'il y en ai autant que de colonnes.