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

Forumthread: VBA: Zählen ausgefüllter Zeilen

VBA: Zählen ausgefüllter Zeilen
02.11.2005 09:05:28
Holger
Hallo,
bin bei der Recherche auf nichts Passendes gestoßen.
Ich möchte in einem Register namens "Rohdaten" die Anzahl der ausgefüllten Zeilen über einen VBA Code errechnen lassen.
Wie geht das? Ich habe es nicht hingekriegt und weiß auch nicht weiter.
Gruss, Holger
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Zählen ausgefüllter Zeilen
02.11.2005 09:11:50
Matthias
Hallo Holger,
gibt es eine Spalte, die in der "ausgefüllten" Zeile immer gefüllt ist? Dann wurde es reichen, die Zellen dieser Spalte zu zählen:
MsgBox Worksheetfunction.CountA(Range("A:A"))
Gruß Matthias
AW: VBA: Zählen ausgefüllter Zeilen
02.11.2005 09:16:46
Holger
Ja, Spalte A ist z. B. immer gefüllt.
Jedoch möchte ich keine Meldung über eine MSG-Box erhalten, sondern den Wert in einem anderen VBA weiter verwenden. Ich muss also irgendwie den Verweis auf die zu zählenden Zeilen (Zellen in Spalte A) im Register "Rohdaten" hinkriegen.
Das ist mir immer noch schleierhaft.
Anzeige
AW: VBA: Zählen ausgefüllter Zeilen
02.11.2005 09:23:39
Matthias
Hallo Holger,
ich verstehe jetzt das Problem nicht, du kannst den Wert natürlich auch einer Variablen zuweisen.
Es geht auch als Funktion:


Function AnzahlZeilen(Blatt As Worksheet) As Long
AnzahlZeilen = Worksheetfunction.CountA(Blatt.Range("A:A"))
End Function


Sub DeinMakro()
Dim z As Long
z = AnzahlZeilen(Worksheets("Rohdaten"))
End Sub


Gruß Matthias
Anzeige
AW: VBA: Zählen ausgefüllter Zeilen
02.11.2005 09:37:20
Holger
Vielen Dank. So einfach erscheint es, wenn man die Lösung kennt.
Noch mal eine andere Frage, wo Du mir evtl. helfen kannst:
Wie kann ich in VBA alle Inhalte in einem Zellenbereich löschen? Die zu löschenden Zellen habe ich vorher identifiziert. Bitte nicht einen Bereich mit range definieren.
Anzeige
AW: VBA: Zählen ausgefüllter Zeilen
02.11.2005 09:39:10
Matthias
Hallo Holger,
Die zu löschenden Zellen habe ich vorher identifiziert. Bitte nicht einen Bereich mit range definieren.
?
Die Methode heißt ClearContents, aber ich darf ja nicht mit Range...
Gruß Matthias
AW: VBA: Zählen ausgefüllter Zeilen
02.11.2005 09:48:04
Holger
Hm, vielleicht habe ich mich nicht so ganz verständlich ausgedrückt.
Ich habe eine Tabelle mit ca. 100 Einträgen. Daraus sollen einige Zeilen ganz gelöscht werden, nämlich dann, wenn in der Spalte B bestimmte Nachnamen erscheinen, z. B. wenn in Spalte B, Zeile 35, der Name "Münte" erscheint, so soll die ganze Zeile gelöscht werden. (Münte fiel mir nur gerademal so ein).
Ich habe bereits herausgefunden, wie ich Zeilen löschen kann, die keine Inhalte haben. Darum hatte ich mir gedacht: wenn ich es schaffe, Zeilen zu leeren, dann kann ich auch das mir bereits bekannte Programm zur Löschung dieser Zeile laufen lassen. Eleganter wäre natürlich eine Lösung, die alles zusammen kann.
Hast Du eine Idee?
Anzeige
AW: VBA: Zählen ausgefüllter Zeilen
02.11.2005 09:58:15
Matthias
Hallo Holger,
die folgende Prozedur löscht alle Zeilen des aktiven Blattes, die in Spalte [Spalte] den Wert [N] stehen haben.

Sub LöschenEinträge(Spalte As Integer, N As String)
Dim lz As Long, i As Long
lz = Cells(Rows.Count, Spalte).End(xlUp).Row 'letzte Beschreibene Zeile ermitteln
For i = lz To 2 Step -1 '(bei Löschvorgängen in der Schleife immer von unten nach oben!)
If Cells(i, Spalte) = N Then Rows(i).Delete
Next i
End Sub

Gruß Matthias
Anzeige
AW: VBA: Zählen ausgefüllter Zeilen
02.11.2005 10:12:30
Holger
Supi!!!! Ist ja genau das, was ich brauchte.
Es ist nicht immer einfach, genau das auszudrücken, was man benötigt.
Vielen, vielen Dank.
AW: VBA: Zählen ausgefüllter Zeilen
02.11.2005 10:17:41
Matthias
Hallo Holger,
bevor du den Münte löschst, mach besser noch eine Sicherheitskopie ;-)
Gruß Matthias
AW: VBA: Zählen ausgefüllter Zeilen
02.11.2005 10:21:21
Holger
Zu spät. Es gibt zwar eine Sicherungskopie, die hat aber einen Schnauzer und ist auch nicht so alt :-))
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Ausgefüllte Zeilen in Excel mit VBA zählen


Schritt-für-Schritt-Anleitung

Um die Anzahl der ausgefüllten Zeilen in Excel mit VBA zu zählen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke im Menü auf Einfügen und wähle Modul.

  3. Füge den folgenden Code ein:

    Function AnzahlZeilen(Blatt As Worksheet) As Long
        AnzahlZeilen = WorksheetFunction.CountA(Blatt.Range("A:A"))
    End Function
    
    Sub DeinMakro()
        Dim z As Long
        z = AnzahlZeilen(Worksheets("Rohdaten"))
        ' Hier kannst du mit z weiterarbeiten
    End Sub
  4. Schließe den VBA-Editor: Drücke ALT + Q, um zum Excel-Arbeitsblatt zurückzukehren.

  5. Führe das Makro aus: Gehe zu Entwicklertools > Makros und wähle DeinMakro aus.

Das Makro zählt nun die ausgefüllten Zeilen in der Spalte A des Arbeitsblatts "Rohdaten".


Häufige Fehler und Lösungen

  • Fehler: "Sub oder Funktion nicht definiert"

    • Lösung: Stelle sicher, dass die Funktion AnzahlZeilen im gleichen Modul definiert ist wie das aufrufende Makro.
  • Fehler: Zählt auch leere Zellen

    • Lösung: Achte darauf, dass du die richtige Spalte angibst. In der Funktion wird die gesamte Spalte A gezählt. Wenn andere Spalten ebenfalls Daten enthalten, könnte dies zu falschen Ergebnissen führen.

Alternative Methoden

Wenn du die Anzahl der Zeilen in Excel zählen möchtest, ohne VBA zu verwenden, kannst du auch die Funktion ANZAHL oder ANZAHL2 direkt in einer Zelle verwenden:

  • Für ausgefüllte Zellen:
    =ANZAHL2(A:A)
  • Für nur die Zellen mit Zahlen:
    =ANZAHL(A:A)

Praktische Beispiele

Beispiel 1: Anzahl der Zeilen mit Inhalt zählen

Sub BeispielZeilenZählen()
    Dim anzahl As Long
    anzahl = AnzahlZeilen(Worksheets("Rohdaten"))
    MsgBox "Die Anzahl der ausgefüllten Zeilen beträgt: " & anzahl
End Sub

Beispiel 2: Zeilen zählen bis zur ersten leeren Zelle

Function ZeilenBisLeer(Blatt As Worksheet) As Long
    ZeilenBisLeer = Blatt.Cells(Rows.Count, 1).End(xlUp).Row
End Function

Tipps für Profis

  • Verwende CountIf: Wenn du nur bestimmte Bedingungen zählen möchtest, ist CountIf eine nützliche Funktion. Zum Beispiel:
    Dim anzahl As Long
    anzahl = Application.WorksheetFunction.CountIf(Worksheets("Rohdaten").Range("A:A"), "<>""")
  • Looping durch Zeilen: Wenn du spezifische Kriterien hast, die du überprüfen möchtest, kannst du auch eine Schleife verwenden, um durch die Zeilen zu iterieren und gezielt Zellen zu zählen.

FAQ: Häufige Fragen

1. Frage Wie kann ich die Anzahl der ausgefüllten Zellen in mehreren Spalten zählen?

Antwort Du kannst die Funktion CountA für jede Spalte separat aufrufen oder die Gesamtsumme aller Spalten bilden, um die ausgefüllten Zellen zu zählen.

2. Frage Kann ich die Anzahl der Zeilen auch in einer anderen Zelle ausgeben?

Antwort Ja, du kannst den Wert einfach einer Zelle zuweisen, anstatt ihn in einer MsgBox anzuzeigen:

Worksheets("Rohdaten").Range("B1").Value = AnzahlZeilen(Worksheets("Rohdaten"))

Mit diesen Schritten und Hinweisen kannst du erfolgreich die Anzahl der ausgefüllten Zeilen in Excel mithilfe von VBA zählen und anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige