die Min Funktion soll nach dem "niedrigsten" Datum suchen, gibt als Ergebnis aber immer 0 aus.
Folgendes Szenario: in Spalte A stehen diverse Fälligkeiten. Die Werte der Zellen, in denen mehrere Daten stehen mussten zunächst auf die angrenzenden Spalten aufgeteilt werden, so dass die Tabelle jetzt so aussieht:
A B C D E
mtl. zum 01.
mtl. zum 01.
mtl. zum 18.
15.05.17;15.08.17;15.11.17 15.05.17 15.08.17 15.11.17
mtl. zum 01.
10.12.16;01.03.17;01.06.17;01.09.17 10.12.16 01.03.17 01.06.17 01.09.17
01.03.17;01.06.17;01.09.17 01.03.17 01.06.17 01.03.17
mtl. zum 01.
In Spalte B soll jetzt eine Schleife laufen, welche alle Daten die kleiner als das Buchungsdatum sind löscht und die Zelle nach links verschiebt, so dass das nächste Datum aus dieser Zeile in Spalte B steht. Das ganze soll solange passieren, bis es kein Datum mehr in Spalte B gibt welches kleiner als das Buchungsdatum ist. (Das Buchungsdatum wird vorher durch eine Nutzereingabe definiert)Mein Ansatz ist:
Do
For Zeile = 2 To letzteZeile
If .Range("B" & Zeile).Value .Range("B" & Zeile).Delete Shift:=xlToLeft
End If
Next Zeile
MinDatum = Application.Min(.Cells(letzteZeile, 2))
Loop Until MinDatum >= Buchungsdatum
Das Problem ist, dass als MinDatum hier immer der Wert "00:00:00" gefunden wird und das ganze somit zu einer Endlosschleife wird.
MinDatum ist als Date deklariert. Den Bereich B2 bis E8 habe ich vorher ebenfalls das Format Datum gegeben. Der Vergleich bei der Until Bedingung sollte also funktionieren.
Ich hab zunächst gedacht, dass es an den leeren Zwischenzeilen liegt, da diese quasi ja den Wert 0 besitzen und habe diese deshalb mit einem Autofilter ausblenden lassen. Das hat aber leider nichts gebracht.
Habt ihr eine Idee wo hier der Fehler liegt oder habt evtl. einen anderen Ansatz um zum gleichen Ergebnis zukommen? Vielen Dank vorab.