Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Schleife prüfen ob Zellbereich leer

Schleife prüfen ob Zellbereich leer
29.02.2016 10:44:08
Volker
Guten Morgen zusammen,
ich versuche folgendes:
In einer Arbeitsmappe soll der Zellbereich A1:C1 auf Einträge geprüft werden. Wenn dort irgendetwas steht, Abbruch, nächste Seite.
Wenn dort kein Eintrag ist, soll die Zeile gelöscht werden. (Zellen löschen, Zeile 2 wird Zeile 1)Wenn ich den unten Stehenden code einzeln als sub laufen lasse, funktioniert er für das aktive Tabellenblatt wunschgemäß. Als Schleife (für über 300 Blätter) allerdings nicht. Kann mir jemand sagen was ich ändern muss?
Hier der Code:
Private Sub CommandButton1_Click()
Dim blatt As Worksheet
For Each blatt In ActiveWorkbook.Worksheets
Dim rngBereich As Range
Set rngBereich = Range("A1:C1")
With rngBereich
If Application.WorksheetFunction.CountA(.Cells)  "" Then
Exit Sub
Else
Rows("1:1").Select
Selection.Delete Shift:=xlUp
End If
End With
Next blatt
End Sub
Danke und Gruß
Volker

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife prüfen ob Zellbereich leer
29.02.2016 10:51:16
ChrisL
Hi Volker
Private Sub CommandButton1_Click()
Dim blatt As Worksheet
Dim rngBereich As Range
For Each blatt In ThisWorkbook.Worksheets
Set rngBereich = blatt.Range("A1:C1")
If Application.WorksheetFunction.CountA(rngBereich)  0 Then
Exit Sub
Else
blatt.Rows("1:1").Delete Shift:=xlUp
End If
Next blatt
End Sub

cu
Chris

Anzeige
AW: Schleife prüfen ob Zellbereich leer
29.02.2016 11:21:30
Volker
Hallo Chris,
Danke für die Antwort.
Leider nein, funktioniert bei mir nicht.
Ich suchte im Netz und fand den Code, wie gesagt auf die aktive Seite bezogen funktionierte er.
In der Schleife allerdings nicht.
Könnte es sein, das hier der Grund liegt:
>Application.WorksheetFunction.CountA(.Cells) Nochmals Danke und Gruß
Volker

Anzeige
AW: Schleife prüfen ob Zellbereich leer
29.02.2016 11:26:27
ChrisL
Hi Volker
Was funktioniert nicht?
In der Schleife funktioniert es nicht, weil überall die Referenzierung zum "blatt" fehlt.
Bei Rows, Range etc. gehört sicherlich überall eine Referenzierung hin..
blatt.Rows(...)
blatt.Range(...)
usw.
cu
Chris

AW: Exit muss raus
29.02.2016 11:32:55
hary
Moin
Mit exit sub beendest du den Code. Das muss raus!
Private Sub CommandButton1_Click()
Dim blatt As Worksheet
Dim rngBereich As Range
For Each blatt In ThisWorkbook.Worksheets
Set rngBereich = blatt.Range("A1:C1")
If Application.WorksheetFunction.CountA(rngBereich) = 0 Then
blatt.Rows("1:1").Delete Shift:=xlUp
End If
Next blatt
End Sub

gruss hary

Anzeige
AW: Exit muss raus
29.02.2016 11:43:58
Volker
Hallo hary, hallo Chris,
das mit dem exit war das Problem!
Danke nochmal
Gruß
Volker
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellbereich auf Leere prüfen in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA zu prüfen, ob ein Zellbereich leer ist, kannst Du den folgenden Code verwenden. Dieser Code durchläuft alle Arbeitsblätter in Deiner Arbeitsmappe und löscht die erste Zeile, wenn der Zellbereich A1:C1 leer ist.

  1. Öffne Dein Excel-Dokument.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeinDokument)“ > „Einfügen“ > „Modul“.
  4. Kopiere den folgenden Code in das Modul:
Private Sub CommandButton1_Click()
    Dim blatt As Worksheet
    Dim rngBereich As Range
    For Each blatt In ThisWorkbook.Worksheets
        Set rngBereich = blatt.Range("A1:C1")
        If Application.WorksheetFunction.CountA(rngBereich) = 0 Then
            blatt.Rows("1:1").Delete Shift:=xlUp
        End If
    Next blatt
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Füge einen Button hinzu, um das Makro auszuführen.

Wenn Du jetzt auf den Button klickst, wird der Zellbereich A1:C1 auf leere Zellen geprüft. Bei leeren Zellen wird die erste Zeile gelöscht.


Häufige Fehler und Lösungen

  • Exit Sub: Wenn Du Exit Sub verwendest, wird der gesamte Code abgebrochen, was dazu führt, dass nicht alle Blätter überprüft werden. Entferne diese Zeile, um das Problem zu lösen.
  • Referenzierung: Achte darauf, dass Du überall die Referenz zum aktuellen Blatt (z.B. blatt.Rows(...) und blatt.Range(...)) verwendest, um Fehler zu vermeiden.

Alternative Methoden

Falls Du keine VBA-Makros verwenden möchtest, gibt es auch die Möglichkeit, mit Excel-Formeln zu arbeiten. Du kannst beispielsweise die Funktion WENN verwenden, um zu prüfen, ob Zellen leer sind:

=WENN(ANZAHL(A1:C1)=0; "Leer"; "Nicht leer")

Diese Formel gibt "Leer" zurück, wenn alle Zellen im Bereich A1:C1 leer sind.


Praktische Beispiele

  1. Zellbereich A1:C1 prüfen: Der Code oben prüft diesen spezifischen Bereich. Du kannst den Bereich ändern, indem Du die Range-Eigenschaft anpasst.
  2. Mehrere Zellbereiche: Um mehrere Bereiche zu prüfen, füge weitere If-Bedingungen hinzu oder erweitere die Range-Definition.

Tipps für Profis

  • Nutze die Application.ScreenUpdating = False und True Befehle, um Bildschirmflackern während der Ausführung des Codes zu vermeiden.
  • Verwende Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob eine bestimmte Zelle leer ist?
Du kannst die Funktion IsEmpty verwenden:

If IsEmpty(Sheet1.Range("A1")) Then
    ' Zelle ist leer
End If

2. Was passiert, wenn ich einen Zellbereich mit Werten habe?
Der Code löscht die erste Zeile, wenn A1:C1 leer ist. Wenn Werte vorhanden sind, bleibt die Zeile erhalten.

3. Welche Excel-Version ist erforderlich?
Der Code sollte in allen modernen Excel-Versionen (Excel 2010 und höher) funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige