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

Forumthread: If WorksheetFunction.CountIf mehrere Bedingungen

If WorksheetFunction.CountIf mehrere Bedingungen
05.12.2019 08:56:10
Tobias
Guten Morgen zusammen,
Ich benötige am Anfang meines Makros eine Abfrage ob in einer bestimmten Spalte Werte vorhanden sind. Wenn nicht solll er das Makro beenden
Dazu nutze ich folgenden Code:
If WorksheetFunction.CountIf(Range("D:D"), "3611") = 0 Then
Exit Sub
End If
Es soll nun aber nicht nur nach einer Bedinung sondern nach insgesamt 10 Bedingungen gesucht werden.
Die Bedinungen sind:
3611, TI01, TI02, TI06, TI08, TI09, TI10, TI11, T001, T002
Wie kannt ich das realisieren?

Mfg
Tobias

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If WorksheetFunction.CountIf mehrere Bedingungen
05.12.2019 09:00:36
Torsten
Hallo,
Mit

WorksheetFunction.CountIfs
Gruss Torsten
AW: If WorksheetFunction.CountIf mehrere Bedingungen
05.12.2019 09:28:14
Tobias
Hallo,
Und wie genau schreibe ich das dann?
Gruß Tobias
AW: If WorksheetFunction.CountIf mehrere Bedingungen
05.12.2019 10:00:26
Torsten
Fast genau so, aber mit mehreren Kriterien durch Komma getrennt:
If WorksheetFunction.CountIfs((Range("D:D"), "3611"),(Range("D:D"), "TI01"), usw) = 0 Then

Ich hoffe, dass ist was du moechtest.
Anzeige
AW: If WorksheetFunction.CountIf mehrere Bedingungen
05.12.2019 10:17:07
Tobias
Hallo,
ich kann dir leider nicht sagen ob sie funktioniert da bei mir die Fehlermeldung kommt dass hinter Range("D:D") eine Klammer fehlt. Hast du die Funktion selber getestet?
mfg Tobias
AW: If WorksheetFunction.CountIf mehrere Bedingungen
05.12.2019 10:17:19
Daniel
das kann so nicht funktionieren.
die Bedingungen im CountIFs sind immer UND-Verknüpft.
da kommt IMMER 0 raus.
Gruß Daniel
Anzeige
AW: If WorksheetFunction.CountIf mehrere Bedingungen
05.12.2019 10:11:20
Daniel
Hi
die frage ist, wann das Makro ausgeführt werden soll:
a) wenn alle 10 Werte in der Spalte vorkommen?
b) wenn mindestens einer dieser Werte einmal in der Spalte vorkommt?
Gruß Daniel
AW: If WorksheetFunction.CountIf mehrere Bedingungen
05.12.2019 10:19:49
Tobias
Hallo Daniel,
b)
Es soll das Makro ausgeführt werden wenn nur einer dieser Werte in der Spalte vorhanden ist.
mfg
Tobias
Anzeige
AW: If WorksheetFunction.CountIf mehrere Bedingungen
05.12.2019 12:07:36
Daniel
Hi
würde ich so machen:

dim x
for each x in Array("Werte1", "Wert2", "Wert3")
if Worksheetfunction.CountIf(Columns(…), x) > 0 then Exit for
Next
if not isempty(x)
hier der Code der laufen soll, wenn mindestens ein Prüfwert in der Spalte vorkommmt
Else
her der Code der laufen soll, wenn kein Prüfwert vorkommmt
End if
Gruß Daniel
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
Anzeige

Infobox / Tutorial

Bedingungen in Excel mit CountIf und CountIfs prüfen


Schritt-für-Schritt-Anleitung

Um in Excel VBA mit WorksheetFunction.CountIf und WorksheetFunction.CountIfs mehrere Bedingungen zu prüfen, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf einen Eintrag im Projektfenster und wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Dim x As Variant
    Dim gefunden As Boolean
    gefunden = False
    
    For Each x In Array("3611", "TI01", "TI02", "TI06", "TI08", "TI09", "TI10", "TI11", "T001", "T002")
       If Application.WorksheetFunction.CountIf(Range("D:D"), x) > 0 Then
           gefunden = True
           Exit For
       End If
    Next x
    
    If gefunden Then
       ' Hier der Code, der ausgeführt werden soll, wenn mindestens ein Prüfwert vorhanden ist
    Else
       ' Hier der Code, der ausgeführt werden soll, wenn kein Prüfwert vorhanden ist
    End If
  4. Speichere das Makro und führe es aus.

Häufige Fehler und Lösungen

  • Fehlermeldung: "Hinter Range("D:D") fehlt eine Klammer"
    Überprüfe, ob du die Syntax korrekt eingehalten hast. Achte darauf, dass du die Klammern richtig setzt, wie im obigen Beispiel.

  • Ergebnis immer 0
    Stelle sicher, dass die Werte, die du suchst, tatsächlich in der angegebenen Spalte vorhanden sind. Wenn du WorksheetFunction.CountIfs verwendest, beachte, dass diese Funktion alle Bedingungen mit UND verknüpft.


Alternative Methoden

Wenn du eine andere Methode zur Überprüfung von Bedingungen in Excel VBA nutzen möchtest, kannst du den CountIf-Ansatz in Kombination mit einer Schleife oder einer If-Bedingung verwenden. Hier ist ein Beispiel:

Dim i As Integer
Dim count As Integer
count = 0

For i = 1 To 10
    If Not IsEmpty(Sheet1.Cells(i, 4).Value) Then
        count = count + 1
    End If
Next i

If count > 0 Then
    ' Code, wenn Werte vorhanden sind
Else
    ' Code, wenn keine Werte vorhanden sind
End If

Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für WorksheetFunction.CountIf und WorksheetFunction.CountIfs:

  1. Zähle, wie oft ein bestimmter Wert in einer Liste vorkommt:

    Dim anzahl As Long
    anzahl = Application.WorksheetFunction.CountIf(Range("A1:A100"), "Suchwert")
  2. Zähle mit mehreren Bedingungen:

    Dim anzahl As Long
    anzahl = Application.WorksheetFunction.CountIfs(Range("A1:A100"), "Bedingung1", Range("B1:B100"), "Bedingung2")

Tipps für Profis

  • Nutze CountIfs für komplexere Abfragen: Wenn du mehrere Bedingungen hast, ist CountIfs die bessere Wahl, da sie mehrere Kriterien gleichzeitig prüfen kann.
  • Verwende Arrays für dynamische Abfragen: Wenn du mit einer großen Anzahl von Suchkriterien arbeitest, kann ein Array die Lesbarkeit und Wartbarkeit deines Codes verbessern.
  • Fehlerbehandlung einbauen: Baue Fehlerbehandlungsroutinen in dein Makro ein, um unerwartete Probleme elegant zu handhaben.

FAQ: Häufige Fragen

1. Wie verwende ich CountIf in einer Formel in Excel?
Du kannst CountIf direkt in einer Excel-Zelle verwenden, z.B.: =COUNTIF(D:D, "3611").

2. Was ist der Unterschied zwischen CountIf und CountIfs?
CountIf prüft ein einzelnes Kriterium, während CountIfs mehrere Bedingungen (UND-Verknüpfung) gleichzeitig berücksichtigt.

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