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

Werte mit Do Loop löschen

Werte mit Do Loop löschen
25.04.2002 12:45:53
Mark
Guten Tag,

mit nachfolgender Schleife soll in Spalte A (ab A12 abwärts bis Zellinhalt = "") geprüft werden, ob in der Zelle eine Formel steht oder ein Datum.

Steht eine Formel drin, sollen die Zellinhalte der 4 rechts daneben liegenden Zellen gelöscht werden (Formel in Spalte A soll bleiben).

Steht ein Datum drin, soll die gesamte Zeile gelöscht werden (wie "Strg" + "-" , nach markieren der Zeile wird diese aus der Tabelle entfernt und die nachfolgenden Zellen nach oben geschoben).

In meiner nachfolgenden Schleife funktioniert das erst, wenn ich das Makro zweimal durchlaufen lasse???

Sub FormularLöschen()
Dim i As Integer
On Error Resume Next
i = 12

Do Until IsEmpty(Cells(i, 1).Value)
If Cells(i, 1).HasFormula Then
Range(Cells(i, 2), Cells(i, 5)).Clear
ElseIf IsDate(Cells(i, 1)) Then
Rows(i).Select
Selection.EntireRow.Delete
End If

i = i + 1
Loop
End Sub

Danke Mark

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Werte mit Do Loop löschen
25.04.2002 13:16:45
sattler
Hallo! Dadurch das du eine Zeile löscht verschiebt sich der Bezug deiner Werte um 1 nach oben. Wenn du dann mit i=i+1 weiter machst überspringst du 1 Zeile.Da beim 2. Durchgang des Programms keine Zeilen mehr gelöscht werden, funktionierts dann erst richtig. Hoffe ich hab das Problem getroffen. Gruß Sattler Lösungsvorschlag: Sub FormularLöschen() Dim i As Integer On Error Resume Next i = 1 Do Until IsEmpty(Cells(i, 1).Value) If Cells(i, 1).HasFormula Then Range(Cells(i, 2), Cells(i, 5)).Clear ElseIf IsDate(Cells(i, 1)) Then Rows(i).Select Selection.EntireRow.Delete i = i - 1 End If i = i + 1 Loop End Sub
Anzeige
Perfekt
25.04.2002 15:39:53
Mark
Dankeschön, das war`s!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige