Office-Fragen.de
Suche nach Datum erfolglos - Druckversion

+- Office-Fragen.de (https://office-fragen.de)
+-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html)
+--- Forum: Excel (https://office-fragen.de/forum-2.html)
+--- Thema: Suche nach Datum erfolglos (/thread-28020.html)



Suche nach Datum erfolglos - StefKe - 25.04.2022

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


RE: Suche nach Datum erfolglos - AlterDresdner - 25.04.2022

Hallo Stefan,
ergänze mal bei .Find den Parameter lookin:=xlvalues, vielleicht hilfts.


RE: Suche nach Datum erfolglos - StefKe - 25.04.2022

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


RE: Suche nach Datum erfolglos - StefKe - 25.04.2022

LookIn:=xlFormulas
ist die Lösung, na tolll......

Stefan


RE: Suche nach Datum erfolglos - RPP63 - 25.04.2022

(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!