Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum mit "find" finden

Forumthread: 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
Anzeige

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 :-(
Anzeige
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

AW: Datum mit "find" finden
10.02.2004 19:23:44
Franz W.
Hallo Alex,
schau dir mal diese Datei an, vielleicht hilft's weiter:
https://www.herber.de/bbs/user/3558.xls
Grüße
Franz
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.
Anzeige
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
Anzeige
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 :-)
Anzeige
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
Anzeige
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
;
Anzeige

Infobox / Tutorial

Datum mit "Find" finden in Excel


Schritt-für-Schritt-Anleitung

Um ein Datum in Excel mit VBA zu finden, kannst Du die Find-Methode verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11.
  2. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen > Modul.
  3. Schreibe den Code:

    • Füge den folgenden Code ein, um ein Datum zu finden:
    Sub Finden()
       Dim vWert As Range
       Set vWert = ActiveSheet.Range("A1:A1000").Find(CDate("12.2.2004"), LookIn:=xlFormulas)
       If Not vWert Is Nothing Then
           MsgBox "Datum gefunden in Zeile: " & vWert.Row
       Else
           MsgBox "Datum nicht gefunden."
       End If
    End Sub
  4. Führe das Makro aus:

    • Drücke F5 oder wähle Ausführen im Menü.

Häufige Fehler und Lösungen

  • Problem: Das Datum wird nicht gefunden.

    • Lösung: Stelle sicher, dass das Datum im richtigen Format vorliegt. Teste auch, ob Du LookIn:=xlFormulas oder LookIn:=xlValues verwendest, je nachdem, wie das Datum eingegeben wurde.
  • Problem: Fehlermeldung "Datum nicht gefunden".

    • Lösung: Überprüfe, ob das Datum korrekt in der Zelle eingegeben wurde und ob es sich um ein manuell eingegebenes Datum handelt. Formeln können zu Komplikationen führen.

Alternative Methoden

Wenn die Find-Methode nicht funktioniert, kannst Du die For Each-Lösung verwenden, um jedes Datum in einem Bereich zu überprüfen. Hier ist ein Beispiel:

Sub ForEachDatum()
    Dim cell As Range
    Dim searchDate As Date
    searchDate = CDate("12.2.2004")

    For Each cell In ActiveSheet.Range("A1:A1000")
        If cell.Value = searchDate Then
            MsgBox "Datum gefunden in Zeile: " & cell.Row
            Exit Sub
        End If
    Next cell

    MsgBox "Datum nicht gefunden."
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele für das Finden von Datumswerten in Excel:

  1. Datum in einer Spalte suchen:

    Sub FindenDatum()
       Dim rngFind As Range
       Dim searchDate As Date
       searchDate = CDate("01.01.2004")
       Set rngFind = ActiveSheet.Range("A1:A1000").Find(searchDate, LookIn:=xlValues)
    
       If Not rngFind Is Nothing Then
           MsgBox "Datum gefunden: " & rngFind.Address
       Else
           MsgBox "Datum nicht gefunden."
       End If
    End Sub
  2. Datum aus einem Bereich finden:

    Public Sub DatumAusBereich()
       Dim dat As Long
       Dim rng As Range
       Set rng = ActiveSheet.Range("AN60000")
       dat = CDate("30.12.2004")
       rng.FormulaArray = "=MAX((C4:CP75=" & dat & ") * (ROW(C4:CP75)+(COLUMN(C4:CP75)/1000)))"
       MsgBox "Gefunden in Zeile: " & CLng(rng.Value) & "; Spalte: " & CLng((rng.Value - CLng(rng.Value)) * 1000)
    End Sub

Tipps für Profis

  • Verwende DateValue: Um sicherzustellen, dass das Datum korrekt interpretiert wird, kannst Du die Funktion DateValue verwenden, um sicherzustellen, dass es als Datum erkannt wird.

  • Überprüfe die Excel-Version: In älteren Versionen wie Excel 97 kann es Probleme mit der Find-Methode geben. In diesem Fall ist es ratsam, auf die For Each-Methode umzusteigen.

  • Formate: Achte darauf, dass das Datum im selben Format vorliegt wie in der Zelle, um Missverständnisse zu vermeiden.


FAQ: Häufige Fragen

1. Warum finde ich das Datum nicht, obwohl es vorhanden ist? Es kann sein, dass das Datum in einer Formel oder in einem anderen Format eingegeben wurde. Überprüfe, ob es manuell eingegeben oder als Formel berechnet wurde.

2. Gibt es eine Möglichkeit, mehrere Datumswerte gleichzeitig zu suchen? Ja, Du kannst eine Schleife verwenden, um mehrere Datumswerte zu überprüfen, oder eine Array-Formel verwenden, um mehrere Werte auf einmal zu suchen.

3. Wie kann ich das Datum des Domainnamens finden? Das Finden eines Datums in einem Domainnamen erfordert eine andere Methode, da es sich um einen Text handelt. Verwende InStr oder Like, um nach Datumsformaten im Text zu suchen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige