Anzeige
Archiv - Navigation
1056to1060
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

delete row if date older than

delete row if date older than
11.03.2009 17:11:57
patrick
Hallo,
ich bräuchte bitte wiedermal hilfe.
Ich möchte mir gerne via makro alle zeilen löschen wenn in einer bestimmten Zelle ein Datum steht, das älter ist als =TODAY() minus 7 tage.
Bsp:
Heute ist der 11.3.
in meiner tabelle stehen in Spalte C Datumsangaben.
C4 = 1.3; D4 = text
C5 = 2.3; D5 = text
C6 = 6.3; D6 = text
C7 = 7.3; D7 = text
C8 = 9.3; D8 = text
Wenn ich das Makro heute ausführen würde, möchte ich dass die Zeilen in denen das Datum älter als 4.3 ist rausgelöscht haben.
Sprich nachdem das Makro drübergelaufen ist stehen da:
C4 = 6.3; D4 = text
C5 = 7.3; D5 = text
C6 = 9.3; D6 = text
VIELEN DANK!

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

Betreff
Datum
Anwender
Anzeige
AW: delete row if date older than
11.03.2009 17:26:55
Jogy
Hi.

Sub removeOld()
Dim zeiLe As Long
With ActiveSheet
' Ab Zeile 1, hier ggf. anpassen
For zeiLe = 1 To .Cells(Rows.Count, 3).End(xlUp).Row
' Schaut nach, ob es ein Datum ist,
' sonst kann es bei der nächsten Abfrage einen Fehler geben
If IsDate(.Cells(zeiLe, 3).Value) Then
' Wenn Datum älter als 7 Tage, dann löschen
If .Cells(zeiLe, 3).Value + 7 

Gruss, Jogy

AW: delete row if date older than
11.03.2009 17:43:07
Luschi
Hallo Jogy,
so wird das nicht ganz stimmen, denn das Löschen von Zeilen muß man bei der letzten Zeile beginnen.
Wenn die 4. Zeile gelöscht wird, dann rückt die 5. Zeile nach oben und wird zur 4. Zeile.
In der Schleife geht's dann zur 5. Zeile; die war aber vor dem Löschvorgang die 6. Zeile.
Daraus folgt: jede 2. Zeile wird nicht geprüft und übersprungen.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: delete row if date older than
11.03.2009 20:57:42
Jogy
Hi.
Da hast Du natürlich recht, hab das nur schnell zusammengeschustert und nicht wirklich getestet. Da habe ich wohl meinen Denkfehler übersehen. Es wird aber nicht jede 2. Zeile übersprungen, sondern nur diejenigen, die auf eine gelöschte Zeile folgen. "Jede 2. Zeile" ist der Extremfall. Ist aber egal, falsch bleibt falsch.
Also nochmal korrekt:

Sub removeOld()
Dim zeiLe As Long
With ActiveSheet
' Von letzter Zeile bis Zeile 1, hier ggf. anpassen
For zeiLe = .Cells(Rows.Count, 3).End(xlUp).Row To 1 Step -1
' Schaut nach, ob es ein Datum ist,
' sonst kann es bei der nächsten Abfrage einen Fehler geben
If IsDate(.Cells(zeiLe, 3).Value) Then
' Wenn Datum älter als 7 Tage, dann löschen
If .Cells(zeiLe, 3).Value + 7 

Gruss, Jogy

Anzeige
AW: delete row if date older than
12.03.2009 10:43:27
patrick
ja is das geil!?!?!?
vielen dank!
funkt super.
Pat
AW: delete row if date older than
11.03.2009 17:31:04
Gerd
Hi,
das ist doch mit wenigen Klicks mit dem Autofilter und gehe zu...erledigt.
mfg Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige