In diesem Fall müsste die Ausgabe dann so aussehen:
Zyklus 1 |
Zyklus 2 |
Zyklus 3 |
Zyklus 4 |
Zyklus 5 |
0,2 |
90,27 |
0,26 |
90,27 |
0,54 |
10,04 |
80,15 |
10,04 |
80,44 |
10,04 |
20,03 |
70,49 |
20,05 |
70,39 |
20,05 |
30,13 |
60,23 |
30,13 |
60,26 |
30,1 |
40,19 |
50,16 |
40,12 |
50,13 |
40,12 |
50,06 |
40,12 |
50,13 |
40,19 |
50,16 |
60,16 |
30,01 |
60,13 |
30,04 |
60,19 |
70,16 |
20,03 |
70,13 |
20,06 |
70,33 |
80,28 |
10,04 |
80,25 |
10,06 |
80,18 |
90,27 |
0,47 |
90,27 |
0,54 |
90,36 |
|
0,26 |
|
|
|
Option Explicit
Public Sub Beispiel()
Dim colZ As VBA.Collection
Dim rngList As Excel.Range
Dim i As Long, j As Long
Dim t As Boolean
Set colZ = New VBA.Collection
With Worksheets("Tabelle1") '<-- ggf. anpassen
Set rngList = .Range(.Range("S1"), .Range("S1").End(xlDown))
j = 1
t = rngList(1) <= rngList(2)
For i = 1 To rngList.Count - 1
If t Xor rngList(i) <= rngList(i + 1) Then
Call colZ.Add(.Range(rngList(j), rngList(i)))
t = Not t
j = i
End If
Next
'Ausgabe: Beispiel
For i = 1 To colZ.Count
'ab Zelle U1 nebeneinander
.Range("U1").Offset(, i - 1).Value = "Zyklus " & i
.Range("U2").Offset(, i - 1).Resize(colZ(i).Rows.Count).Value = colZ(i).Value
Next
End With
End Sub
|