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

Forumthread: Rangebereich auf leere Zellen untersuchen

Rangebereich auf leere Zellen untersuchen
Holger
Hallo liebes Forum,
ich habe einen Rangebeeich definiert von B10 bis M & lastCell.
Nun will ich wissen, ob B.Offset(0,1), B.Offset(0,2) und B.Offset(0,14) eine leere Zelle enthält.
Also nochmal: Ist z.B C10, D10 oder M10 leer.
Wenn nur eine der drei Zellen leer ist, soll nämlich was anderes gemacht werden.
Also dachte ich mir mit Union einen range zu definieren aber da kann ich nur abfragen ob
der komplett leer ist und nicht ob eine der drei zellen leer ist.
Wie macht man sowas also?
gruß
Holger
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Rangebereich auf leere Zellen untersuchen
22.11.2010 16:34:45
Hajo_Zi
Hallo Holger,
Option Explicit
Sub leer()
MsgBox Range("B5:B21").SpecialCells(xlCellTypeBlanks).Count
End Sub


AW: Rangebereich auf leere Zellen untersuchen
22.11.2010 16:41:46
Holger
Hallo Hajo,
aha, ich habe das jetzt mal so gemacht:
Sub Leer
MsgBox Range("B339:P339").SpecialCells(xlCellTypeBlanks).Count
End Sub
Jetzt gibt er 15 zurück, also 15 Zellen sind leer, richtig?
Anzeige
Das stimmt nicht
22.11.2010 16:43:17
Holger
He Hajo,
weiß nicht was die 15 soll, denn es sind insgesamt 15 Zellen, nicht die leeren Zellen!?
Hab mich verrechnet, klappt super. DANKE DIR k.t.
22.11.2010 16:45:09
Holger
AW: SpecialCells hat ein Problem...
22.11.2010 23:56:38
Daniel
... es gibt einen Fehlerabbruch, wenn keine Leeren Zellen im genannten Bereich vorhanden sind.
alternativ kann man mit folgender Funktion feststellen, ob ein Zellbereich leere Zellen enthält:
= Range(xxx).Cells.Count - Worksheetfunction.CountA(Range(xxx))
Gruß, Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Rangebereich auf leere Zellen untersuchen in Excel


Schritt-für-Schritt-Anleitung

  1. Definiere deinen Range: Bestimme den Bereich, den du überprüfen möchtest. Im Beispiel von Holger ist das B10:M bis zur letzten Zelle in der Spalte.

    Dim lastCell As Long
    lastCell = Cells(Rows.Count, "B").End(xlUp).Row
    Dim myRange As Range
    Set myRange = Range("B10:M" & lastCell)
  2. Überprüfe auf leere Zellen: Um zu prüfen, ob bestimmte Zellen im definierten Bereich leer sind, kannst du die SpecialCells-Methode verwenden oder eine einfache Zählung durchführen.

    Dim leerZellen As Long
    leerZellen = myRange.SpecialCells(xlCellTypeBlanks).Count
  3. Aktion bei leeren Zellen: Wenn eine der Zellen C10, D10 oder M10 leer ist, kannst du entsprechende Aktionen durchführen.

    If leerZellen > 0 Then
       MsgBox "Eine oder mehrere Zellen sind leer!"
    End If

Häufige Fehler und Lösungen

  • Fehlerabbruch bei keine leeren Zellen: Wenn keine leeren Zellen im Bereich vorhanden sind, kann ein Fehler auftreten. Um dies zu vermeiden, solltest du den Code in einen On Error Resume Next Block einfügen.

    On Error Resume Next
    leerZellen = myRange.SpecialCells(xlCellTypeBlanks).Count
    On Error GoTo 0
  • Falsche Zählung: Wenn die Anzahl der leeren Zellen nicht korrekt erscheint, überprüfe den definierten Bereich. Achte darauf, dass du die richtigen Zellen ausgewählt hast.


Alternative Methoden

  • Verwendung von Formeln: Du kannst auch eine Excel-Formel verwenden, um zu überprüfen, ob leere Zellen vorhanden sind. Die folgende Formel zählt die leeren Zellen in einem Bereich:

    =COUNTBLANK(B10:M10)
  • Mit VBA zählen: Eine alternative VBA-Methode zur Zählung kann so aussehen:

    Dim countLeere As Long
    countLeere = Range("B10:M10").Cells.Count - WorksheetFunction.CountA(Range("B10:M10"))
    MsgBox countLeere & " Zellen sind leer."

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung dieser Methoden:

  • Beispiel 1: Überprüfe, ob die Zellen C10, D10 oder M10 leer sind und führe eine bestimmte Aktion durch.

    If IsEmpty(Range("C10").Value) Or IsEmpty(Range("D10").Value) Or IsEmpty(Range("M10").Value) Then
       MsgBox "Mindestens eine der Zellen C10, D10 oder M10 ist leer."
    End If
  • Beispiel 2: Verwende die SpecialCells-Methode, um den gesamten Bereich zu überprüfen.

    If myRange.SpecialCells(xlCellTypeBlanks).Count > 0 Then
       MsgBox "Es gibt leere Zellen im Bereich."
    End If

Tipps für Profis

  • Verwende Named Ranges: Für häufig verwendete Zellbereiche kann es hilfreich sein, benannte Bereiche zu verwenden. Das macht deinen Code übersichtlicher und einfacher zu warten.

  • Fehlerbehandlung optimieren: Implementiere eine umfassende Fehlerbehandlung, um sicherzustellen, dass dein Skript auch bei unerwarteten Eingaben stabil bleibt.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Bereiche gleichzeitig überprüfen? Du kannst die Union-Funktion verwenden, um mehrere Bereiche zu kombinieren:

Dim combinedRange As Range
Set combinedRange = Union(Range("C10"), Range("D10"), Range("M10"))

2. Was passiert, wenn mein Bereich keine leeren Zellen hat? Wenn dein Bereich keine leeren Zellen enthält, gibt die SpecialCells-Methode einen Fehler aus. Verwende On Error Resume Next, um diesen Fehler zu vermeiden.

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