Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Datum vergleichen geht nicht

Betrifft: Datum vergleichen geht nicht von: Barbara
Geschrieben am: 16.09.2004 20:02:47

Folgendes Problem:

Mit Folgendem würde ich gerne in der Zeile 3 die Zelle finden, die den Wert von Geburtstag (05.07.91) hat.

Set ZelleDatum = Range("3:3").Find(Geburtstag)

Doch diese Zelle wird nicht gefunden, obwohl in E3 auch "05.07.91" steht.

Ich vermute nun, dass ich mit einem Textstring ("05.07.91") ein formatiertes Datum nicht finden kann? Nur, wie suche ich denn dann?
Diesen Textstring habe ich aus einer anderen Datumszelle rausgelesen.
Muss ich da was umwandeln, um es vergleichbar zu machen?

Nebenfrage: Wie finde ich auf dieser grossartigen Seite andere Postings zu diesem Thema. Gibt es da wo eine Suchfunktion? Hab nix gefunden.

Danke, LG, Barbara.

  


Betrifft: Versuchs mal mit Home-> Excel Recherche von: RAnton
Geschrieben am: 16.09.2004 20:07:54

Gruß
Anton


  


Betrifft: AW: Datum vergleichen geht nicht von: PeterW
Geschrieben am: 16.09.2004 20:20:47

Hallo Barbara,

was ist denn bei dir Geburtstag? VBA "versteht" nur englisch! Folgendes klappt problemlos:
Sub Bereich()
   Dim ZelleDatum As Range
   Dim Geburtstag As Date
   Geburtstag = #7/5/1991# 'Datum im englischen Format!!
   Set ZelleDatum = Range("3:3").Find(Geburtstag)
   MsgBox ZelleDatum.Column
End Sub

Gruß
Peter


  


Betrifft: AW: Datum vergleichen geht nicht von: Barbara
Geschrieben am: 16.09.2004 20:40:44

Hallo Peter,
danke für Deine Hilfe, aber den Geburtstag kann ich nicht eingeben, den holt sich das Makro aus einer anderen Zelle, in dem das Datum steht.
Da steht eben schon vorher:
Geburtsgag = Worksheets("Liste").Cells(6, 3)
Und daher hat diese Variable das Datum. Und dieses lässt sich nicht mit anderen Datumszellen vergleichen.


  


Betrifft: AW: Datum vergleichen geht nicht von: PeterW
Geschrieben am: 16.09.2004 20:46:55

Hallo Barbara,

wenn das Datum aus einer Zelle eingelesen wird geht das auch (GeburtsGAG dürfte eher ein Tippfehler hier im Forum sein). Der Ansatz wurde getestet und funktioniert. Vielleicht hilft eine Beispielmappe von dir weiter.

Gruß
Peter


  


Betrifft: AW: Datum vergleichen geht nicht von: Bert
Geschrieben am: 16.09.2004 20:46:56

In welcher Form steht das datum in der Zelle, als Zahl oder Text?

Bert


  


Betrifft: AW: Datum vergleichen geht nicht von: Barbara
Geschrieben am: 16.09.2004 21:10:40

Also nochmals genauer:
In den Zelle C6 und B3 steht das Datum 03.01.1971 im Datumsformat.
Jetzt gebe ich der Variablen q das Datum, um ganz sicher zu gehen.
Und dann suche ich q in der dritten Zeile, wo es aber drinnen steht (in B3 eben).
q = Cells(6, 3)
Set ZelleDatum = Range("3:3").Find(q)
Trotzdem ist Zelledatum "Nothing", das heisst der Suchvorgang ging ins Leere.


  


Betrifft: AW: Datum vergleichen geht nicht von: Matthias G
Geschrieben am: 16.09.2004 21:16:45

Hallo Barbara,

also mit Typdeklarationen geht es:
Sub test()
Dim q As Date
Dim ZelleDatum
q = Cells(6, 3)
Set ZelleDatum = Range("3:3").Find(q)
MsgBox ZelleDatum.Address
End Sub

Gruß Matthias


  


Betrifft: AW: Datum vergleichen geht nicht von: Barbara
Geschrieben am: 16.09.2004 21:32:47

Hallo Matthias

bei mir geht es nicht. Ich hab Dein Programm rüberkopiert, ZelleDatum ergibt "Nothing" und in Folge gibt es bei Msgbox eine Fehlermeldung.

LG, barbara


  


Betrifft: AW: Datum vergleichen geht nicht von: Bert
Geschrieben am: 16.09.2004 21:47:56

Die Version ist halt nicht ohne Relevanz! In E 97 hatte find so seine Schwierigkeiten mit Datumwerten. Ich weiß nicht mehr genau, aber man musste da Lookin:=xlValues
angeben(kann aber auch genau anders gewesen sein: Lookin:=xlFormulas).
Probier das mal aus, bei dir ist ja Lookin:= gar nicht angegeben.

Bert


  


Betrifft: AW: Datum vergleichen geht nicht von: Barbara
Geschrieben am: 17.09.2004 00:14:54

Habe die Lösung selbst gefunden.
Es geht mit CDate. Dies wandelt das Datum richtig um, sodaß es in die Find-Funktion eingesetzt werden kann.

Set ZelleDatum = Range("E3:F3").Find(CDate(q))

Bin durch Zufall draufgekommen.


 

Beiträge aus den Excel-Beispielen zum Thema "Datum vergleichen geht nicht"