Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Blöcke nach Datum sortieren

Blöcke nach Datum sortieren
04.03.2016 09:17:06
Joachim
Hallo,
ich hab auf einer Tabelle mehrere Blöcke, max. 3 nebeneinander und beliebig viele untereinander. Nun sollen die Blöcke nach dem Datum (in D5, O5, Z5, usw.) aufsteigend sortiert werden. Es kann am Ende einen Block geben, der kein Datum enthält. Dieser soll weiterhin am Ende stehen.
In den Blöcken gibt es verbundene Zellen, wenn das Probleme macht, nehme ich die wieder raus.
Danke für eure Hilfe
Gruß
Joachim
https://www.herber.de/bbs/user/104087.xlsx

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blöcke nach Datum sortieren
04.03.2016 10:03:10
Michael
Hallo Joachim,
ganz naiv gefragt: Alle'Blöcke'sind durch Leerzeilen getrennt, kann man da nicht einfach den Cursor z.B. auf I7 stellen und die xl-Sortierfunktion'nutzen? Es ist auch möglich'mit'dem'Makro-Rekorder'einmal'das Sortiern für'alle Blöcke aufzuzeichnen.
Mfg

AW: Blöcke nach Datum sortieren
04.03.2016 10:12:09
Joachim
Hallo Michael,
es soll nicht innerhalb der Blöcke sortiert werden, sondern die ganzen Blöcke nach Datum in D5, O5, Z5 usw.
MfG

Anzeige
AW: Blöcke nach Datum sortieren
04.03.2016 10:44:20
Daniel
Hi
probier mal folgendes.
die Verbundzellen darfst du behalten, da der Code nicht sortiert, sondern in der richtigen Reihenfolge kopiert.
Die Grösse und den Abstand der Karten muss konstant sein und du musst diese im Kopf des Makros angeben.
Sub BlockSort()
Const KarteSpalten As Long = 10
Const KarteZeilen As Long = 21
Const AbstandSpalten  As Long = 11
Const AbstandZeilen As Long = 22
Const AnzahlSpalten As Long = 3
Const StartSpalte = 2
Const StartZeile = 2
Dim Blöcke As Range
Dim Zelle As Range
Dim shAkt As Worksheet
Dim shZW As Worksheet
Dim x As Long
Dim Zeile As Long
Dim Spalte As Long
Set shAkt = ActiveSheet
Set shZW = Sheets.Add(after:=shAkt)
With shAkt
.Cells.Replace "Kunde", True, xlWhole
Set Blöcke = .Cells.SpecialCells(xlCellTypeConstants, 4)
.Cells.Replace True, "Kunde"
End With
Zeile = 1
For Each Zelle In Blöcke
Zelle.Offset(-1, 0).Resize(KarteZeilen, KarteSpalten).Copy
shZW.Cells(Zeile, 3).PasteSpecial xlPasteAll
shZW.Cells(Zeile, 2).FormulaR1C1 = "=IF(R[3]C[3]="""",99999,R[3]C[3])+row()/10000"
shZW.Cells(Zeile, 1).FormulaR1C1 = "=RANK(RC2,C2,1)"
Zeile = Zeile + AbstandZeilen
Next
For x = 1 To WorksheetFunction.Max(shZW.Columns(1))
Zeile = StartZeile + Int((x - 1) / AnzahlSpalten) * AbstandZeilen
Spalte = StartSpalte + ((x - 1) Mod AnzahlSpalten) * AbstandSpalten
shZW.Columns(1).Find(what:=x, lookat:=xlWhole, LookIn:=xlValues).Offset(0, 2).Resize( _
KarteZeilen, KarteSpalten).Copy
shAkt.Cells(Zeile, Spalte).PasteSpecial xlPasteAll
Next
Application.DisplayAlerts = False
shZW.Delete
Application.DisplayAlerts = True
End Sub
getestet mit deiner Beispieldatei
gruß Daniel

Anzeige
AW: Blöcke nach Datum sortieren
04.03.2016 12:24:56
Joachim
Hallo Daniel,
funktioniert super!!
Auch wenn am Ende 2 leere Blöcke stehen.
Vielen Dank und schönes Wochenende
Joachim
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige