ich brauch mal wieder Eure Hilfe. Ich habe versucht verschiedene Codes au der Recherche miteinander zu kombinieren, leider ist das nicht ganz so geworden, wie ich erhofft hatte. Mein Problem: Ich habe eine Exceldatei, die ich aus einer anderen Exceldatei heraus öffne. Das funktioniert. Nun möchte ich in der neu geöffneten Datei in Spalte B die erste Zeile finden, es handelt sich um eine Uhrzeit, deren Minute 15 oder 30 oder 45 oder 00 enthält. Dazu habe ich folgendes Makro:
Sub Finde()
Dim LetzteZeile As Long, Zeile As Long
LetzteZeile = Range("A65536").End(xlUp).Row
For Zeile = 9 To LetzteZeile
If Minute(Cells(Zeile, 1)) Mod 15 = 0 Then
Cells(Zeile, 1).Select
SendKeys "{Enter}"
Exit Sub
End If
Next Zeile
End Sub
Nun möchte ich, das die nächsten 14 Zellen nach der gefundenen Minutenzahl gelöscht werden. Danach soll eine Zeile übersprungen werden, da es sich dabei wieder um eine Zeile handelt, deren Minutenzahl die 15 oder 30 oder 45 oder 00 enthält. Dann sollen wieder 14 Zeilen gelöscht werden, eine Zeile übersprungen werden, 14 Zeile löschen usw. Hierzu habe ich folgendes Makro in der Recherche gefunden.
Sub Tage_löschen()
Dim Anzahl_Zeilen_löschen As Integer
If ActiveCell = "" Then Exit Sub
Anzahl_Zeilen_löschen = 14
Rows(ActiveCell.Row & ":" & ActiveCell.Row + Anzahl_Zeilen_löschen - 1).Delete Shift:=xlUp
SendKeys "{Enter}"
End Sub
Aber irgendwie funktioniert das ganze nicht so ganz, bzw. wenn ich es hingebogen habe, dass das Makro zum löschen der Tage nicht nur einmal sondern mehrfach ausgeführt werden soll ( durch Worksheet_SelectionChange) dauert es ewig, bis alles abgearbeitet ist, da es sich zum Teil um 45000 Zeilen handelt.
Wer hat eventuell einen anderen Lösungsvorschlag für mich. Das Endresultat sollte nach dem ausführen des Makros sein, dass nur noch die Zeilen vorhanden sind, deren Minutenzahl (Zelle ist in hh.mm.ss formatiert) 15, 30, 45 und 00 sind. Alle anderen Zeilen sollen gelöscht werden.
Ich hoffe, jemand hat verstanden was ich möchte und hat Zeit und Muße mich zu unterstützen. Danke jedenfalls schon mal im Voraus,
Oliver