Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wenn Datum kleiner ist als Datum, dann lösche Zeil

Wenn Datum kleiner ist als Datum, dann lösche Zeil
23.10.2012 18:48:23
Justin
Guten Abend liebes Forum,
in meiner Spalte H sitzen angaben wie z.B 02.2010
mit dem Code:
 For i = Cells(Rows.Count, 8).End(xlUp).Row To 9 Step -1
On Error Resume Next
If Cells(i, 8).Date 
will ich erreichen das alles was kleiner als 03.2010 gelöscht wird. Es entsteht jedoch eine Endlosschleife d.h. es reagiert nix mehr bis ich auf ESC drücke.
Könnt ihr mir eine kleine Starthilfe geben?

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Datum kleiner ist als Datum, dann lösche Zeil
23.10.2012 20:03:50
Hajo_Zi
ein Range hat nicht die Eigenschaft Date.

AW: Wenn Datum kleiner ist als Datum, dann lösche Zeil
24.10.2012 10:20:26
Marc
Moin!
Ich weiß nicht ob das Format dann richtig gewählt ist, aber mit
CDate(Cells(i, 8))
kriegst du immerhin schon mal irgendwas.
Gruß, MCO

Anzeige
AW: Wenn Datum kleiner ist als Datum, dann lösche Zeil
25.10.2012 18:23:49
Justin
Hi Leute,
hab den Code bisschen vereinfacht und denke das es so klappen müsste, jedoch arbeitet die Schleife ohne mir die alten Daten rauszuhauen..
(K2 ist mein Eingabefeld mit dem Format DD.MM.JJJJ)( Die Daten in Spalte 8 sind auch im selben Format)

Dim i
For i = 9 To 1000
With ActiveSheet.Cells(i, 8)
.Select
If Range("K2") 

Vielen Dank für eure Mühe..

Anzeige
AW: Wenn Datum kleiner ist als Datum, dann lösche Zeil
26.10.2012 09:18:13
Justin
Guten Morgen liebes Forum,
mit dieser Schleife habe ich mein Problem lösen können... für alle die etwas ähnliches suchen
In der Zelle K2 steht mein Datum wonnach ich Filtern möchte..

Columns(H:H).Select
Filter = Me.Cells(2, "K")
Dim sel As Range
neu:
For Each sel In Selection
If sel.Value  "" Then
sel.EntireRow.Delete
GoTo neu
Else
End If
Next

Anzeige
AW: Wenn Datum kleiner ist als Datum, dann lösche Zeil
26.10.2012 09:23:21
Justin
Ps: "Dim Filter As Date" habe ich vergessen! Leider kann ich meine Posts nicht editieren...
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeilen basierend auf Datum in Excel löschen


Schritt-für-Schritt-Anleitung

Um in Excel Zeilen zu löschen, wenn das Datum kleiner als ein bestimmtes Datum ist, kannst du folgenden VBA-Code verwenden. Dieser Code überprüft die Daten in einer bestimmten Spalte (in diesem Fall Spalte H) und löscht alle Zeilen, deren Datum kleiner als das Datum in Zelle K2 ist.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" -> "Modul" auswählst.
  3. Kopiere den folgenden Code in das Modul:
Sub DeleteRowsIfDateIsBefore()
    Dim i As Long
    Dim dateToCompare As Date
    dateToCompare = CDate(Range("K2").Value) ' Datum aus Zelle K2

    For i = Cells(Rows.Count, 8).End(xlUp).Row To 1 Step -1 ' Durchlaufe Spalte H von unten nach oben
        If CDate(Cells(i, 8).Value) < dateToCompare Then ' Vergleich der Daten
            Cells(i, 8).EntireRow.Delete ' Zeile löschen
        End If
    Next i
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, um die Zeilen zu löschen, die kleiner als das Datum in K2 sind.

Häufige Fehler und Lösungen

  • Endlosschleife: Wenn das Makro eine Endlosschleife verursacht, stelle sicher, dass du von der letzten Zeile nach oben iterierst. Ein häufiges Problem ist, dass du die Schleife von oben nach unten durchführst und dadurch die Zeilen verschoben werden.

  • Format des Datums: Achte darauf, dass die Daten in Spalte H im richtigen Datumsformat vorliegen. Andernfalls kann Excel das Datum nicht korrekt vergleichen. Verwende CDate, um sicherzustellen, dass die Werte als Datum behandelt werden.

  • Falsche Zelle für den Vergleich: Überprüfe, ob das Datum in K2 korrekt eingegeben ist. Wenn das Datum nicht im richtigen Format vorliegt, funktioniert der Vergleich nicht.


Alternative Methoden

Eine alternative Methode, um Zeilen zu löschen, wenn das Datum kleiner als ein bestimmtes Datum ist, ist die Verwendung von Excel-Formeln und Filtern:

  1. Füge eine Hilfsspalte hinzu, um zu überprüfen, ob das Datum kleiner ist. Zum Beispiel in Spalte I:
    =WENN(H2 < K2; "Löschen"; "")
  2. Filtere die Hilfsspalte nach "Löschen" und lösche die gefilterten Zeilen manuell.

Diese Methode ist nützlich, wenn du kein VBA verwenden möchtest.


Praktische Beispiele

Angenommen, du hast folgende Daten in Spalte H:

H
01.01.2010
02.02.2011
03.03.2012
04.04.2013

Wenn in Zelle K2 das Datum 01.01.2012 steht, wird das Makro die Zeilen mit 01.01.2010 und 02.02.2011 löschen, da diese kleiner sind als das Datum in K2.


Tipps für Profis

  • Daten validieren: Stelle sicher, dass die Daten in der Spalte H vor der Ausführung des Makros im richtigen Format vorliegen. Du kannst die Daten in Excel mit der Funktion =ISTDATUM(H2) überprüfen.

  • Backup erstellen: Bevor du Daten löschst, erstelle immer ein Backup deiner Excel-Datei, um Datenverlust zu vermeiden.

  • Bedingte Formatierung: Um die Zeilen, die gelöscht werden sollen, hervorzuheben, kannst du die bedingte Formatierung verwenden, um die Zellen in Spalte H farblich zu kennzeichnen, wenn sie kleiner als das Datum in K2 sind.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Datum im richtigen Format ist? Du kannst die Funktion =ISTDATUM(Zelle) verwenden, um zu überprüfen, ob der Wert in der Zelle ein Datum ist.

2. Was passiert, wenn ich versehentlich die falschen Zeilen lösche? Wenn du ein Backup deiner Datei erstellt hast, kannst du die gelöschten Zeilen leicht wiederherstellen. Ansonsten gibt es in Excel die Möglichkeit, die letzten Änderungen über Rückgängig (Strg + Z) zu revertieren, solange du das Programm nicht geschlossen hast.

3. Kann ich das Datum in einer anderen Zelle verwenden? Ja, du kannst das Datum in einer beliebigen Zelle verwenden, indem du den Code entsprechend anpasst. Ändere einfach Range("K2") auf die Zelle, die das gewünschte Datum enthält.

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