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

Forumthread: Formel ANZAHL u. ANZAHL2 als VBA

Formel ANZAHL u. ANZAHL2 als VBA
Richard
Hallo,
es gibt ja die netten Formeln "=ANZAHL2(B296:CW296)" und "=ANZAHL(B296:CW296)".
Ich hätt gern gewusst ob es dazu eine VBA-Code-Alternative gibt.
Ich weiß, dass ich diese Formel per Makro/Code in eine Zelle schreiben lassen könnte und anschließend das Ergebnis aus der Zelle auslesen und einer Variable zuordnen. Auf diese Weise arbeite ich schon länger doch langsam wird mir das zu albern.
Brauche den Wert für eine For-i-Schleife.
Mit freundlichen Grüßen
Richard E.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Formel ANZAHL u. ANZAHL2 als VBA
21.07.2009 09:25:26
ransi
HAllo
Versuch m al so:
MsgBox WorksheetFunction.Count(Range("B296:CW296"))
MsgBox WorksheetFunction.CountA(Range("B296:CW296"))

ransi
Anzeige
AW: Formel ANZAHL u. ANZAHL2 als VBA
21.07.2009 09:26:11
Tino
Hallo,
z. Bsp. so.
Sub Beispiel()
Dim Ergebnis As Long
Ergebnis = [=COUNTA(B296:CW296)]
'oder auch
Ergebnis = Evaluate("=COUNTA(B296:CW296)")
End Sub
Gruß Tino
AW: Formel ANZAHL u. ANZAHL2 als VBA
21.07.2009 09:30:12
Richard
Hallo,
vielen Dank! Hat bestens geklappt!
MfG
Richard E.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA-Alternativen für ANZAHL und ANZAHL2 in Excel


Schritt-für-Schritt-Anleitung

Um die Excel-Funktionen ANZAHL und ANZAHL2 in VBA zu verwenden, kannst du die WorksheetFunction-Objekte nutzen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (deine Datei)“, wähle „Einfügen“ und dann „Modul“.

  3. Schreibe deinen Code: Nutze den folgenden VBA-Code, um die ANZAHL und ANZAHL2 zu verwenden:

    Sub Beispiel()
       Dim anzahlErgebnis As Long
       Dim anzahl2Ergebnis As Long
    
       ' ANZAHL-Funktion
       anzahlErgebnis = WorksheetFunction.Count(Range("B296:CW296"))
    
       ' ANZAHL2-Funktion
       anzahl2Ergebnis = WorksheetFunction.CountA(Range("B296:CW296"))
    
       ' Ergebnisse anzeigen
       MsgBox "ANZAHL: " & anzahlErgebnis & vbCrLf & "ANZAHL2: " & anzahl2Ergebnis
    End Sub
  4. Führe das Makro aus: Klicke auf F5, um das Makro zu starten und die Ergebnisse in einer MessageBox anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: „Typ nicht definiert“

    • Lösung: Stelle sicher, dass du die richtigen Datentypen verwendest. In diesem Fall sollte Long für die Variablen anzahlErgebnis und anzahl2Ergebnis verwendet werden.
  • Fehler: „Bereich nicht gefunden“

    • Lösung: Überprüfe, ob der angegebene Bereich (B296:CW296) tatsächlich existiert und nicht leer ist.

Alternative Methoden

Wenn du die Excel VBA-Funktionen ANZAHL und ANZAHL2 nicht direkt verwenden möchtest, kannst du folgende Alternativen in Betracht ziehen:

  1. Evaluate-Methode:

    Sub BeispielEvaluate()
       Dim anzahlErgebnis As Long
       Dim anzahl2Ergebnis As Long
    
       anzahlErgebnis = Evaluate("=COUNT(B296:CW296)")
       anzahl2Ergebnis = Evaluate("=COUNTA(B296:CW296)")
    
       MsgBox "ANZAHL: " & anzahlErgebnis & vbCrLf & "ANZAHL2: " & anzahl2Ergebnis
    End Sub
  2. Direktes Schreiben in eine Zelle:

    • Du kannst auch die Formel in eine Zelle schreiben und das Ergebnis dann auslesen.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die anzahl und anzahl2 in verschiedenen Szenarien verwenden kannst:

  • Um die Anzahl der nicht leeren Zellen in einem Bereich zu zählen, verwende:

    Dim nichtLeereZellen As Long
    nichtLeereZellen = WorksheetFunction.CountA(Range("A1:A10"))
  • Um die Anzahl der Zellen mit Zahlen zu zählen, nutze:

    Dim zahlenZellen As Long
    zahlenZellen = WorksheetFunction.Count(Range("A1:A10"))

Tipps für Profis

  • Optimierung: Verwende Application.ScreenUpdating = False, um die Leistung deines VBA-Skripts zu verbessern, wenn du viele Berechnungen durchführst.

  • Fehlerbehandlung: Implementiere On Error Resume Next, um mögliche Fehler elegant zu handhaben und die Ausführung deines Codes fortzusetzen.

  • Modularer Code: Schreibe wiederverwendbare Funktionen, um die Wartbarkeit deines Codes zu erhöhen.


FAQ: Häufige Fragen

1. Wie funktioniert die ANZAHL-Funktion in VBA? Die ANZAHL-Funktion zählt die Zellen, die Zahlen enthalten. In VBA kannst du sie mit WorksheetFunction.Count verwenden.

2. Was ist der Unterschied zwischen ANZAHL und ANZAHL2? ANZAHL zählt nur die Zellen mit Zahlen, während ANZAHL2 auch leere Zellen zählt. In VBA ist ANZAHL2 durch WorksheetFunction.CountA zugänglich.

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