HERBERS Excel-Forum - das Archiv
VBA - Wochentage, zählenwenn
Fred


Guten Morgen Excelaner,
ich habe eine Frage zu "zählenwenn" mit VBA,- wenn es um das zählen von Wochentagen geht.
Sheet "ListeSpiele" Spalte "A" ist mit Datumswerte gefüllt. Diese Werte im Format "TTTT",- also der 01.10.2019 wird als Dienstag angezeigt.
Ich möchte nun zB die Anzahl aller "Dienstage" in Spalte "A" ermitteln.
Worksheets("Legende1").Range("AM2") = Application.WorksheetFunction.CountIf(Sheets("ListeSpiele").Range("A2:A100"), "Dienstag")

klappt nicht.
Wie schreibe ich das richtig?
Gruß
Fred

AW: VBA - Wochentage, zählenwenn
Torsten

Hallo Fred,
Das geht so nicht, da ja nicht Dienstag in der Zelle steht, sondern das Datum. Das, was du oben in der Bearbeitungszeile siehst, sieht auch VBA. Wenn du das so machen willst, muesstest du mit einer Hilfsspalte arbeiten mit der Formel =TEXT(A2,"TTTT") und den Code dann auf dieser Spalte laufen lassen.
Gruss Torsten
AW: VBA - Wochentage, zählenwenn
Torsten

Hallo nochmal,
hier eine Loesung, wie du es trotzdem ohne Hilfspalte hinbekommst. Das waere fuer den Dienstag. Wenn du einen anderen Tag willst, musst du in dieser Zeile die Zahl aendern

If Weekday(rngZelle, vbMonday) = 2 Then

1 Montag, 2 Dienstag, 3 Mittwoch usw...

Sub test()
Dim rngZelle As Range, rngRange As Range
Dim lngZaehler As Long
lngZaehler = 0
Set rngRange = Sheets("ListeSpiele").Range("A2:A100")
For Each rngZelle In rngRange
If Weekday(rngZelle, vbMonday) = 2 Then
lngZaehler = lngZaehler + 1
End If
Next
Sheets("Legende1").Range("AM2") = lngZaehler
End Sub

Gruss Torsten
AW: VBA - Wochentage, zählenwenn
Fred

Hallo Torsten,
danke für die zwei Lösungsansätze,- wobei mir die Version mit der Hilfsspalte schon fast besser gefällt.
Danke für die Mühe!
Gruß
Fred
gerne...
Torsten