Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Suche nach Datum erfolglos
#1
Hallo, aus einer csv-Datei wird ein Datum ausgelesen und in der Excel-Datei, Spalte A auf Vorkommen gesucht:

Code:
Function DatumFinden(strDateTime)
    Dim rngFind As Range
    Dim lngLastRow As Long
    Dim Jahr$, Monat$, Tag$, Stunde$, Minute$, Sekunde$
    Dim datDatum As Date, datTime As Date, FirstDate As Date, SearchDate As Date
    Jahr = Mid(strDateTime, 85, 4)
    Monat = Mid(strDateTime, 90, 2)
    Tag = Mid(strDateTime, 93, 2)
    Stunde = Mid(strDateTime, 96, 2) + 2
    Minute = Mid(strDateTime, 99, 2)
    Sekunde = Mid(strDateTime, 102, 2)
    'Datum und Zeit aus csv:
    datDatum = DateSerial(Jahr, Monat, Tag)
    datTime = TimeSerial(Stunde, Minute, Sekunde)
    SearchDate = Format(datDatum + datTime, "DD.MM.YYYY hh:mm:ss")
   
'der Vergleich ist erfolgreich:
    Debug.Print (SearchDate)
    Debug.Print (Cells(9305, 1).Value)
    If SearchDate = Cells(9305, 1).Value Then Debug.Print ("Treffer")
   
    'Datum und Zeit aus xls:
    Stop
    lngLastRow = Range("A" & Rows.Count).End(xlUp).Row
   
'die Suche bleibt erfolglos:
    Set rngFind = Range("A2:A" & lngLastRow).Find(what:=SearchDate)
'Suche erfolgreich:
    Set rngFind = Range("A2:A" & lngLastRow).Find(what:=Cells(9305, 1))
   
    If rngFind Is Nothing Then
        DatumFinden = lngLastRow + 1
        Exit Function
    End If
    DatumFinden = rngFind.Row
End Function
Das gesuchte Datum ist in A9305. Der Vergleich von SearchDate mit dem Zellwert ist auch erfolgreich.
Die Suche nach dem Zellwert ist auch erfolgreich, aber die Suche nach SearchDate ergibt Nothing - warum das? Wo kann der Fehler liegen?

Danke
Stefan
Zitieren
#2
Hallo Stefan,
ergänze mal bei .Find den Parameter lookin:=xlvalues, vielleicht hilfts.
Gruß der AlteDresdner (Win11, Off2021)
Zitieren
#3
Nein, das ist leider auch keine Lösung. Die Ursache liegt irgendwo im Format....

Lösung:

anlegen einer Hilfspalte: =A2*1 und die Hilfspalte als Zahl mit 10 Nachkommastellen formatiieren
im Code in der Hilfspalte nach cDate(SearchDate)*1 suchen und funzt!

... aber das als Lösung zu bezeichnen? - da rollen sich meine Zehennägel :-)

Stefan
Zitieren
#4
LookIn:=xlFormulas
ist die Lösung, na tolll......

Stefan
Zitieren
#5
(25.04.2022, 17:23)StefKe schrieb: na tolll......

Wenn man es dann weiß, ist es doch ganz einfach, oder?  Tongue

Ich nutze übrigens für so etwas Application.Match() oder WorksheetFunction.Match()
Dort rechnet VBA mit den seriellen Zahlen des Datums.
Ist sehr viel zuverlässiger!
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions