Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1956to1960
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Find(What:

VBA Find(What:
02.01.2024 15:41:32
Joschi Witchcraft
Hallo Forum.

Zuerst allen ein "gutes neues Jahr".

Ich erhalte externe Daten, in denen jeweils ein Datum im Format "MM.JJJJ" enthanden ist.

In meiner Tabelle gibt es für jeden Monat eine eigene Zeile. Fehlt die entsprechende Zeile, so wird sie eingefügt.

Problem: die Infos aus den externen Daten sollen in die Zeile übernommen werden, bei denen in einer Spalte (2) ein Datum im Format "01.MM.JJJJ" vorhanden ist.

Zum Suchen benutze ich wieder einen entsprechend zusammengesetztes Datum. Doch die passende Zeile wird nicht gefunden.

Ich habe zusätzlich einen String in einer anderen Zeile eingefügt. Der wird mit einem vergleichbaren Befehl gefunden.

Mein Testcode: https://www.herber.de/bbs/user/165782.txt

Was ist an meinem Code falsch? Wie kann ich das Problem lösen?

Gruß Joschi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Find(What:
02.01.2024 16:42:43
Piet
Hallo Joschi

dein Suchbereich ist sehr klein, nur wenige Zeilen. Mit Datum hat die Find Methode oft Probleme.
Wenn das Datum Format nicht 1:1 übereinstimmt, wird das Datum im Regelfall nicht gefunden.

Ich verwende lieber die For Next Schleife, aus gutem Grund. Da kann ich besser tricksen. For Each AC in Range(xxx)
Ich kann z.B. AC auf String setzen, und durchsuche alle Zellen nach dem Datum als String. Hört sich komich an, klappt aber.

mfg Piet
AW: VBA Find(What:
02.01.2024 16:52:56
Joschi Witchcraft
Hallo Piet.

Vielen Dank für Deine Antwort.

Die Anzahl der Zeilen ist lediglich in meinem Testcode übersichtlich. Im "Normalbetrieb" sind das wesentlich mehr Zeilen. Deshalb hatte ich die Option "Loop" ausgeschlossen.

Das, was in meinen Testcode bereitgestellt wurde, ist nur der Suchteil., weil nur in diesen wenigen Code-Zeilen das Problem enthalten ist.

gruß Joschi
Anzeige
AW: VBA Find(What:
02.01.2024 17:39:44
Piet
Hallo Joschi

mir sind noch drei Lösungsmöglichkeiten bekannt. Vielleicht helfen sie dir weiter.
If CDate(Find) = CDate(Vergleich) Then -- oder If CLng(Find) = CLng(Vergleich) then
dritte Möglichkeit: -- If Abs(FilDate - vFilDate) 0.000025 Then - wg. Fliesskommazahl

Vielleicht hilft dir das weiter, einfach alles mal ausprobieren. Versuch macht klug.

mfg Piet
AW: VBA Find(What:
02.01.2024 17:57:19
Crazy Tom
moin

wenn ich deine Codezeile so ändere findet er das Datum

Set Finden = Range(Cells(1, 2), Cells(9, 2)).Find(What:=VDate, LookIn:=xlFormulas, LookAt:=xlWhole)


mfg Tom
Anzeige
AW: VBA Find(What:
03.01.2024 07:37:53
Joschi Witchcraft
Guten Morgen, Tom.

Bin erst heute dazu gekommen, Deinen Vorschlag zu testen. Ich bin begeistert. Mein Problem ist damit gelöst.

Vielen Dank.

Gruß Joschi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige