1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| Sub GraphiqueSpecial()
Dim NomY As String, NomZ As String
Dim LastLig As Long, i As Long
Dim M As Double, N As Double
Dim Grf As ChartObject
Dim X, Y, Z
Application.ScreenUpdating = False
With Feuil1
LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
With .Range("A8:A" & LastLig)
X = .Value
Y = .Offset(0, 1).Value
NomY = .Offset(-1, 1)(1, 1)
N = Application.Max(Abs(Application.Min(.Offset(0, 1))), Application.Max(.Offset(0, 1)))
Z = .Offset(0, 2).Value
NomZ = .Offset(-1, 2)(1, 1)
M = Application.Max(.Offset(0, 2))
End With
Set Grf = .ChartObjects.Add(200, 100, 500, 300)
End With
For i = 1 To UBound(Z, 1)
If Z(i, 1) < 0 Then Z(i, 1) = -1 - M
Next i
With Grf.Chart
.ChartType = xlLineMarkers
With .SeriesCollection.NewSeries
.Name = NomY
.XValues = X
.Values = Y
.Format.Line.Visible = msoFalse
.MarkerSize = 8
.MarkerStyle = 2
End With
With .Axes(xlValue, xlPrimary)
.MinimumScale = -1 * N
.MaximumScale = N
End With
With .SeriesCollection.NewSeries
.Name = NomZ
.Values = Z
.Format.Line.Visible = msoFalse
.MarkerSize = 8
.MarkerStyle = 2
.AxisGroup = 2
End With
With .Axes(xlValue, xlSecondary)
.MinimumScale = -1 * M
.MaximumScale = M
.TickLabels.NumberFormat = "[>=0]#,##0;"""""
End With
End With
Set Grf = Nothing
End Sub |
Partager