Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
380to384
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
380to384
380to384
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datum mit "find" finden

Datum mit "find" finden
10.02.2004 19:06:41
Alex K.
Hallo,
habe nun rumgetestet bis zum Geht-Nicht-Mehr.
Habe in Spalte A Datum stehen - also ganz normal 1.1.2004 bis 31.1.2005.
Nun will ich in VBA mit der Method "Find" das Datum 12.2.2004 finden. Also
ActiveSheet.Range("A1:A1000").Find(CDate("12.2.2004"),LookIn:=xlFormulas)
Leider findet er mein Datum nicht. Habe alles versucht, alle Parameter von LookIn und LookAt und sonstige Parameter. Auch mit DateValue("12.2.2004"), nur String "12.2.2004".
Hat jemand noch einen Tipp?
Danke
Gruß Alex

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum mit "find" finden
10.02.2004 19:21:33
PeterW
Hallo Alex,
hilft dir das weiter?

Sub finden()
Dim vWert
Set vWert = ActiveSheet.Range("A1:A1000").Find(CDate("12.2.2004"), LookIn:=xlFormulas)
MsgBox vWert.Row
End Sub

Gruß
Peter
AW: Datum mit "find" finden
10.02.2004 19:23:54
Alex K.
Hallo Peter,
leider nein. Hatte ich ja in meinen Posting schon erwähnt, dass ich es auf diese Weise getestet habe. Leider ohne Erfolg :-(
AW: Datum mit "find" finden
10.02.2004 19:25:43
Franz
Hallo Alex,
du musst den Datentyp des Suchkriteriums festlegen, damit´s funktioniert:

Sub FindDate()
Dim searchDate As Date
searchDate = "29.02.2004"
Range("A1:A1000").Find(What:=searchDate).Activate
End Sub

Anzeige
AW: Datum mit "find" finden
10.02.2004 19:34:17
Alex K.
Hallo Franz,
bin wirklich am Verzweifeln. Jeder schreibt, mit Find(CDate(...)) sollte es gehen. Aber deine Beispieldatei findet das Datum auch nicht (Meldung "Datum nicht gefunden"). Kann das an irgendwelchen Optionen liegen?
Habe Windows 98SE und test mit Excel 97 (ohne irgendwelche SP).
Danke trotzdem für die Hilfe.
AW: Datum mit "find" finden
10.02.2004 23:38:03
Franz W.
Hallo Alex,
zu allem jetzt auch mein Schlusssenf dazu: ich habe Excel2000, und die Datei, die ich hochgeladen habe mit dem code von Boris, funktioniert bei mir auch. Allerdings komme auch ich bei selbem Excel in einer anderen Datei wieder nicht druch damit!! Und machs da jetzt auch mit einer Schleife... :-))))
Sorry und beste Grüße
Franz
Anzeige
Danke Franz - dachte schon, ich wäre verrückt :-)
11.02.2004 09:43:54
Alex K.
AW: Datum mit "find" finden
10.02.2004 19:30:58
y
hi Alex,
so in etwa ?

Sub FindenDatum()
Dim rngFind As Range
Dim searchDate As Date
searchDate = "01.01.2004"
Set rngFind = ActiveSheet.Range("A1:A1000").Find(DateValue(searchDate), LookIn:=xlValues)
adresse = rngFind.Address
End Sub

cu Micha
AW: Datum mit "find" finden
10.02.2004 19:36:00
Alex K.
Hallo Micha,
auch schon probiert (hatte ich ja geschrieben). Leider mit dem gleichen Ergebnis. Franz hat mir ja eine Beispieldatei gesendet, in der funktioniert es auch nicht. Muss also an rigendwelchen Einstellungen liegen, nur an welchen?
AW: Datum mit "find" finden unter xl97
10.02.2004 19:35:31
Boris
Hi Alex,
...mein Senf auch noch dazu - wenngleich die Datei von Franz wohl schon einer Lösung von mir angelehnt ist.
Find mit Datümern unter Excel97 - Katastrophe. Das gibt ständig Probleme. Allein schon die Tatsache, dass in xlFormulas gesucht werden muss - einfach nur beknackt. Und dennoch funktioniert es manchmal nicht - da hilft dann einfach nur: Auf Find verzichten zu Gunsten der For-Each-Lösung, mit der jede Zelle einzeln abgeklappert wird. Ist zwar langsamer - funktioniert dafür aber bestimmt.
Bin in der Beziehung auch leidgeprüft...
Grüße Boris
Anzeige
AW: Datum mit "find" finden
10.02.2004 19:44:03
y
hi Alex,
ich gehe mal davon aus, dass du mit der "for each" lösung keine probleme haben wirst ;-)
aber bevor du wirklich zur heilsarmee gehst frag lieber nochmal *grins*
cu Micha
AW: Datum mit "find" finden
10.02.2004 19:54:14
Alex K.
Hallo an Alle,
vielen Dank für die Unterstützung. Also was ich nun festgestellt habe, dass es mit Datumswerten, welche ich direkt eintrage, funktioniert. Aber wenn ich das Datum über eine Formel einstelle, klappt es nicht (ja auch nicht mit xlValues oder xlFormulas) - nichts zu machen. Ich gebe auf und arbeite mit For-Each. Nach mir die Sintflut :-)
Noch etwas zum Lachen
10.02.2004 20:05:26
Alex K.
Hallo an Mitstreiter,
noch ein bisschen getestet und dabei folgende Konstallationen herausgefunden:
1) Mit Suchen über Menü wird mit Einstellung "Suchen in: Formeln" nur das manuell eingetragene Datum gefunden, das mit Formel erzeugte nicht. Wenn "Suchen in: Werten" werden beide Datum gefunden.
2) Mit "Find" wird nur das manuell eingetragene Datum gefunden und auch nur dann, wenn "LookIn:=xlFormulas" gesetzt ist.
Da sage noch einmal einer, der Computer arbeite nicht logisch :-)
Anzeige
OT Noch etwas zum Lachen
10.02.2004 20:12:53
PeterW
Hallo Alex,
Excel 8.0 scheint seiner Zeit voraus zu sein, sprich beherrscht die Fuzzy-Logik: "Könnte sein, ach nee, isses wohl vielleicht doch nicht?!"
Gruß
Peter
AW: OT Noch etwas zum Lachen
10.02.2004 20:15:01
Alex K.
Hall Peter,
das ist nicht Fuzzy- sondern Lala-Logik :-)
Deshalb schrieb ich auch: Katastrophe
10.02.2004 20:20:23
Boris
Hi Alex,
...ich hab das selbst alles schon rauf unter runter getestet - um dann letztlich bei For-Each zu landen (wohlgemerkt: nur unter xl97).
Ich wünschte auch, irgendjemand könnte Licht ins Dunkel bringen...
Grüße Boris
und ich wünschte, alle hätten Exel 2000 :-)
10.02.2004 20:22:53
Alex K.
Heureka - Lösung gefunden - Datum ist besiegt :-)
11.02.2004 10:09:54
Alex K.
Hallo Excel-Fans,
hier habe ich eine Lösung, die sowohl manuell als auch mit Formel eingetragenen Datum findet. Der Trick ist, dass das Datum in eine Long-Zahl umgewandelt wird und dann mit "Match" gesucht wird. Danke Bill Gates, dass ich das noch erleben durfte :-)

Public Sub DatFind()
Dim dat     As Long
Dim rng     As Range
Set rng = ActiveSheet.Range("A1:A30")
dat = CDate("2.1.2004")
MsgBox Application.WorksheetFunction.Match(dat, rng, 0)
End Sub

Anzeige
Das hätt ich dir auch sagen können...
11.02.2004 13:51:01
Boris
Hi Alex,
...allerdings ist Match halt nicht Find - und auch mit der Long-Variante funktioniert Find leider nicht.
Allerdings ist Match annähernd so schnell wie Find - kann aber halt nur auf 1 Spalte angewendet werden.
Aber schön, dass es funktioniert:-)
Grüße Boris
Formel für Datumsuche in einem Bereich
11.02.2004 20:01:20
Alex K.
Hallo,
nachdem Boris berechtigterweise bemerkt hast, dass die Funktion "Match" nur für eine Zeile / Spalte gilt, hier mein Vorschlag für die Suche nach einem Datum in einem beliebigen Bereich. Kann sicher noch optimiert werden.

Public Sub DatumAusBereich()
Dim dat     As Long
Dim rng     As Range
With ActiveSheet
'Hilfszelle zum Einstellen der Array-Formel
Set rng = .Range("AN60000")
dat = CDate("30.12.2004")
'Zeile wird als Vorkommawert, Spalte als Nachkommawert eingestellt
rng.FormulaArray = "=MAX((C4:CP75=" & dat & ") * (ROW(C4:CP75)+(COLUMN(C4:CP75)/1000)))"
MsgBox "Zeile: " & CLng(rng.Value) & "; Spalte: " & CLng((rng.Value - CLng(rng.Value)) * 1000)
End With
End Sub

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige