Delete Blank Rows

Bild

Betrifft: Delete Blank Rows
von: Larissa Apfel
Geschrieben am: 26.05.2015 09:30:11

Hi,
ich habe folgendes Problem:
Ich habe mehrere Mappen in einer Excel-Datei und möchte nun in allen Mappen die leeren Zeilen löschen.

Sub DeleteBlankRows1()
'Hilfsvariablen
Dim ws As Worksheet
' Alle vorhandenen Arbeitsblätter durchlaufen
For Each ws In Worksheets
    Dim rng As Range
    Set rng = Range("A:A").SpecialCells(xlCellTypeBlanks)
    rng.EntireRow.Delete
Next
End Sub

Scheinbar macht er das für die ersten sechs Mappen, aber die letzte Mappe wird nicht aufgerufen. Kann es damit zusammenhängen, dass die Mappe ein Umlaut besitzt? Eher nicht, oder?

Bild

Betrifft: AW: Delete Blank Rows
von: Hajo_Zi
Geschrieben am: 26.05.2015 09:38:40
ich würde vermuten du löscht falsch?
Alles was in A leer ist und nicht Leerzeilen?
Nur wenige sehen Deine Datei.


Bild

Betrifft: AW: Delete Blank Rows
von: Larissa Apfel
Geschrieben am: 26.05.2015 11:03:22


Dim ws As Worksheet
' Alle vorhandenen Arbeitsblätter durchlaufen
For Each ws In Worksheets
lz = ws.Cells(Rows.Count, 1).End(xlUp).Rows.Row
'** Durchlauf aller Zeilen
For t = lz To 2 Step -1 'Zählung rückwärts
'Abfragen, ob in der ersten Spalte das Wort "AUS" "MUST" oder mit "S" (anfaengt) vorkommt
    If IsEmpty(Cells(t, 1).Value) Then
        Rows(t).Delete Shift:=xlUp
    End If
Next t
Next
Jetzt wechselt er aber nicht durch die Mappen?!

Bild

Betrifft: AW: Delete Blank Rows
von: Daniel
Geschrieben am: 26.05.2015 11:15:11
Hi
du musst deinem Programm auch sagen, dass es auf dem Worksheet ws arbeiten soll und nicht nur auf dem aktiven Blatt.

Dim ws As Worksheet
' Alle vorhandenen Arbeitsblätter durchlaufen
For Each ws In Worksheets
lz = ws.Cells(Rows.Count, 1).End(xlUp).Rows.Row
'** Durchlauf aller Zeilen
For t = lz To 2 Step -1 'Zählung rückwärts
'Abfragen, ob in der ersten Spalte das Wort "AUS" "MUST" oder mit "S" (anfaengt) vorkommt
    If IsEmpty(ws.Cells(t, 1).Value) Then
        ws.Rows(t).Delete Shift:=xlUp
    End If
Next t
Next
den gleichen Fehler hast du auch schon bei deinem ersten Code gemacht.
Ausserdem brauchst du hier noch eine Abfrage, ob überhaupt leere zellen vorhanden sind, weil sonst dein SpecialCells mit einem Fehler abbricht, bzw du unterdrückts den Fehlerabbruch:
Sub DeleteBlankRows1()
Dim ws As Worksheet
On Error Resume Next
For Each ws In Worksheets
    ws.Range("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Next
On Error GoTo 0
End Sub
gruß Daniel

Bild

Betrifft: Set rng = ws.Range("A:A").... owT
von: Rudi Maintaire
Geschrieben am: 26.05.2015 10:15:28


Bild

Betrifft: AW: Set rng = ws.Range("A:A").... owT
von: Larissa Apfel
Geschrieben am: 26.05.2015 10:56:27
Jetzt kommt die Meldung keine Zellen gefunden..?

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Registerblätter automatisch färben"