Microsoft Excel

Herbers Excel/VBA-Archiv

VBA .find mit Formeln als Suchkr.

Betrifft: VBA .find mit Formeln als Suchkr. von: Gert
Geschrieben am: 06.10.2020 13:25:53

Hallo VBA-Gemeinde,

ich habe folgende Zeile in meinem Macro mit dem ich nach einer Spalte suche, in der ein Datumscode steht.
Set varM = Worksheets(DestinWSh).RowS(7).Find(what:=Range("E6"), lookat:=xlWhole)~f~

E6 ist der Wert aus der Formel ~f~=YEAR(Main!C2) & TEXT(MONTH(Main!C2);"0#") Beispiel > 202009~f~

in Zeile 7 werden die Codes des Datums wie folgt erzeugt:<br>
~f~=YEAR(EOMONTH($E$4;S7)) & TEXT(MONTH(EOMONTH($E$4;S7));"0#") Beispiel > 202009

Lass ich das Makro laufen, wird keine Übereinstimmung gefunden.
Trage ich 202009 manuell in irgendeine Zelle der Zeile 7 ein, wird eine Übereinstimmung gefunden.

Kann mir bitte jemand einen Hinweis geben, wo der Fehler steckt?
Vielen Dank, freundliche Grüße & stay healthy
Gert

Betrifft: AW: VBA .find mit Formeln als Suchkr.
von: ralf_b
Geschrieben am: 06.10.2020 13:31:22

manchmal hilft schon wenn man Range("E6").Value da dran hängt. Ich denke diene Datentypen stimmen einfach nicht. z.b. text oder date usw.

Betrifft: AW: VBA .find mit Formeln als Suchkr.
von: Gert
Geschrieben am: 06.10.2020 13:38:41

Hallo Ralf,
Range("E6").value und .text hatte ich schon ausprobiert.
Die jeweiligen Zellen sind als "general" formatiert. Funktioniert leider trotzdem nicht.
Gert

Betrifft: AW: VBA .find mit Formeln als Suchkr.
von: Werner
Geschrieben am: 06.10.2020 13:47:03

Hallo,

vielleicht fehlender Parameter?
Set varM = Worksheets(DestinWSh).Rows(7).Find(what:=Range("E6"), LookIn:=xlValues, lookat:=xlWhole)
Gruß Werner

Betrifft: AW: DANKE > VBA .find mit Formeln als Suchkr.
von: Gert
Geschrieben am: 06.10.2020 13:52:02

Hallo Werner,
nicht nur "vielleicht" ! Das war die Lösung.
Vielen Dank für die rasche Hilfe!
Gert

Betrifft: AW: DANKE > VBA .find mit Formeln als Suchkr.
von: Werner
Geschrieben am: 06.10.2020 13:54:30

Hallo,

bei Find immer daran denken:

Excel speichert die Suchparameter (z.B. auch bei "händischer" Suche) immer ab. Sprich: hast du bei der letzten Suche in Formeln gesucht, dann wird das so abgespeichert. Gibst du dann nicht explizit den Suchparameter an, dann greift Excel auf die Einstellungen der letzten Suche zurück, was dann, wie du jetzt ja gesehen hast, zu den entsprechenden Problemen führen kann.

Gruß Werner

Betrifft: AW: VBA .find mit Formeln als Suchkr.
von: Gert
Geschrieben am: 06.10.2020 13:41:55

Hallo Ralf,
Range("E6").value und .text hatte ich schon ausprobiert.
Die jeweiligen Zellen sind als "general" formatiert. Funktioniert leider trotzdem nicht.
Gert