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

CountA mit variablen Range

Forumthread: CountA mit variablen Range

CountA mit variablen Range
27.07.2014 14:37:33
Chris

Hallo VBAler,
ich möchte mit COUNTA die Anzahl nicht leerer Zellen im Range F22:F mit variablem Ende zählen. Ich erhalte jedoch die Fehlermeldung Typen unverträglich...
Set adr5 = Worksheets("PDF").Range("F22:F" & Cells(Rows.Count, 1).End(xlUp).Row)
anzahlGESAMT = Application.WorksheetFunction.CountA(Range(Cells(22, 6), Cells(adr5, 6)))
Range("B14").value=anzahlGesamt
Hat jmd, eine Idee, was man ändern muss?
Chris

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: CountA mit variablen Range
27.07.2014 14:52:27
Daniel
Hi
mit Set adr5 = ... erstellst du ein Range-Objektvariable.
die kannst du auch gleich in der Berechnungsformel verwenden:
Set adr5 = Worksheets("PDF").Range("F22:F" & Cells(Rows.Count, 1).End(xlUp).Row)
anzahlGESAMT = Application.WorksheetFunction.CountA(adr5)
(vorausgesetzt, du willst die Anzahl im Blatt "PDF" ermitteln)
Gruß Daniel

Anzeige
AW: CountA mit variablen Range
27.07.2014 15:33:45
Chris
Hi Daniel,
danke läuft, logisch, da steht in adr5 range...
CHris

AW: CountA mit variablen Range
27.07.2014 16:40:28
Hajo_Zi
Hallo Chris,
Du hast aber beachtet das sich das Range auf Worksheets("PDF) bezieht und Cells auf die aktuelle Tabelle, was nicht das gleiche sein muss.

;

Forumthreads zu verwandten Themen

Anzeige

Infobox / Tutorial

CountA mit variablen Range in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Definiere das Range-Objekt: Zuerst musst du das Range-Objekt für den Bereich festlegen, den du zählen möchtest. In diesem Beispiel verwenden wir die Spalte F, beginnend bei Zeile 22:

    Set adr5 = Worksheets("PDF").Range("F22:F" & Cells(Rows.Count, 1).End(xlUp).Row)
  2. Zähle die nicht-leeren Zellen: Verwende die Application.WorksheetFunction.CountA-Funktion, um die Anzahl der nicht-leeren Zellen in diesem Range zu zählen:

    anzahlGESAMT = Application.WorksheetFunction.CountA(adr5)
  3. Gib das Ergebnis aus: Setze den gezählten Wert in eine Zelle deiner Wahl, beispielsweise in Zelle B14:

    Range("B14").Value = anzahlGESAMT

Häufige Fehler und Lösungen

  • Typen unverträglich: Dieser Fehler tritt auf, wenn du versuchst, ein Range-Objekt nicht korrekt zu verwenden. Stelle sicher, dass du das Range korrekt definierst und in der CountA-Funktion verwendest.

  • Bereichsreferenz: Achte darauf, dass du das Range-Objekt stets im gleichen Arbeitsblatt verwendest, in dem du die Cells-Funktion aufrufst. Wenn du Cells aus einem anderen Arbeitsblatt verwendest, kann es zu Verwirrungen kommen.


Alternative Methoden

Eine alternative Methode zur Zählung nicht-leerer Zellen in einem variablen Range könnte die Verwendung von CountIf sein, falls du spezifische Kriterien hast:

anzahlGESAMT = Application.WorksheetFunction.CountIf(adr5, "<>")

Diese Methode zählt alle Zellen, die nicht leer sind, und ist besonders nützlich, wenn du bestimmte Bedingungen einfügen möchtest.


Praktische Beispiele

Hier ist ein Beispiel, wie du die CountA-Funktion in einer Subroutine verwenden kannst:

Sub CountANotEmptyCells()
    Dim adr5 As Range
    Dim anzahlGESAMT As Long

    Set adr5 = Worksheets("PDF").Range("F22:F" & Cells(Rows.Count, 1).End(xlUp).Row)
    anzahlGESAMT = Application.WorksheetFunction.CountA(adr5)

    Range("B14").Value = anzahlGESAMT
End Sub

In diesem Beispiel wird die Anzahl der nicht-leeren Zellen in Spalte F gezählt und das Ergebnis in Zelle B14 ausgegeben.


Tipps für Profis

  • Verwende Long für große Datenmengen: Wenn du mit großen Datenmengen arbeitest, ist es ratsam, die Variablen als Long zu definieren, um Überlaufprobleme zu vermeiden.

  • Optimierung der Performance: Deaktiviere die Bildschirmaktualisierung während der Berechnung, um die Performance zu verbessern:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Benutze Debug.Print für die Fehlersuche: Wenn du die Werte während der Laufzeit überprüfen möchtest, kannst du Debug.Print verwenden, um die Ausgaben im Direktfenster anzuzeigen.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen CountA und Count in Excel?
CountA zählt alle nicht-leeren Zellen, während Count nur numerische Werte zählt.

2. Wie kann ich CountA mit Bedingungen verwenden?
Du kannst CountIf oder CountIfs verwenden, um nur die Zellen zu zählen, die bestimmten Kriterien entsprechen.

3. Funktioniert CountA auch in Excel für Mac?
Ja, die CountA-Funktion ist plattformübergreifend und funktioniert sowohl in Excel für Windows als auch für Mac.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige