Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Difinierte Zeilen mit leerem Inhalt oder "0" in einem geschützen Arbeitsblatt löschen





Frage

Hallo Zusammen! Ich hoffe, es kann mir bei folgendem Problem jemand helfen... Ich möchte in einem geschützten Arbeitsblatt automatisch die Zeilen löschen, deren Inhalt leer oder "0" ist. Allerdings soll das Makro nicht auf das gesamte Arbeitsblatt, sondern nur immer auf Zeile 111-124 angewendet werden, da sich in diesem Bereich der Inhalt ändern kann. Kann mir bitte jemand weiterhelfen? Vielen Dank und Grüße Christian

Antwort 1 von coros

Hallo Christian,

nachfolgendes Makro sollte das machen, was Du Dir vorgestellt hast. Kopiere es in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche.

Option Explicit

Sub Leere_Zeilen_ausblenden()
Dim lastColumn As Integer, iRow As Integer, iColumn As Integer
Dim RowEmpty As Boolean
Application.ScreenUpdating = False
Rem: Zeile 111 bis 124 einblenden
Rows("111:124").EntireRow.Hidden = False
Rem: letzte beschriebene Spalte ermitteln
lastColumn = ActiveSheet.UsedRange.Columns.Count
Rem: Schleife1 für die Zeilen 111 bis 124
For iRow = 111 To 124
    Rem: Variable "RowEmpty" den Wert "False" zuweisen
    RowEmpty = False
    Rem: Schleife2 zum Prüfen der Spalten, ob Zelle in der Zeile, die durch
    Rem: die 1. Schleife angesprochen wird in der Spalte, die diurch die
    Rem: 2. Schleife angesprochen wird, leer ist
    For iColumn = 1 To lastColumn
        Rem: Wenn Zelle leer oder den Wert 0 hat, der Variablen "RowEmpty"
        Rem: den Wert "True " zuweisen, ansonsten den Wert "False" zuweisen
        If IsEmpty(Cells(iRow, iColumn)) Or Cells(iRow, iColumn) = 0 Then
            RowEmpty = True
        Else
            RowEmpty = False
            Exit For
        End If
    Next
    Rem: Wenn die Variable "RowEmpty" den Wert "True" hat, die Zeile, die durch
    Rem: die Schleife 1 gerade angesprochen wird, ausblenden
    If RowEmpty = True Then Rows(iRow).EntireRow.Hidden = True
Next
End Sub


Mit dem Makro wird jede Zeile im Bereich der Zeilen 111 bis 124 geprüft, ob sie leer ist oder den Wert 0 enthält. Wenn das zutrifft, wird die Zeile ausgeblendet. Ansonsten wird die Zeile nicht ausgeblendet.

Ich hoffe, Du meintest das so. Bei Fragen melde Dich bitte wieder.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Sk8erMuc

Hallo Oliver!

Vielen vielen Dank für Deine Antwort!

Du weißt gar nicht, wie sehr Du mir damit hilfst!
Ich werde das Makro gleich ausprobieren und Dir nochmal kurzes Feedback geben!

Hab noch nen schönen Tag!

Mit den dankbarsten Grüßen aus München

Christian

Antwort 3 von Sk8erMuc

Hallo Oliver!

Vielen vielen Dank!

Das Makro funktioniert prima!!! :-)

Ich bin total happy!!!

Liebe Grüße aus München

Chris