Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1416to1420
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

WorksheetFunction.CountA(...)

WorksheetFunction.CountA(...)
26.03.2015 16:18:30
Frederik
Hallo!
Ich versuche mittels der untenstehenden Formel die Anzahl der gefüllten bzw. non-Blank Zellen zu ermitteln.
Dim TodayD As Integer, TodayM As Integer, Workdays As Integer
TodayD = DatePart("d", Date)
TodayM = DatePart("m", Date)
Sheets("Database").Activate
Workdays = WorksheetFunction.CountA(Range(Cells(TodayM + 4, 1), Cells(TodayM + 4, 31)))
TodayD und -M geben jeweils Tag und Monat in Zahlenform aus.
Der Bereich A7:AE7 sollte in diesem Fall nach gefüllten Zellen durchsucht werden.
Leider wird mir durch Debug.Print immer nur 2 ausgegeben.
Ich habe schon mit Range() und Cells() rumgespielt. Aber auf den richtigen Wert kam ich nie - sollte 21 sein.
Was mache ich hier falsch?
Danke!
Fred

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nichts! Muss an Daten liegen! Gruß owT
26.03.2015 20:41:41
Luc:-?
:-?

AW: Nichts! Muss an Daten liegen! Gruß owT
27.03.2015 13:18:47
Frederik
Habe den Fehler gefunden:
Workdays = WorksheetFunction.CountA(Range(Cells(TodayM + 4, 1), Cells(TodayM + 4, 31)))

Vor

Range
muss noch das definiert

Worksheets("")
werden.
Also:

Workdays = WorksheetFunction.CountA(Worksheets("Testname").Range(Cells(TodayM + 4, 1), Cells(TodayM + 4, 31)))

Ansonsten wird immer das erste Tabellenblatt verwendet!

AW: Nichts! Muss an Daten liegen! Gruß owT
27.03.2015 13:31:46
Frederik
Hier ist doch etwas falsch.
Workdays = WorksheetFunction.CountA(Worksheets("Testname").Range(Cells(TodayM + 4, 1), Cells(TodayM + 4, 31)))
gibt mir einen Run-time error '1004': Aplication-defined or object-defined error aus.
Mit
Workdays = WorksheetFunction.CountA(Worksheets("Testname").Range("A7:AE7")
passiert das nicht und ich bekomme das richtige Ergebnis.

Anzeige
AW: Nichts! Muss an Daten liegen! Gruß owT
27.03.2015 13:43:41
Daniel
Hi
mal wieder der Klassiker:
das Worksheet muss auch vor den beiden Cells innerhalb der Range stehen!
(dafür darf es vor der Range entfallen, wenn der Code in einem allgemeinen Modul steht)
Excel setzt bei fehlendem Worksheet vor einem Range- oder Cells das aktive Blatt ein.
(in einem Tabellenblattmodul das Blatt des Moduls)
Das gilt auch, wenn das Range oder Cells innerhalb einer Funktion.
Gruß Daniel

AW: Nichts! Muss an Daten liegen! Gruß owT
27.03.2015 14:44:54
Frederik
Perfekt!
Ich danke dir Daniel!
Ein angenehmes Wochenende! :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge