Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
764to768
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
764to768
764to768
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Best. Datum durch löschen filtern

Best. Datum durch löschen filtern
24.05.2006 09:05:46
Dominik
Hallo und guten Morgen zusammen!
Habe von Reinhard folgenden Code bekommen, um ein bestimmtes Datum (welches eingegeben wird) durch löschen der anderen Datums-Zeilen zu filtern:
Option Explicit

Sub Objekte_löschen()
Dim zei, von, bis
von = InputBox("Startdatum")
bis = InputBox("Endedatum")
If IsDate(von) And IsDate(bis) Then
For zei = Range("A65536").End(xlUp).Row To 1 Step -1
If CDate(Cells(zei, 1)) < von Or CDate(Cells(zei, 1)) > bis Then Cells(zei, 1).EntireRow.Delete
Next zei
End If
End Sub

Es funktioniert zwar, doch wird der Durchlauf immer mit der Meldung "Laufzeitfehler '13': Typen unverträglich" abgebrochen und der Code-Teil "If CDate(Cells(zei, 1)) bis Then" markiert.
Desweiteren wird auch das Enddatum gelöscht. Also wenn ich den Zeitraum vom 04.05.2006 bis zum 16.05.2006 haben möchte, werden auch alle Einträge des 16.05. gelöscht.
Da ich nur wenig Ahnung habe hoffe ich, ihr könnt mir bei meinem Problem helfen...?
Danke und Grüße!
Dominik

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Best. Datum durch löschen filtern
24.05.2006 09:48:48
WernerB.
Hallo Dominik,
vermutlich gibt es bei Dir in der Spalte "A" einen Wert, der kein Datum darstellt (Überschrift?).
Dann versuche es mal so:

Sub Objekte_löschen()
Dim von As String, bis As String, _
zei As Long
von = InputBox("Startdatum")
bis = InputBox("Endedatum")
If IsDate(von) And IsDate(bis) Then
For zei = Range("A65536").End(xlUp).Row To 2 Step -1
If CDate(Cells(zei, 1)) < von Or CDate(Cells(zei, 1)) > bis Then _
Cells(zei, 1).EntireRow.Delete
Next zei
End If
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: Best. Datum durch löschen filtern
24.05.2006 09:59:56
Dominik
Wunderbar, vielen Dank!
Leider tritt nun immer noch das Problem auf, dass das Enddatum mitgelöscht wird?
Ich könnte das Datum einfach beim Eingeben +1 setzen, aber das ist ja nicht Sinn der Sache?!
Gruß, Dominik
AW: Best. Datum durch löschen filtern
24.05.2006 10:10:42
WernerB.
Hallo Dominik,
das kann ich bei mir (Excel XP) so nicht nachvollziehen.
Bei meinen Tests werden die Zeilen mit dem Anfangsdatum und die Zeilen mit dem Enddatum in Spalte "A" nicht gelöscht.
Den Beitrag habe ich deshalb wieder auf "offen" gesetzt.
Gruß
WernerB.
AW: Best. Datum durch löschen filtern
24.05.2006 11:06:01
Franz
Hallo Dominik,
stehen bei dir in Spalte 1 evtl. Datumsangaben inklusive Uhrzeiten?
Dann sollte folgende Anpassung helfen, durch die Zellinhalt auf ganze Tage gekürzt wird.

Sub Objekte_löschen()
Dim von As String, bis As String, _
zei As Long
von = InputBox("Startdatum")
bis = InputBox("Endedatum")
If IsDate(von) And IsDate(bis) Then
For zei = Range("A65536").End(xlUp).Row To 2 Step -1
If CDate(Int(Cells(zei, 1))) < von Or CDate(Int(Cells(zei, 1))) > bis Then _
Cells(zei, 1).EntireRow.Delete
Next zei
End If
End Sub

mfg
Franz

Anzeige
AW: Best. Datum durch löschen filtern
24.05.2006 11:29:04
Dominik
Hallo Franz!
Ja, in der Spalte A steht das Format TT.MM.JJJJ hh.mm.ss.
Dein vorgeschlagener Code gibt aber wieder den Laufzeitfehler 13, Typen unverträglich aus.
Noch eine Idee?
Zur Not rechne ich das Datum immer +1...
Gruß, Dominik
AW: Best. Datum durch löschen filtern
24.05.2006 11:34:12
Dominik
Beziehungsweise: In einer Zelle steht: '01.02.2006 19:06:35
Wenn ich nun das ' wegnehme, ist das Datum richtig formatiert.
Also müsste das Datum vor dem selektieren richtig formatiert werden ?!
Gruß
AW: Best. Datum durch löschen filtern
24.05.2006 12:17:57
WernerB.
Hallo Dominik,
wenn Von- und Bis-Datum in der Form "TT.MM.JJJJ" eingegeben werden, dann sollte das funktionieren:

Sub Objekte_löschen()
Dim von As String, bis As String, _
zei As Long
von = InputBox("Startdatum")
bis = InputBox("Endedatum")
von = von & " 00:00:00"
bis = bis & " 23:59:59"
If IsDate(von) And IsDate(bis) Then
For zei = Range("A65536").End(xlUp).Row To 2 Step -1
If CDate(Cells(zei, 1)) < von Or CDate(Cells(zei, 1)) > bis Then _
Cells(zei, 1).EntireRow.Delete
Next zei
End If
End Sub

Gruß
WernerB.
Anzeige
AW: Best. Datum durch löschen filtern
24.05.2006 13:46:37
Dominik
Super, vielen vielen Dank für die rasche, freundliche und sehr kompetente Hilfe !!!!
Gruß, Dominik

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige