Zählen mit Bedingungen in Excel VBA: So geht's
Schritt-für-Schritt-Anleitung
- Öffne die VBA-Entwicklungsumgebung: Drücke
ALT + F11, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deine_Datei.xlsm)" und wähle "Einfügen" > "Modul".
- Kopiere den folgenden Code in das Modul:
Sub Search()
Dim Zähler As Long
Dim to_End As Long
Dim lngAnzahl As Long
Dim Suchbegriffe As Variant
Dim sb As Long
'--- Suchbegriffe auflisten
Suchbegriffe = Array("*ausrundung*", "*blend*") ' Hier kannst du deine Suchbegriffe anpassen
With Sheets("Datenblatt")
to_End = .Cells(.Rows.Count, 6).End(xlUp).Row
For Zähler = 2 To to_End
For sb = 0 To UBound(Suchbegriffe)
If LCase(.Cells(Zähler, 6).Value) Like Suchbegriffe(sb) Then
lngAnzahl = lngAnzahl + 1
Exit For ' Verhindert doppeltes Zählen
End If
Next sb
Next Zähler
Worksheets("Auswertung").Range("B4").Value = lngAnzahl
End With
End Sub
- Führe das Makro aus: Drücke
F5, um das Makro auszuführen. Achte darauf, dass die Daten im "Datenblatt" stehen und die Auswertung im "Auswertung"-Blatt erfolgen soll.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode zur Zählung von Zeilen mit Bedingungen wäre die Verwendung der COUNTIF-Funktion in Kombination mit VBA:
Dim lngAnzahl As Long
With Sheets("Liste")
For Zähler = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
lngAnzahl = lngAnzahl + Application.CountIf(Worksheets("Datenblatt").Columns(6), "*" & .Cells(Zähler, 1) & "*")
Next Zähler
End With
Diese Methode ist besonders nützlich, wenn du eine Liste von Suchbegriffen in einem separaten Blatt hast.
Praktische Beispiele
- Beispiel 1: Zähle die Anzahl der Zeilen, die "Ausrundung" oder "blend" enthalten.
- Beispiel 2: Dynamisches Einlesen von Suchbegriffen aus einem anderen Tabellenblatt:
Suchbegriffe = Sheets("Suchbegriffe").Range("A1:A10").Value ' Anpassung an den Bereich
Tipps für Profis
- Nutze Arrays, um die Performance zu steigern, besonders bei großen Datenmengen.
- Achte auf Klein- und Großschreibung: Verwende
LCase, um alle Eingaben in Kleinbuchstaben zu konvertieren und so die Suche zu erleichtern.
- Dynamische Listen: Erstelle eine dynamische Liste von Suchbegriffen, die sich automatisch anpasst, wenn du neue Begriffe hinzufügst oder entfernst.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Bedingungen hinzufügen?
Du kannst das Array mit weiteren Suchbegriffen erweitern, z.B. Suchbegriffe = Array("*ausrundung*", "*blend*", "*neuesWort*").
2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in Excel 2007 und neueren Versionen funktionieren. Stelle sicher, dass du die Makros aktiviert hast.
3. Kann ich das Ergebnis in einer anderen Zelle anzeigen lassen?
Ja, ändere einfach die Zeile Worksheets("Auswertung").Range("B4").Value = lngAnzahl auf die gewünschte Zielzelle.