Microsoft Excel

Herbers Excel/VBA-Archiv

Leerzeilen löschen

    Betrifft: Leerzeilen löschen von: Daniel
    Geschrieben am: 26.08.2003 12:03:45

    Hallo Excel-/VBA-Cracks

    Ich habe mehrere Excel-Tabellen die in Spalte A (Zeile 13 - 300) Text und in Spalte B - F jeweils Zahlen enthalten. Nun gibt es Zeilen, die keine Zahlen aufweisen. Diese Zeilen sollten nun komplett gelöscht werden. Jede Tabelle hat aber unterschiedlich viele Zeilen die gelöscht werden müssen.
    Ich habe leider nur wenig bis gar keine Ahnung von VBA, doch hoffe ich, dass dies mit VBA möglich ist.

    Wäre toll, wenn mir da jemand weiterhelfen könnte. Danke!
    Daniel

      


    Betrifft: AW: Leerzeilen löschen von: WernerB.
    Geschrieben am: 26.08.2003 12:15:02

    Hallo Daniel,

    wie gefällt Dir das?
    Sub LeerZeilenKiller()
    Dim i As Long
        Application.ScreenUpdating = False
        For i = 300 To 13 Step -1
          If WorksheetFunction.CountA(Range("B" & i & ":F" & i)) = 0 Then
            Cells(i, 1).EntireRow.Delete
          End If
        Next i
        Application.ScreenUpdating = True
    End Sub
    

    Viel Erfolg wünscht
    WernerB.

    P.S.: Das Forum lebt auch von den Rückmeldungen der Fragesteller. Danke!


      


    Betrifft: vba-macro von: ingo
    Geschrieben am: 26.08.2003 12:29:57

    Hallo Daniel,
    folgendes Macro sollte alle zeilen löschen, die in spalte b-f keine werte haben.
    das macro untersucht alle zeilen von zeile 13 bis zum letzten eintrag in spalte a:

    Sub LEERELOESCHEN()
    Dim ii%, jj%
    Dim leer As Boolean
      For ii = ActiveSheet.Range("a65536").End(xlUp).Row To 13 Step -1
          leer = True
          For jj = 2 To 6
             If ActiveSheet.Cells(ii, jj) <> "" Then leer = False
          Next jj
          If leer Then ActiveSheet.Cells(ii, 1).EntireRow.Delete
       Next ii
    End Sub
    


    sollte so funktionieren.

    Gruß Ingo


      


    Betrifft: AW: Leerzeilen löschen von: Daniel
    Geschrieben am: 26.08.2003 12:56:17

    Hallo Werner & Ingo

    Super! Genial! Fantastisch! Mega! Ich staune!!! Es funktionieren beide Lösungen einwandfrei. Besten Dank!

    Nun hat sich meinerseits leider ein kleiner Bug eingeschlichen. Die zu löschenden Zeilen enthalten nämlich den Wert 0 (Null) und das Makro funktioniert erst, wenn ich die betreffenden Felder mit Nullwerten lösche. Die Null war leider nicht ersichtlich, weil es sich bei den Tabellen um einen SAP-Download handelt.
    Wisst Ihr dazu auch eine Lösung? Sorry für die Extramühe.
    Danke & Gruss
    Daniel


      


    Betrifft: AW: Leerzeilen löschen von: WernerB.
    Geschrieben am: 26.08.2003 13:11:15

    Hallo Daniel,

    dazu mein Vorschlag:
    Sub LeerZeilenKiller()
    Dim i As Long
        Application.ScreenUpdating = False
        For i = 300 To 13 Step -1
          If WorksheetFunction.Sum(Range("B" & i & ":F" & i)) = 0 Then _
            Cells(i, 1).EntireRow.Delete
        Next i
        Application.ScreenUpdating = True
    End Sub
    

    Gruß WernerB.


      


    Betrifft: AW: Leerzeilen löschen von: Daniel
    Geschrieben am: 26.08.2003 13:26:16

    Danke Werner, das ist es!!!

    Gruss
    Daniel


      


    Betrifft: AW: Leerzeilen löschen von: Daniel
    Geschrieben am: 27.08.2003 13:43:25

    Hallo, ich bins nochmals

    Ich habe nun schon einige Stunden versucht, das Makro so zu erweitern, dass es für alle Tabellen in der Datei gleichzeitig ausgeführt wird. Leider ohne Erfolg :-(
    Wer kann mir da weiterhelfen?
    Danke & Gruss
    Daniel


      


    Betrifft: AW: Leerzeilen löschen von: WernerB.
    Geschrieben am: 27.08.2003 21:25:00

    Hallo Daniel,

    es ist immer besser, solche Anforderungen gleich in der ersten Anfrage zu nennen.
    Hier mein Vorschlag (ungetestet):
    Sub LeerZeilenKiller()
    Dim j As Integer
    Dim i As Long
        Application.ScreenUpdating = False
        For j = 1 To Worksheets.Count
          With Worksheets(j)
            For i = 300 To 13 Step -1
              If WorksheetFunction.Sum(.Range("B" & i & ":F" & i)) = 0 Then _
                .Cells(i, 1).EntireRow.Delete
            Next i
          End With
        Next j
        Application.ScreenUpdating = True
    End Sub
    

    Gruß WernerB.


     

    Beiträge aus den Excel-Beispielen zum Thema " Leerzeilen löschen"