Re : Macros...
re-bonjour,
Voici une macro qui crée les graphique selon ton exemple (chaque graphique est généré sur la feuille en cours.
Sub CreerGraphique()
'
Dim MonGraph As Chart
Dim L, LDeb, LFin, Precedent, Position
Position = 10 ' position du 1ier graphe
Worksheets(NomFeuille).Activate
Worksheets(NomFeuille).ChartObjects.Delete ' supprimer tous les graphes existants
L = 2
While Cells(L, 2) <> ""
'reperer début fin plage
Precedent = Cells(L, 2)
LDeb = L
While Cells(L, 2) = Precedent
L = L + 1
Wend
LFin = L - 1
'
Set Mongraphe = ActiveSheet.ChartObjects.Add(Left:=400, Top:=200, _
Width:=400, Height:=300)
Mongraphe.Name = "G" & Precedent
Mongraphe.Chart.ChartType = xlLineMarkers
Mongraphe.Chart.SeriesCollection.NewSeries
Mongraphe.Chart.SeriesCollection(1).XValues = _
Worksheets("Validation profils en long").Range("E" & LDeb & ":E" & LFin)
Mongraphe.Chart.SeriesCollection(1).Values = _
Worksheets("Validation profils en long").Range("F" & LDeb & ":F" & LFin)
Mongraphe.Chart.SeriesCollection(1).Name = "=""substrat"""
Mongraphe.Chart.SeriesCollection.NewSeries
Mongraphe.Chart.SeriesCollection(2).Values = _
Worksheets("Validation profils en long").Range("G" & LDeb & ":G" & LFin)
Mongraphe.Chart.SeriesCollection(2).Name = "=""ligne d'eau"""
Mongraphe.Chart.HasTitle = True
Mongraphe.Chart.ChartTitle.Text = Precedent
p = ActiveSheet.ChartObjects.Count
With Worksheets("Validation profils en long").ChartObjects(p)
.Left = 700
.Top = Position
Position = Position + .Height + 10
End With
Wend
End Sub
Ajout :
tu peux aussi positionner les graphes par rapport à une colonne et une ligne
Worksheets(NomFeuille).ChartObjects(p).Left = Worksheets(NomFeuille).Columns("j").Left
Worksheets(NomFeuille).ChartObjects(p).Top = Worksheets(NomFeuille).Rows(LDeb).Top
GIBI