Hallo!
Ich möchte gerne folgende Formel in VBA abgebildet haben, aber leider kommt immer über VBA als Ergebnis 0 raus, mit der Formel kommt aber richtiger Weise was anderes raus.
Hier die Formel:
Code:
=ZÄHLENWENN(I:I;""&DATUM(JAHR(HEUTE());MONAT(HEUTE());TAG(HEUTE())))
Hier der VBA Code:
Code:
Application.WorksheetFunction.CountIf(Sheets("Panels").Range("I:I"), "" & DateSerial(Year(Now()), Month(Now()), Day(Now())))
Ich hoffe, dass mir jemand helfen kann.
LG
Thomas
Hallo Thomas,
verdopple mal die beiden Anführungszeichen.
Gruß Uwe
Hallo,
es soll also im Tabellenblatt "Panels" in Spalte I nach Leerzeichen&heutiges Datum gezählt werden?
Hier mein Vorschlag:
Code:
Sub ZähleHeutigesDatum()
Dim ws As Worksheet
Dim letzteZeile As Long
Dim datum As Date
Dim zähler As Integer
' Blatt "Panels" festlegen
Set ws = ThisWorkbook.Sheets("Panels")
' Letzte Zeile in Spalte I ermitteln
letzteZeile = ws.Cells(ws.Rows.Count, "I").End(xlUp).Row
' Heutiges Datum festlegen
datum = Date
' Zähler zurücksetzen
zähler = 0
' Schleife über alle Zellen in Spalte I
Dim i As Long
For i = 1 To letzteZeile
' Überprüfen, ob die Zelle den gesuchten Text enthält
If InStr(1, ws.Cells(i, "I").Value, " " & datum) > 0 Then
zähler = zähler + 1
End If
Next i
' Ergebnis anzeigen
MsgBox "Das Datum kommt " & zähler & " Mal in Spalte I vor."
End Sub
Moin,
Eine Schleife zum ersetzen von Zählenwenn ist ein wenig umständlich. Sofern in deiner Spalte echte Datumswerte stehen und keine Texte, musst du nur auf die implizite Typumwandlung durch ""& verzichten:
Code:
?WorksheetFunction.CountIf(ActiveSheet.Columns(1), DateSerial(2023,1,15))
Viele Grüße
derHöpp
Hallo!
Danke für eure Hilfe. Ich habs gerade herausgefunden, die zwei Anführungszeichen waren der Fehler, hier der richtige Code:
Code:
Application.WorksheetFunction.CountIf(Sheets("Panels").Range("I:I"), DateSerial(Year(Now()), Month(Now()), Day(Now())))
Moin nochmal,
Dein DateSerial-Gedöns mit Now() kannst du einfach durch Date() ersetzen, das gibt dir auch das heutige Datum zurück.
Viele Grüße
derHöpp
... was übrigens auch für die Excel-Formel gilt:
=""&HEUTE()
statt
=""&DATUM(JAHR(HEUTE());MONAT(HEUTE());TAG(HEUTE()))
reicht völlig aus.
Wahrscheinlich kann man sogar noch auf das ""& verzichten, wenn man die Zelle mit dem richtigen Zahlenformat darstellen lässt.