Verzwickte Sortierfunktion gesucht (VBA)

Tach’chen.

Vielleicht kann jemand bei einer verzwickten Sortierung helfen:

 A B C 
1 xy def
2 10:00 20:00
3 12:00 22:00

4 za ghi
5 14:00 8:00
6 18:00 12:00

7 bcd ... ..
8 7:00 .. .
9 9:00 .
--------------------------------
10 fkke
11 8:00
12 20:00

13 ...
14 ..
15

Pro Spalte gehören jeweils drei Zeilen zusammen (z.B. A1, A2, A3). Also ein Textbaustein und zwei Uhrzeiten. Wiederum jeweils drei dieser Gruppen bilden eine Obergruppe (z.B. A1 bis A9, B1 bis B9, A10 bis A18).Ich würde nun gerne eine Sortierung einrichten (wohl nur über VBA möglich), die innerhalb einer Obergruppe (A1 bis A9) die drei Gruppen nach der ersten Uhrzeit sortiert.

Beispielergebnis:

A B
1 bcd
2 7:00
3 9:00

4 xy
5 10:00
6 12:00

7 za
8 14:00
9 18:00

10 fkke

Jede Obergruppe soll sortiert werden, jedoch ohne Beeinflussung der Nachbargruppen. Das ganze soll für eine ziemlich große Tabelle geschehen. Weiß jemand Rat?

Vielen Dank mi Vorraus
TTR

Kann es Sein das du nur nach der Anfangszeit sortierst

wenn ja dann hab ich da was getüfftelt

Sub kopierinblatt()
' Zeit und Index nach DataSorter kopieren
Dim zaehler
zaehler = 1
For i = 2 To 8 Step 3
Sheets("DataSorter").Cells(zaehler, 1).Value = i
Sheets("DataSorter").Cells(zaehler, 2).Value = Sheets("Data").Cells(i, 1).Value
zaehler = zaehler + 1
Next

' Sortieren von Index und Zeit nach Zeit in DataSorter
 Sheets("DataSorter").Select
 Columns("A:B").Select
 Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, \_
 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, \_
 DataOption1:=xlSortNormal

' Zurückschreiben der Werte

Dim position
position = 0
Dim schreiben
schreiben = 1
For i = 1 To zaehler - 1 Step 1
position = Sheets("DataSorter").Cells(i, 1).Value
Sheets("DataErgebniss").Cells(schreiben, 1) = Sheets("Data").Cells(position - 1, 1)
Sheets("DataErgebniss").Cells(schreiben + 1, 1) = Sheets("Data").Cells(position, 1)
Sheets("DataErgebniss").Cells(schreiben + 2, 1) = Sheets("Data").Cells(position + 1, 1)
schreiben = schreiben + 3
Next


End Sub

In DataErgebniss muss lediglich die Felder wieder in Zeit Formatieren :smile:

hoffe es hilft

Das Beispiel sucht nur bis zur 8 Zeile

For i = 2 To 8 Step 3

wenn mehr dann aus der 8 deine Letzte Zeile wo Eintrag ist.

Es gibt 3 Blätter
1 Blatt „Data“ mit deinen Daten
2 Blatt „DataSorter“
3 Blatt „DataErgebniss“

also bitte die blätter bennenen :smile: