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

Forumthread: Gefüllte Zeilen Zählen in Bereich

Gefüllte Zeilen Zählen in Bereich
18.06.2018 13:15:37
Haiko
Hallo liebe Leute,
Ich habe jetzt eine Ewigkeit gesucht aber kein Makro für eine ganz simple Problemstellung gefunden...
Ich möchte in meinen Spalten B bis F diejenigen Zeilen zählen, die gefüllt sind. Also nicht die letzte Zeile, auch nicht alle inklusive leerer Zeilen, sondern nur diejenigen, die einen Wert haben. Dabei sollte natürlich auch etwaige unsichtbare Formatierung außer Acht gelassen und nicht mitgezählt werden.
Könnte mir jemand weite?
Liebe Grüße,
Haiko
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gefüllte Zeilen Zählen in Bereich
18.06.2018 13:33:17
MCO
Hallo Haiko!
Etwa so?
Sub Zeilen_zählen()
On Error Resume Next
For Each clm In Range("B:F").Columns
Text = Text & Chr(13) & "Spalte " & clm.Column & ": " & clm.SpecialCells(xlConstants). _
Count & " Zellen"
Next clm
MsgBox Text
End Sub
Gruß, MCO
Anzeige
AW: Gefüllte Zeilen Zählen in Bereich
18.06.2018 13:37:29
Haiko
Hallo MCO,
Nein, so leider genau nicht. Es soll mir die befüllten Zeilen über alle Spalten hinweg anzeigen, nicht die in jeder Spalte separat. Trotzdem schonmal danke für den Versuch.
Gruß,
Haiko
AW: Gefüllte Zeilen Zählen in Bereich
19.06.2018 07:36:01
MCO
Dann eben so:
Sub Zeilen_zählen()
lz = ActiveSheet.UsedRange.Rows.Count
Set Rng = Range("A1:C" & lz) 'ggf anpassen
For Each rw In Rng.Rows
For Each clm In Rng.Columns
If Cells(rw.Row, clm.Column)  "" Then
counter = counter + 1
Cells(rw.Row, "D") = counter 'ggf ausblenden!!!
Exit For
End If
Next clm
Next rw
MsgBox counter & " befüllte Zeilen"
End Sub
Gruß, MCO
Anzeige
AW: Gefüllte Zeilen Zählen in Bereich
18.06.2018 13:44:00
Daniel
Hi
Dim AnzahlZeilen as long
with ActiveSheet.Usedrange
With .columns(.columns.count + 1)
.FormulaR1C1 = "=IF(CountA(RC2:RC6)=5,1,0)"
AnzahlZeilen = Worksheetfunction.Sum(.Cells)
.Clearcontents
end with
end with
in der Formel kannst du festlegen, wieviele Zellen in der Zeile gefüllt sein müssen, damit die Zeile als gefüllt gilt.
Gruß Daniel
Anzeige
AW: Gefüllte Zeilen Zählen in Bereich
18.06.2018 13:58:25
Haiko
Hallo Daniel,
Deine Lösung scheint nah ranzukommen funktioniert aber nicht (oder ich habe es nicht verstanden, wie es angepasst werden muss...)
Nochmal zur Klärung: Eine Zeile gilt als befüllt, wenn eine "Zelle" in der jeweiligen "Zeile" über die jeweiligen Spalten befüllt ist.
Beispiel:
ABCDE
1
2X
3 X
4 XX
5
6 X
4 Zeilen sind hier befüllt.
Gruß,
Haiko
Anzeige
AW: Gefüllte Zeilen Zählen in Bereich
18.06.2018 14:04:20
Daniel
ist doch ganz einfach, einfach einen anderen Wert angeben, ab dem die Zeile als gefüllt gilt:
.FormulaR1C1 = "=IF(CountA(RC2:RC6)>0,1,0)"
Gruß Daniel
AW: Gefüllte Zeilen Zählen in Bereich
18.06.2018 14:17:04
Haiko
Hallop Daniel,
Leider immer noch nicht klar...
Bei deiner Lösung zählt es auch die leeren Zeilen.
Gruß,
haiko
Anzeige
AW: Gefüllte Zeilen Zählen in Bereich
18.06.2018 15:59:58
Daniel
Hi
das zählt alle Zellen mit Inhalt.
nicht gezählt werden nur echte Leerzellen.
Eine Zelle mit einem Formelergebnis "" ist nicht leer, auch wenn sie Leer aussieht.
Wenn in den Zellen Formeln stehen, dann müsstest du mit CountIF zählen.
.FormulaR1C1 = "=IF(CountIF(RC2:RC6,""?*"")>0,1,0)"

wenn in den "nichtleeren" Zellen Zahlen stehen, müsstest du mit Count zählen, das zählt nur die Zahlen
.FormulaR1C1 = "=IF(Count(RC2:RC6)>0,1,0)"
wenn beides vorkommt, beide Varianten addieren:
.FormulaR1C1 = "=IF((Count(RC2:RC6)+CountIF(RC2:RC6,""?*""))>0,1,0)"

Gruß Daniel
Anzeige
AW: Gefüllte Zeilen Zählen in Bereich
18.06.2018 16:26:48
Haiko
Hallo Daniel und andere Mitleser,
Danke für deine/eure Mühe. Ich bekomme es jedoch leider nicht zum laufen. Um die Sache aufzuklären:
Ich habe die Datei mit dem Makro hier hochgeladen:
https://www.herber.de/bbs/user/122160.xlsm
Bei mir spuckt es nicht das gewünschte Ergebnis aus...In dem Beispiel müssten 10 gefüllte Zeilen ausgegeben werden. Falls das Ergebnis bei euch erscheint, ist vll etwas mit meinen Einstellungen falsch.
Liebe Grüße,
Haiko
Anzeige
AW: Gefüllte Zeilen Zählen in Bereich
18.06.2018 17:37:29
Daniel
Naja, du musst halt bedenken, dass du dein Code immer an deine Gegebenheiten anpassen musst, vorallem dann, wenn deine Problembeschreibung nicht zu deiner Echtdatei passt!
in deiner Anfrage sollten die Spalten B:F überprüft werden, dafür habe ich dann auch den Code geschrieben.
Jetzt in deinem Beispiel sind es plötzlich die Spalten A-C.
dass musst du natürlich auch im Code bzw in der Formel anpassen.
Da ich das nicht wissen kann, musst du das selber machen.
also mach aus RC2:RC6 (spalte 2-6, bzw B:F) dann entsprechend RC1:RC3 (Spalte 1-3 bzw A:C)
dann stimmt auch das Ergebnis.
Gruß Daniel
Anzeige
AW: so mE noch nicht eindeutig ...
18.06.2018 13:47:23
neopa
Hallo Haiko,
... sollen alle Zellen des Bereiches derjenigen Zeilen gefüllt sein oder reicht es aus, wenn bereits eine Zelle im einer Bereichszeile gefüllt ist?
Als Formellösung (Zeilenbereich entsprechend Erfordernis noch anpassen) für die gesuchte Zeilenanzahl:
- alle Zellen der jeweiligen Bereichszeilen müssen gefüllt sein:
=SUMME(INDEX((MMULT((B1:F99"")*1;{1;1;1;1;1})=5)*1;))
- mind. 1 Zelle ist je Zeile gefüllt:
=SUMME(INDEX((MMULT((B1:F99"")*1;{1;1;1;1;1})>0)*1;))
Gruß Werner
.. , - ...
Anzeige
AW: so mE noch nicht eindeutig ...
18.06.2018 15:00:46
Haiko
Hallo Werner,
Bräuchte VBA Code. Eine Zeile gilt als gefüllt, wenn eine Zelle innerhalb der Bereichszeile gefüllt ist.
Wäre wirklich froh um eine funktionierende Lösung.
Grüße
AW: noch nicht eindeutig, thread weiter offen ...
18.06.2018 15:38:20
neopa
Hallo Haiko,
... denn möglicherweise betrachtest Du auch Zellen die mit ="" gefüllt sind als leer? Denn anders kann ich Deinen letzten Beitrag auf Daniels Vorschlag nicht interpretieren. Oder?
Mit meinem Formelvorschlag:
=SUMME(INDEX((MMULT((B1:F99"")*1;{1;1;1;1;1})>0)*1;)) 
werden Zellen mit ="" als leer gezählt.
Aus VBA-Lösungen halte ich mich allerdings außen vor. Deshalb setze ich diesen thread wieder auf offen.
Gruß Werner
.. , - ...
Anzeige
AW: noch nicht eindeutig, thread weiter offen ...
18.06.2018 15:38:33
neopa
Hallo Haiko,
... denn möglicherweise betrachtest Du auch Zellen die mit ="" gefüllt sind als leer? Denn anders kann ich Deinen letzten Beitrag auf Daniels Vorschlag nicht interpretieren. Oder?
Mit meinem Formelvorschlag:
=SUMME(INDEX((MMULT((B1:F99"")*1;{1;1;1;1;1})>0)*1;)) 
werden Zellen mit ="" als leer gezählt.
Aus VBA-Lösungen halte ich mich allerdings außen vor. Deshalb setze ich diesen thread wieder auf offen.
Gruß Werner
.. , - ...
Anzeige
AW: sorry für Doppelpost, thread offen! owT
18.06.2018 15:40:02
neopa
Gruß Werner
.. , - ...
;

Forumthreads zu verwandten Themen

Anzeige
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

Gefüllte Zeilen Zählen in Bereich


Schritt-für-Schritt-Anleitung

Um in Excel die Anzahl der gefüllten Zeilen in einem bestimmten Bereich zu zählen, kannst Du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe auf das Blatt, wo Du die Zeilen zählen möchtest.

  2. Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Füge den folgenden Code ein:

    Sub Zeilen_zählen()
        Dim lz As Long
        Dim counter As Long
        Dim Rng As Range
    
        lz = ActiveSheet.UsedRange.Rows.Count
        Set Rng = Range("B1:F" & lz) ' Anpassen des Bereichs nach Bedarf
    
        For Each rw In Rng.Rows
            For Each clm In Rng.Columns
                If Cells(rw.Row, clm.Column) <> "" Then
                    counter = counter + 1
                    Exit For ' Beende die innere Schleife, wenn eine Zelle gefüllt ist
                End If
            Next clm
        Next rw
    
        MsgBox counter & " befüllte Zeilen"
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf „Ausführen“ klickst.

Mit diesem Makro zählst Du die gefüllten Zeilen in den Spalten B bis F in Deinem Arbeitsblatt.


Häufige Fehler und Lösungen

  • Fehler: "Typ nicht definiert"

    • Lösung: Stelle sicher, dass Du alle Variablen im Code richtig deklariert hast. Überprüfe die Schreibweise von Dim.
  • Fehler: Unbekannter Fehler beim Ausführen des Makros

    • Lösung: Achte darauf, dass der Bereich Range("B1:F" & lz) korrekt ist. Passe diesen Bereich an Deine Daten an.
  • Das Ergebnis ist nicht wie erwartet

    • Lösung: Überprüfe, ob die Zellen, die Du zählst, tatsächlich gefüllt sind. Unsichtbare Zeichen oder Formeln können die Zählung beeinflussen.

Alternative Methoden

Es gibt auch andere Methoden, um die Anzahl gefüllter Zellen zu zählen:

  1. Mit der Formel ANZAHL2:

    • Verwende die Formel =ANZAHL2(B1:F100) um die Anzahl der nicht-leeren Zellen in einem bestimmten Bereich zu zählen.
  2. Mit bedingter Zählung:

    • Du kannst die Formel =SUMMEPRODUKT((B1:F100<>"")*1) verwenden, um die Anzahl der gefüllten Zellen zu ermitteln.
  3. Zählen von Zeilen mit spezifischen Kriterien:

    • Verwende die Formel =ZÄHLENWENN(B1:F100, "<>"), um nur die Zellen mit Inhalt zu zählen.

Praktische Beispiele

  • Beispiel 1: Du hast Daten in den Zellen B1:F10. Mit der Formel =ANZAHL2(B1:F10) erhältst Du die Gesamtanzahl der gefüllten Zellen in diesem Bereich.

  • Beispiel 2: Wenn Du in einem bestimmten Bereich nur Zeilen zählen möchtest, die mindestens eine gefüllte Zelle haben, kannst Du das Makro aus Schritt 1 verwenden.

  • Beispiel 3: Wenn Du mit VBA arbeiten möchtest, um die Anzahl gefüllter Zellen zu zählen, kannst Du den VBA-Code anpassen, um spezifische Bedingungen zu berücksichtigen, beispielsweise nur Zahlen oder Text.


Tipps für Profis

  • Nutze die Option On Error Resume Next sparsam, um unerwartete Fehler zu vermeiden.
  • Achte darauf, die Bereiche in Deinen Formeln und Codes an Deine Daten anzupassen.
  • Verwende Kommentare im Code, um Deine Absichten klar zu machen, besonders wenn Du für andere oder für späteren Gebrauch schreibst.
  • Teste Deinen Code immer mit verschiedenen Datensätzen, um sicherzustellen, dass er unter verschiedenen Bedingungen funktioniert.

FAQ: Häufige Fragen

1. Wie zähle ich nur die Zeilen, wenn eine spezifische Zelle gefüllt ist? Du kannst den Code anpassen, um nur Zeilen zu zählen, wenn eine bestimmte Zelle in der Zeile gefüllt ist. Beispiel: If Cells(rw.Row, 2) <> "" Then (für Spalte B).

2. Zählt die Formel ANZAHL2 auch leere Zellen mit Formeln? Ja, ANZAHL2 zählt alle nicht-leeren Zellen, einschließlich derjenigen mit Formeln, die ein Ergebnis von "" haben.

3. Kann ich das Makro so anpassen, dass es automatisch bei Änderungen ausgeführt wird? Ja, Du kannst das Makro an das Worksheet_Change-Ereignis binden, um es automatisch auszuführen, wenn Du Änderungen an den Zellen vornimmst.

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