Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

WorksheetFunction CountIf

Forumthread: WorksheetFunction CountIf

WorksheetFunction CountIf
17.02.2007 23:17:00
Sonnenpeter
Hallo zusammen,
ich habe folgendes Problem.
Der Makrorecorder zeichnet folgendes auf:
ActiveCell.FormulaR1C1 = "=COUNTIF(R[28]C[1]:R[400]C[1],"""")"
In VBA wird aber "COUNTIF" automatisch in CountIf abgeändert

Sub Test ()
Set myRange = Worksheets("Projektliste").Range("B9:B408")
answer = Application.WorksheetFunction.CountIf(myRange)
MsgBox answer
End Sub

Beim ablaufen des Makros erhalt ich den Fehler "Fehler beim Kompilieren"?
Was kann ich tun?
Gruß Sonnenpeter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: WorksheetFunction CountIf
17.02.2007 23:22:00
Sonnenpeter
Hallo nochmal,
Hatte da noch einen Fehler drin.

Sub Test()
Set myRange = Worksheets("Projektliste").Range("B9:B408")
answer = Application.WorksheetFunction.CountIf(myRange, "" <> "")
MsgBox answer
End Sub

Jetzt erhalte ich allerdings den Wert 0, müsste aber 47 sein.
Gruß Sonnenpeter
Anzeige
AW: WorksheetFunction CountIf
17.02.2007 23:56:00
Kurt
Hi,
ZÄHLENWENN
Zählt die nicht leeren Zellen eines Bereichs, deren Inhalte mit den Suchkriterien übereinstimmen.
mfg Kurt
AW: WorksheetFunction CountIf
18.02.2007 08:59:00
Ramses
Hallo
Da hast du ein Problem mit den Anführungszeichen :-)

Sub Test_Count()
Dim myRange As Range
Dim Answer As Integer
Set myRange = Worksheets("Projektliste").Range("B9:B408")
Answer = Application.WorksheetFunction.CountIf(myRange, "<> """)
MsgBox Answer
End Sub

Entgegen einer Formel in denen Anführungszeichen vorkommen, müssen bei Funktionen die direkt in VBA ausgewertet werden die Anführungszeichen nicht doppelt ausgeführt werden.
Gruss Rainer
Anzeige
AW: WorksheetFunction CountIf
18.02.2007 11:04:00
Sonnenpeter
Hallo Rainer,
Danke für die Hilfe, wie immer kleine Ursache große Wirkung.
Habe noch mal abgewandelt in:

Sub Test_Count()
Dim myRange As Range
Dim Answer As Integer
Set myRange = Worksheets("Projektliste").Range("B9:B408")
Answer = Application.WorksheetFunction.CountIf(myRange, "> """)
MsgBox Answer
End Sub

Jetzt stimmt das Ergenis.
In Deiner Variante werden die leeren Zellen gezählt.
Gruß Sonnenpeter
Anzeige
AW: WorksheetFunction CountIf
18.02.2007 13:10:00
Ramses
Hallo
"...In Deiner Variante werden die leeren Zellen gezählt...."
Stimmt nicht.
Der Parameter lautet " <> "" ",... oder übersetzt: Zähle alle Zellen die nicht leer sind.
Mit deiner Anweisung prüftst du " > "" ",... oder übersetzt alle Zellen die Text enthalten !!!
Glaub mir einfach :-)
Gruss Rainer
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zählen mit COUNTIF in VBA: So funktioniert's


Schritt-für-Schritt-Anleitung

Um die Funktion COUNTIF in VBA zu verwenden, kannst du die Application.WorksheetFunction.CountIf Methode nutzen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub Test_Count()
    Dim myRange As Range
    Dim Answer As Integer
    Set myRange = Worksheets("Projektliste").Range("B9:B408")
    Answer = Application.WorksheetFunction.CountIf(myRange, "<> """)
    MsgBox Answer
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus.

In diesem Beispiel zählt die Funktion alle nicht-leeren Zellen im angegebenen Bereich.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist, dass du die Anführungszeichen in der COUNTIF-Funktion nicht korrekt verwendest. Hier sind einige Lösungen:

  • Fehler beim Kompilieren: Achte darauf, dass der Bereich korrekt gesetzt ist und die Funktion richtig aufgerufen wird. Beispielsweise kann ein Fehler durch falsche Anführungszeichen entstehen.
  • Falscher Rückgabewert: Wenn du einen unerwarteten Wert (z.B. 0) erhältst, überprüfe, ob das Kriterium korrekt formuliert ist. Verwende "<>" für nicht-leere Zellen und ">" für Zellen mit Text.

Hier ein korrigiertes Beispiel, falls du Anführungszeichen in der Bedingung verwenden musst:

Answer = Application.WorksheetFunction.CountIf(myRange, "<> """)

Alternative Methoden

Es gibt mehrere Möglichkeiten, um die Zählung in Excel durchzuführen:

  1. Verwendung von COUNTIFS für mehrere Kriterien:

    Answer = Application.WorksheetFunction.CountIfs(myRange, "<>", myRange, "B")
  2. Verwendung der Excel-Formel direkt in einer Zelle: Du kannst auch die Formel direkt in eine Zelle eingeben:

    =COUNTIF(B9:B408, "<>")
  3. Verwendung der Application.CountIf Methode:

    Answer = Application.CountIf(myRange, "<>")

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von COUNTIF in VBA:

  • Zählen der nicht-leeren Zellen:

    Answer = Application.WorksheetFunction.CountIf(myRange, "<>")
  • Zählen der Zellen mit einem bestimmten Text:

    Answer = Application.WorksheetFunction.CountIf(myRange, "Text")
  • Zählen der Zellen, die größer als ein Wert sind:

    Answer = Application.WorksheetFunction.CountIf(myRange, ">10")

Jedes dieser Beispiele verwendet die vba countif Funktionalität, um spezifische Daten zu aggregieren.


Tipps für Profis

  • Nutze COUNTIFS, wenn du mehrere Bedingungen überprüfen musst. Das kann dir helfen, präzisere Analysen durchzuführen.
  • Achte auf die Verwendung von Anführungszeichen in VBA. Sie sollten nicht doppelt gesetzt werden, wie in Excel-Formeln.
  • Teste deine VBA-Skripte regelmäßig, um sicherzustellen, dass sie wie erwartet funktionieren.

FAQ: Häufige Fragen

1. Wie kann ich COUNTIF in einer Schleife verwenden?
Du kannst COUNTIF innerhalb einer Schleife verwenden, um über mehrere Bereiche zu iterieren. Stelle sicher, dass du die Range entsprechend anpasst.

2. Was ist der Unterschied zwischen COUNTIF und COUNTIFS?
COUNTIF zählt die Zellen, die einem einzigen Kriterium entsprechen, während COUNTIFS mehrere Kriterien gleichzeitig berücksichtigt.

3. Warum erhalte ich einen Fehler, wenn ich COUNTIF in VBA verwende?
Prüfe die Syntax deiner Funktion und stelle sicher, dass der Bereich korrekt definiert ist. Achte auch auf die korrekte Verwendung von Anführungszeichen.

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