Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1660to1664
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Blöcke nach Datum sortieren

Blöcke nach Datum sortieren
04.12.2018 09:50:47
andreas
Hallo!
Ich bin mittels Google Suche auf einen Beitrag hier aus 2016 gestossen, "Blöcke nach Datum sortieren".
Nun glaube ich, dass das in diesem Beitrag angesprochene Problem meinem sehr nahe kommt.
Ich habe eine Liste mit "Blöcken"(verbundene Zellen), orange hervorgehoben eine Zelle, in der ein Datum steht.
Nun soll der gesamte "Block" nach diesem Datum aufwärts(älteres oben, Zukunft unten...) sortiert werden.
Wenn man die Datei sieht, ist glaube ich, alles klar.
Wollte meine Feundin unterstützen, aber mein eingerostetes HTML,PHP,Javascript,CSS und ActionScript bringt da nix.. :-)
Hier die Datei:
https://www.herber.de/bbs/user/125863.xlsm
Liebe Grüße aus Wien,
Andreas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blöcke nach Datum sortieren
04.12.2018 10:54:35
Daniel
Hi
nicht so ganz einfach.
zum sortieren bräuchtest du das Datum in einer Spalte in allen Zellen des Blockes, da Excel nur zeilenweise sortiert.
Das ganze scheitert dann aber an den verbundenen Zellen, die Excel so nicht sortieren kann, da die Gefahr besteht, dass der Zellverbund auseinander gerissen wird.
ein möglicher Workaround wäre, den Blöcke zu auszuschneiden und in er richtigen Reihenfolge wieder einzufügen.
Sub Blöcke_Sortieren()
Dim i As Long
Dim Zelle As Range
Dim SuchBereich As Range
Dim KopierBereich As Range
Dim Zeileab As Long
Zeileab = 3
For i = 1 To WorksheetFunction.Count(Columns(2))
Set SuchBereich = Range(Cells(Zeileab, 2), Cells(Rows.Count, 2).End(xlUp))
Set Zelle = SuchBereich.Find(what:=CDate(WorksheetFunction.Max(SuchBereich)))
Set KopierBereich = Zelle.Offset(-1, 0).Resize(5).EntireRow
KopierBereich.Copy
Rows(3).Insert shift:=xlDown
KopierBereich.Delete
Zeileab = Zeileab + 5
Next
End Sub
Gruß Daniel
Anzeige
AW: 2 Sheets
04.12.2018 11:39:25
Fennek
Hallo,
nicht ganz so effizient wie Daniel's Code:

Sub T_1()
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
Dim RNG As Range
Dim R As String
With Cells
Set RNG = .Find("OP-Datum", , xlValues, xlWhole)
Anf = RNG.Address
Do
'Debug.Print RNG.Offset(1).Value, Anf, RNG.Address
R = R & RNG.Offset(1).Address & ","
Set RNG = .FindNext(RNG)
Loop Until RNG.Address = Anf
End With
R = Left(R, Len(R) - 1)
Debug.Print R
With Sheets(2)
.Cells.Clear
For Each c In Range(R).Areas
i = i + 1
Sheets(2).Cells(i, 1) = c.Address
Sheets(2).Cells(i, 2) = c.Value
Next c
With .Range("A1").CurrentRegion
.Sort .Cells(1, 2), 2
End With
Ar = Application.Transpose(.UsedRange.Columns(1))
R = Join(Ar, ",")
.Cells.Clear
For Each c In Sheets(1).Range(R).Areas
c.CurrentRegion.Copy Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(3)
Next c
End With
End Sub
mfg
Anzeige
AW: Blöcke nach Datum sortieren
04.12.2018 11:44:42
andreas
Hallo, Daniel!
So, wie du das gelöst hast, trifft es den Nagel der Lösung genau auf den Kopf.
Ich habe den Code eingefügt (anscheinend auch richtig... :-) ), Makro ausgeführt, und es funktioniert...
Dankeschön!

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige