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
| Private Sub CommandButton1_Click()
Dim fct As String
Dim Xmin As Double, Xmax As Double, Pas As Double, i As Double, Nb As Long, j As Double
Dim tb() As Double
With Sheets("Feuil3")
fct = "=" & .Range("B1") 'en B1 la fonction en fonction de x
Xmin = .Range("B2") 'en B2 la valeur de Xmin
Xmax = .Range("B3") 'en B3 la valeur Xmax
Pas = .Range("B4") 'en B4 le pas
Nb = Int((Xmax - Xmin) / Pas) + 1
ReDim tb(1 To 2, 1 To Nb)
For i = Xmin To Xmax Step Pas
j = j + 1
tb(1, j) = i
On Error Resume Next
tb(2, j) = Evaluate(Replace(fct, "x", i))
On Error GoTo 0
Next i
.Columns("G:H").ClearContents
.Range("G1") = "x": .Range("H1") = "f(x)"
.Range("G2:H" & Nb + 1) = Application.Transpose(tb)
Charts.Add
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SetSourceData Source:=.Range("G1:H" & Nb + 1)
ActiveChart.Location Where:=xlLocationAsObject, Name:=.Name
ActiveChart.Legend.Delete
With ActiveChart.Axes(xlCategory)
.MinimumScale = Xmin
.MaximumScale = Xmax
.MinorUnit = Pas
End With
End With
End Sub |
Partager