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
| Sub Module1()
Dim Dlig As Long, Dlig2 As Long, v0 As Double, v1 As Double, t0 As Double, t1 As Double
Dim nb_intervalles As Long, dv As Double, dt As Double, i As Long, l As Long
dt = (100 * Sheets("Feuil1").Range("AN3").Value) / 100
Dlig = 3 'cela suppose que la première ligne intéressante dans 'Feuil1' est la 3ème
With Sheets("Feuille_entree")
Dlig2 = .Range("R" & Rows.Count).End(xlUp).Row
For l = 3 To Dlig2 - 1
t0 = .Range("A" & l).Value
t1 = .Range("A" & l + 1).Value
If dt <> 0 Then
nb_intervalles = (t1 - t0) / dt
Else
nb_intervalles = 0
End If
v0 = .Range("B" & l).Value
v1 = .Range("B" & l + 1).Value
If nb_intervalles <> 0 Then _
dv = (v1 - v0) / nb_intervalles
For i = 1 To nb_intervalles
'volL(l) = volL(l+1) : constant
If v0 = v1 Then _
Sheets("Feuil1").Range("B" & Dlig + i).Value = Sheets("Feuil1").Range("B" & Dlig + i - 1).Value
'volL(l)> volL(l+1) : baisse
If v0 > v1 Then _
Sheets("Feuil1").Range("B" & Dlig + i).FormulaLocal = "=B" & (Dlig + i - 1) & "-" & dv
'volL(l)< volL(l+1) : hausse
If v0 < v1 Then _
Sheets("Feuil1").Range("B" & Dlig + i).FormulaLocal = "=B" & (Dlig + i - 1) & "+" & dv
End If
'temps
Sheets("Feuil1").Range("A" & Dlig + i).FormulaLocal = "=A" & (Dlig + i - 1) & "+" & dt
Dlig = Dlig + 1
Next i
Next l
End With
End Sub |
Partager