In Excel Makro Tabellen Ende suchen

Paule

Level-1
Beiträge
3.058
Reaktionspunkte
869
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte in einem Makro herausfinden wie viele Einträge sich in einem bestimmten Bereich befinden.
Dazu gibt es ja in Excel selber die tolle Formel: =Anzahl2(A5:A100)

Jetzt habe ich ja die Möglichkeit einer Makroaufzeichnung, allerdings schaut der Code dann so aus:
Code:
    Range("Q28").Select
    ActiveCell.FormulaR1C1 = "=COUNTA(R[-19]C[-15]:R[13]C[-15])"
Das sind jetzt aber direkte Zellenbezüge und das will ich nicht.
Deshalb habe ich es so probiert, leider ohne Erfolg:
Code:
    Range("Q28").Select
    ActiveCell.FormulaR1C1 = "=COUNTA(B9:B100)"
Ich hoffe ihr könnt mir weiterhelfen
Danke
 
Syntax müsste wohl eher

MeinZaehlen = WorksheetFunction.CountA(Sheets(1).Range("A5:A100"))

oder halt über den UsedRange iterieren
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Paule,

Dein Makro hat aufgezeichnet wie Du die Formel in eine Zelle geschrieben hast - das Makro schreibt ebenfalls die Formel in eine Zelle, führt die Formel aber nicht aus.

Warum eigentlich ist der Titel Deines Threads "In Excel Makro Tabellen Ende suchen"?

Code:
[COLOR="#008000"]'Anzahl nicht leerer Zellen im gerade selektierten Bereich[/COLOR]
    Range("B1") = WorksheetFunction.CountA(Selection)

[COLOR="#008000"]'Anzahl nicht leerer Zellen im Bereich A5:A100[/COLOR]
    Range("B2") = WorksheetFunction.CountA(Range("A5:A100"))

[COLOR="#008000"]'letzte benutzte Zeile im Bereich A5:A100[/COLOR]
[COLOR="#008000"]'(es muß mindestens eine Zelle nicht leer sein)[/COLOR]
    Range("B3") = Range("A5:A100").Find("*", , , , xlByRows, xlPrevious).Row

Harald
 
Danke Jungs, das war's :grin:

Letztendlich habe ich diesen Befehl gebraucht:
Code:
[COLOR=#008000]'Anzahl nicht leerer Zellen im Bereich A5:A100[/COLOR]
    Range("B2") = WorksheetFunction.CountA(Range("A5:A100"))
Warum eigentlich ist der Titel Deines Threads "In Excel Makro Tabellen Ende suchen"?
Hallo Harald,
ich habe eine Tabelle die ich durch ein Makro unteranderem automatisch sortieren lassen will.
Dazu will ich aus einer Tabelle lesen wie viele Einträge vorhanden sind.
Ich hatte das jetzt kurzfristig mit einer For-Schleife gelöst, aber der Befehl "CountA" ist halt eleganter, der Code wird kürzer und das Makro schneller.
Der Befehl "Find" hätte sich da natürlich auch angeboten.

Vielen Dank Euch beiden für die Unterstützung
 
Falls man eigentlich die letzte benutzte Zelle eines Bereiches finden will, dann liefert eine Berechnung mit "CountA" nur dann die korrekte Zelle, wenn die Zellen lückenlos benutzt sind. Wenn dazwischen auch leere Zellen sein können, dann liefert nur "Find" das korrekte Ergebnis.

Harald
 
=ZÄHLENWENN(A1:A6;"") das erste ist der Bereich, das "" zählt alle Zellen die nicht leer sind

Gesendet von meinem MI 5 mit Tapatalk
 
=ZÄHLENWENN(A1:A6;"") das erste ist der Bereich, das "" zählt alle Zellen die nicht leer sind
Dein Beispiel zählt alle Zellen die leer sind.

=ZÄHLENWENN(A1:A6;"<>") zählt alle Zellen die nicht leer sind.
=Anzahl2(A1:A6) tut genau dasselbe: "Zählt die Anzahl nicht leerer Zellen in einem Bereich."

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Falls man eigentlich die letzte benutzte Zelle eines Bereiches finden will, dann liefert eine Berechnung mit "CountA" nur dann die korrekte Zelle, wenn die Zellen lückenlos benutzt sind. Wenn dazwischen auch leere Zellen sein können, dann liefert nur "Find" das korrekte Ergebnis.
Da hast du natürlich Recht.
Aber in meinem Fall schaue ich die Spalte an, in der garantiert immer etwas steht, wenn es noch mehr Informationen in dieser Zeile gibt.
Es ist quasi die ID Spalte. :D
 
Zurück
Oben