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

Datumszeilen löschen

Datumszeilen löschen
18.04.2007 13:00:00
Christian
Hallo zusammen,
ich habe folgendes Problem:
mit dem makro:

Sub löschen()
Dim zelle As Range
Dim bereich AS Range
Set bereich = Range("A1:A100")
For Each zelle In bereich
If IsDate(zelle) Then
zelle.EntireRow.delete
End if
Next 'zelle
End Sub


lösche ich Zeilen mit Datum, aber seltsamerweise läuft das Makro nicht vollständig ab und es bleiben immer Zeilen mit Datum übrig. D.h.: ich muß das Makro öfters starten, damit alle Datumszeilen verschwinden.
Weiß jemand, warum das so ist und wie man das verhindern kann?
Gruß
Christian

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumszeilen löschen
18.04.2007 13:25:36
Rudi
Hallo,

Weiß jemand, warum das so ist und wie man das verhindern kann?


Man muss von unten löschen.


Sub löschen()
Dim Zeile As Long
For Zeile = 100 To 1 Step -1
If IsDate(Cells(Zeile, 2)) Then
Rows(Zeile).Delete
End If
Next
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Datumszeilen löschen
18.04.2007 13:29:23
Andi
Hi,
wenn man sich mal überlegt, wie das ganze abläuft, dann wird schnell klar, woran das liegt.
So wie Du die Schleife gestaltet hast, wird sie von oben nach unten durchlaufen; jetzt nehmen wir mal an, in A5 und in A6 steht jeweils ein Datum. Dein Makro erkennt das auch korrekt in A5 und löscht die Zeile 5. Die alte Zeile 6 ist jetzt also Zeile 5, das Datum aus A6 steht nun in A5. Vor der nächsten Prüfung kommt aber erstmal die next-Anweisung, es wird also nal nächstes die neue Zelle A6 gecheckt. Das Datum, das ursprünglich in A6 stand, wird also niemals überprüft, und deshalb auch nicht gelöscht.
Deshalb müssen Schleifen, die Zeilen löschen immer von unten nach oben laufen:

Sub löschen()
Dim zeile As Long
For zeile = 100 To 1 Step -1
If IsDate(Cells(zeile, 1)) Then Rows(zeile).Delete
Next zeile
End Sub


Schönen Gruß,
Andi

Anzeige
AW: Datumszeilen löschen
18.04.2007 13:42:00
Christian
Danke euch beiden recht herzlich,
man lernt ja nie aus.
Gruß
Christian

Gern geschehen... (ot)
18.04.2007 13:49:00
Andi
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige