Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Leere Zeilen löschen

Betrifft: Leere Zeilen löschen von: Ralf
Geschrieben am: 12.11.2012 14:40:53

Hallo Forum,

ich importiere Daten aus einer Tabelle im Internet in eine Arbeitsmappe.
Ich möchte dann in der Tabelle leere Zeilen löschen. Dummerweise gibt es kein genaues Muster, da die Tabelle ständig erweitert wird, ansonsten hätte ich dies mit dem Makrorekorder schon gelöst.
Folgende Situation:
In der Spalte B erscheinen Einträge nach dem Schema "Monat Jahr" (also z. B. September 2012, Oktober 2012, usw.). In der Spalte C stehen dann darunter die Daten zu den Monaten, also z. B. 28.09. 27.09. 26.09, usw.
Jetzt soll die Tabelle so formatiert werden.
Wenn z. B. in B12 der Eintrag "Oktober 2012" steht, soll in der Zeile darüber eine Leerzeile stehen (mehrere Leerezielen sollen gelöscht werden) und darunter soll keine Leereziele erscheinen, also z. B. dann in C13 der Eintrag 30.10. stehen.
Wer kann mir da mit einem allgemeingültigen Script helfen?

Vielen Dank im Voraus für Eure Hilfe.

Ich hoffe, ich habe mein Anliegen halbwegs verständlich rübergebracht.

Viele Grüße

Ralf

  

Betrifft: AW: Leere Zeilen löschen von: UweD
Geschrieben am: 12.11.2012 16:09:53

Hallo

ich hab zwar selbst jetzt keine Zeit.

Aber ein Tipp. Ohne Beispieldatei wird das heir sicherlich nichts.

Gruß UweD


  

Betrifft: AW: Leere Zeilen löschen von: Ralf
Geschrieben am: 12.11.2012 16:14:06

Hallo Forum,

wie gewünscht jetzt mit einer Beispieldatei:

https://www.herber.de/bbs/user/82595.xlsm

Viele Grüße

Ralf


  

Betrifft: AW: Leere Zeilen löschen von: UweD
Geschrieben am: 13.11.2012 09:32:52

Hallo nochmal


so klappt es

Sub LeerzeilenWeg()
    On Error GoTo Fehler
    Dim TB, i%, ZE%
    Dim LR2&, LR3&, Reihe
    ZE = 4 ' ab Zeile
    Set TB = ActiveSheet
    LR2 = TB.Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile der Spalte B
    LR3 = TB.Cells(Rows.Count, 3).End(xlUp).Row 'letzte Zeile der Spalte C
    Application.ScreenUpdating = False
    If LR2 > LR3 Then TB.Rows(LR3 + 1 & ":" & LR2).Delete xlUp ' Unsinn am Ende löschen
    
    For i = LR3 To ZE Step -1
        If TB.Cells(i, 3) = "" _
            And Trim(TB.Cells(i, 2)) = "" _
            And Trim(TB.Cells(i + 1, 2)) = "" Then
                Rows(i).Delete xlUp
        End If
    Next
    Err.Clear
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Trim() weil teilweise "Nur Leerstellen" in Zellen in Spalte B vorkommen

Gruß UweD


  

Betrifft: AW: Leere Zeilen löschen von: Ralf
Geschrieben am: 13.11.2012 09:37:42

Hallo Uwe,

super Lösung. Funktioniert einwandfrei.
Vielen, vielen Dank.

Viele Grüße

Ralf


 

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