Anzeige
Archiv - Navigation
388to392
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
388to392
388to392
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Leere Zeilen löschen

Leere Zeilen löschen
27.02.2004 11:01:04
Student2000
Hallo, habe kleines Problem, ich möchte Leerzeilen entfernen. Das tückische -es sollen nicht alle entfernt werden. Habe mir folgendes ausgedacht:
Ich zähle die Anzahl der Zeilen (Felder) die leer sind. Sobald er auf eine Zeile mit Inhalt trifft, guckt er nach wieviele Leerzeilen er gefunden hat. Sollten es weniger denn 6 sein werden diese gelöscht, indem die Startzeile um die Anzahl der Leerzeilen zurückgesetzt wird. Die Leerzeilen wandern nach oben, so das die Startzeile = Startzeile bleiben kann. Ist das geschehen gehts normal weiter.
Code:


Sub EinzelZeilenEntfernen()
Dim StartZeile, LetzteZeile, LaufZeile, AnzahlLeerZellen, LeerZeile, i As Integer
LetzteZeile = Worksheets("Tabelle3").Cells.Find(What:="*", _
After:=Worksheets("Tabelle3").Range("A1"), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
StartZeile = 1
AnzahlLeerZellen = 0
Do While StartZeile < LetzteZeile
If Worksheets("Tabelle3").Cells(StartZeile, 1).Value = "" Then
AnzahlLeerZellen = AnzahlLeerZellen + 1
StartZeile = StartZeile + 1
MsgBox "1.: " & StartZeile
MsgBox "2.: " & AnzahlLeerZellen
Else
i = 0
If AnzahlLeerZellen > 0 & AnzahlLeerZellen < 6 Then
LeerZeile = StartZeile - AnzahlLeerZellen + 1
Do While i < AnzahlLeerZellen
Worksheets("Tabelle3").Cells(LeerZeile, 1).Delete
i = i + 1
AnzahlLeerZellen = 0
Loop
StartZeile = StartZeile + 1
Else
If AnzahlLeerZellen = 0 Then
StartZeile = StartZeile + 1
Else
AnzahlLeerZellen = AnzahlLeerZellen
End If
End If
End If
Loop
Application.ScreenUpdating = True
End Sub

mfg thomas

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Und wo ist das Problem?
27.02.2004 11:06:24
Boris
Hi Thomas,
...funktioniert dein Code nicht? Bzw. was funktioniert daran nicht?
Tipp am Rande:
Zeilen sollten immer mit Long deklariert werden, um nen Überlauf zu vermeiden.
Zudem deklarierst du mit
Dim StartZeile, LetzteZeile, LaufZeile, AnzahlLeerZellen, LeerZeile, i As Integer
nur i als Integer - der Rest bleibt Variant.
Richtig wäre:
Dim StartZeile as Integer, LetzteZeile as Integer, LaufZeile as Integer......etc.
Aber wie gesagt: Besser Long.
Grüße Boris
AW: Und wo ist das Problem?
27.02.2004 11:20:34
Student2000
Hallo, habe den Code nochmals überarbeitet, Problem bleibt aber bestehen. Ich bekomme in der MsgBox als 1. StartZeile 190 und AnzahlLeerZellen zählt er ganz normal hoch, das kuriose, er berücksichtigt nicht die besetzten Felder.


Sub EinzelZeilenEntfernen()
Dim StartZeile As Long, LetzteZeile As Long, LaufZeile As Long, AnzahlLeerZellen As Long, LeerZeile As Long, i As Integer
LetzteZeile = Worksheets("Tabelle3").Cells.Find(What:="*", _
After:=Worksheets("Tabelle3").Range("A1"), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
StartZeile = 1
AnzahlLeerZellen = 0
Do While StartZeile < LetzteZeile
If Worksheets("Tabelle3").Cells(StartZeile, 1).Value = "" Then
AnzahlLeerZellen = AnzahlLeerZellen + 1
StartZeile = StartZeile + 1
MsgBox "1.: " & StartZeile
MsgBox "2.: " & AnzahlLeerZellen
Else
i = 0
If AnzahlLeerZellen > 0 & AnzahlLeerZellen < 6 Then
LeerZeile = StartZeile - AnzahlLeerZellen
Do While i < AnzahlLeerZellen
Worksheets("Tabelle3").Cells(LeerZeile - 1, 1).Delete
i = i + 1
Loop
AnzahlLeerZellen = 0
StartZeile = StartZeile + 1
Else
If AnzahlLeerZellen = 0 Then
StartZeile = StartZeile + 1
Else
AnzahlLeerZellen = AnzahlLeerZellen
StartZeile = StartZeile + 1
End If
End If
End If
Loop
Application.ScreenUpdating = True
End Sub

mfg thomas
Anzeige
AW: Und wo ist das Problem?
27.02.2004 12:06:04
Student2000
Hallo, Fehler gefunden, lag an der Tabelle, danke.
IF-Verknüpfung
27.02.2004 11:58:19
Student2000
Hallo, könnte der Fehler auch an der If-Verknüpfung liegen?
If AnzahlLeerZellen > 0 & AnzahlLeerZellen < 6 Then
Habe ne Messagebox eingebaut und die hat mir 0 ausgegeben, was ja nicht sein dürfte.
If AnzahlLeerZellen > 0 & AnzahlLeerZellen < 6 Then

LeerZeile = StartZeile - AnzahlLeerZellen

MsgBox AnzahlLeerZellen
Kann mir jemand weiterhelfen?
AW: IF-Verknüpfung
27.02.2004 14:09:30
soendi
hallo thomas
ersetze mal die & durch AND... vielleicht klappts so. (weil AND die logische verknüpfung ist und nicht &)
gruss
soendi
Anzeige
AW: IF-Verknüpfung
27.02.2004 15:04:27
Student2000
Hallo,
und dank auch dir :)
thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige