ich kann das Problem nicht nachvollziehen. Folgende Syntax funktioniert
einwandfrei:
Dim VarDatum As Date
Sub Beispiel()
VarDatum = #3/17/98#
MsgBox VarDatum
If VarDatum = Worksheets(1).[a1] Then
MsgBox "Datum stimmt überein!"
Else
MsgBox "Datum stimmt nicht überein!"
End If
End Sub
Wobei ich dennoch dazu übergehen würde, die Datumsvariable mit
VarDatum = DateSerial(98, 3, 17)
einzulesen. Hier lassen sich sehr einfach für Jahre, Monate und Tage Variablen
einsetzen.
Gruss Hans
--
####################################################
# Herber's Excel-Server - letztes Update: 02.03.98 #
# http://www.herber.de - EMail: her...@herber.de #
# Microsoft MVP - Excel #
####################################################
Holger Hoffmann schrieb in Nachricht <34ffece6...@msnews.microsoft.com>...
>X-No-Archive: yes
>
>Hallo zusammen,
>
>fuer die VBA-Experten unter Euch sicher kein solches "Problem"
>wie fuer mich:
>
>Ich moechte "nur" zwei Datumswerte auf Gleichheit pruefen. Das eine
>Datum steht in einer Tabelle, das andere Datum einer VBA-Prozedur
>und ist dort einer Variablen zugewiesen.
>
>-Excel 7.0, deutsche Version;
>-Extras/Optionen/Modul Allgemein/Aktuelle Einstellungen: Englisch/USA;
>-Das Tabellendatum steht in Tabelle 1, Zelle A1 in deutscher
> Schreibweise, also z. B. 12.03.98;
>-Das Variablendatum in der VBA-Prozedur soll z. B. der 17.03.98 sein.
>
>Mit folgende Prozedur habe ich angefangen:
>
>Dim VarDatum As Date
>Sub Beispiel()
> VarDatum = #17.03.98#
>End Sub
>
>Erste Erkenntnis: Die Datumsangabe in Programmzeile 3 muss in
>englischer Schreibweise eingegeben werden. Aber verstaendlich.
>Also:
>
>Dim VarDatum As Date
>Sub Beispiel()
> VarDatum = #3/17/98#
>End Sub
>
>Naechstes Problem:
>
>Cursor irgendwo in die Prozedur gestellt und diese dann mit F5
>gestartet.
>--> Fehlermeldung: Laufzeitfehler '6': Ueberlauf.
>
>Nach Druecken des Button 'Gehe zu' wird wieder Programmzeile 3
>als fehlerhaft lokalisiert.
>
>Hierzu Excel-Hilfetext:
> Mögliche Ursachen:
> -Das Ergebnis einer Zuweisung, einer Berechnung oder der
> Umwandlung eines Datentyps liegt außerhalb des für diesen
> Variablentyp zulässigen Bereichs.
> -Einer Eigenschaft wurde ein Wert zugewiesen, der den
> maximal zulässigen Wert für diese Eigenschaft
> überschreitet.
>
>Nun weiss ich nicht weiter. Ganz zu Schweigen von dem noch
>einzubauenden Vergleich mit dem Tabellendatum, das ja in deutscher
>Schreibweise dort steht und auch in dieser Schreibweise so stehen
>bleiben soll.
>
>Es waere schoen, wenn mir jemand weiterhelfen koennte. Auch Tips, wie
>ich spaeter die beiden Daten trotz unterschiedlicher Schreibweisen
>miteinander vergleichen koennte. ('If VarDatum = Tabelle1!A1 Then ...'
>wird ja wohl auch nicht funktionieren!)
>
>Viele Gruesse
>Holger.
>...
> If VarDatum = Worksheets(1).[a1] Then
>...
Hallo Hans,
vielen Dank fuer die prompte Antwort.
Mit obiger Programmzeile duerfte meine 2. Frage schon
beantwortet sein. Leider kann ich das noch nicht testen,
da nach dem Starten Deiner Prozedur, wie schon bei meinem
eigenen Beispiel, die gleiche Fehlermeldung wieder kommt,
naemlich: "Laufzeitfehler '6': Ueberlauf".
========================================================
Hallo nochmal an alle anderen,
bekommt jemand mit
-Excel 7.0 (also nicht 7.0a!), deutsche Version;
-Extras/Optionen/Modul Allgemein/Aktuelle Einstellungen: Englisch/USA;
bei folgendem Miniprograemmchen
Dim VarDatum As Date
Sub Beispiel()
VarDatum = #3/17/98#
End Sub
nach dem Starten auch obige Fehlermeldung? Alle meine
Excel-Dateien sind vom 11.10.95 00:00:00.
BTW: Nach dem Abschluss einer Programmzeile mit 'Enter'
werden stets die Leerzeichen-Zwischenraeume auf 1 eingestellt,
egal wieviel vorher eingegeben wurden. Soweit so gut, aber das
geschieht bei mir in obigem Beispiel _nicht_ zwischen
'VarDatum' und 'As'. Dort bleiben auch nach dem Verlassen der
Zeile z. B. 5 Leerzeichen. Ist das richtig?
Viele Gruesse
Holger.
Holger....@t-online.de (Holger Hoffmann) wrote:
>bekommt jemand mit
>-Excel 7.0 (also nicht 7.0a!), deutsche Version; ...
hab' nur 7.0a, da gibt's keine Probleme,
>BTW: Nach dem Abschluss einer Programmzeile mit 'Enter'
>werden stets die Leerzeichen-Zwischenraeume auf 1 eingestellt,
>egal wieviel vorher eingegeben wurden. Soweit so gut, aber das
>geschieht bei mir in obigem Beispiel _nicht_ zwischen
>'VarDatum' und 'As'. Dort bleiben auch nach dem Verlassen der
>Zeile z. B. 5 Leerzeichen. Ist das richtig?
ist bei 7.0a auch so
>Viele Gruesse
>Holger.
viel Erfolg bei der Lösungssuche,
sagt die knowledge base evtl. was dazu?
cu, hanfred