Microsoft Excel

Herbers Excel/VBA-Archiv

mit Find (VBA) nach Datum suchen

Betrifft: mit Find (VBA) nach Datum suchen von: Werner Koch
Geschrieben am: 13.08.2008 23:54:04

Hi!

Ich habe folgendes Problem:

Ich habe eine Spalte mit Datumseinträgen (z.B.:13.04.1953, 17.12.1970, ...)
Suche ich mit
ThisWorkbook.Worksheets("AUSWAHL").Columns("E:E").Find(What:="17")
bekomme ich ein Ergebnis

ThisWorkbook.Worksheets("AUSWAHL").Columns("E:E").Find(What:="1970")
funkioniert auch

ThisWorkbook.Worksheets("AUSWAHL").Columns("E:E").Find(What:="17.12")
funktioniert nicht?
Gibt es für die Suche nach Datumseinträgen eine spezielle Formatierung?

Interessanterweise kann ich in der Arbeitsmappe durchaus mit der Suchfunktion (Strg-F) nach "17.12" Suchen und bekomme ein Ergebnis.

Weiters, wenn ich mit der Makroaufzeichnung oben genannte Strg-F Suche aufzeichne bekomme ich ein Makro mit einem Suchstring wie in der letzten Find-Anweisung, die Ausführung des aufgezeichneten Makros liefert jedoch kein Ergebnis. :-(

Kennt jemand Abhilfe?

mfg

  

Betrifft: AW: mit Find (VBA) nach Datum suchen von: bst
Geschrieben am: 14.08.2008 08:28:20

Morgen,

VBA spricht Englisch, nimm What:="12/17".

Außerdem solltest Du immer zu mindest die Paramater LookIn und LookAt benutzen, siehe VBA-Hilfe zu .Find unter Hinweise.

cu, Bernd


  

Betrifft: AW: mit Find (VBA) nach Datum suchen von: Werner Koch
Geschrieben am: 14.08.2008 09:17:44

Hi!

Besten Dank so funktioniert es.

Gibt es eine Möglichkeit eine Datumseingabe wie bei uns üblich(12.6.1968, 12.7, 12.12., ... in Englisches-Format zu konvertieren?
"." in "/" zu konvertieren wäre ja noch einfach aber auch noch Tag und Monat zu vertauschen?

mfg


  

Betrifft: AW: mit Find (VBA) nach Datum suchen von: bst
Geschrieben am: 14.08.2008 09:22:19

Hi,

sowas?

Option Explicit

Sub x()
    Dim d As Date
    d = Date
    Debug.Print d, Month(d) & "/" & Day(d) & "/" & Year(d)
End Sub


cu, Bernd


  

Betrifft: AW: Datum konvertieren in MM/DD/YYYY von: Erich G.
Geschrieben am: 14.08.2008 09:47:49

Hi,
noch mehr Möglichkeiten:

Sub y()
    Dim d As Date
    d = Date
    Debug.Print d, Month(d) & "/" & Day(d) & "/" & Year(d)
    Debug.Print d, Format(d, "M\/D\/YYYY")
    Debug.Print d, Format(d, "MM\/DD\/YYYY")
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: mit Find (VBA) nach Datum suchen von: Luschi
Geschrieben am: 14.08.2008 09:32:32

Hallo Bernd,

danke für die Info, erspare mir gerade eigene Recherchen.
Ist trotzdem erstaunlich, daß man nach einer Textkette suchen kann, obwohl ja in der Zelle eine formatierte Zahl steht.

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: mit Find (VBA) nach Datum suchen von: Werner Koch
Geschrieben am: 14.08.2008 10:13:07

Hi!

Besten Dank jetzt funktionier es wunderbar.

Interessant ist nur das die Suche mit Strg-F anders funktioniert als mit Find.
Strg-F scheint jedes Datum in Text umzuwandeln und erst dann im Text zu suchen.
Beispiel:
Ein Datumseintrag "12.03.1970" wird mit Strf-F nicht gefunden wenn man nach "12.3" sucht nur bei "12.03".
Strg-F nach "2.1" findet z.B. auch "12.12.1970".

mfg


  

Betrifft: AW: mit Find (VBA) nach Datum suchen von: bst
Geschrieben am: 14.08.2008 10:18:09

Hi Luschi,

Zur Info, und - ohne Gewähr ;-):

- .Find mit LookIn:=xlValues sucht in .TEXT
- .Find mit LookIn:=xlFormulas sucht in .FORMULA (Das passt aber NICHT bei einem DATUM!) ???
- .Find sucht NICHT in ausgeblendeten Zellen

http://www.office-loesung.de/ftopic127137_0_0_asc.php
http://www.ozgrid.com/VBA/find-dates.htm

- wenn man im Excel 2003 im Suchen und Ersetzen Dialog nicht "Blatt" sondern "Arbeitsmappe" auswählt, ignoriert .Replace im VBA sowohl das angegebene Tabellenblatt als auch den Range!

http://www.online-excel.de/fom/fo_read.php?f=1&bzh=-1&h=23044&ao=1

cu, Bernd


 

Beiträge aus den Excel-Beispielen zum Thema "mit Find (VBA) nach Datum suchen"