Registriert seit: 08.02.2017
Version(en): 2016
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
Excel Version 2016
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Thomas,
verdopple mal die beiden Anführungszeichen.
Gruß Uwe
Registriert seit: 22.07.2021
Version(en): Excel 365
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
Registriert seit: 26.09.2022
Version(en): 2019
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
Registriert seit: 08.02.2017
Version(en): 2016
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())))
Excel Version 2016
Registriert seit: 26.09.2022
Version(en): 2019
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
Registriert seit: 28.08.2022
Version(en): 365
... 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.
Gruß,
Helmut
Win10 - Office365 / MacOS - Office365
Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:1 Nutzer sagt Danke an HKindler für diesen Beitrag 28
• derHoepp