Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1252to1256
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
Inhaltsverzeichnis

Formatierung von Datumswerten

Formatierung von Datumswerten
Datumswerten
Hallo,
ich habe eine Frage zur Formatierung von Datumswerten.
Was ist wichtiger/besser zur Vermeidung von Fehlern: Die Variable selbst zu formatieren, oder die Zelle, in der die Variable geschrieben wird, zu formatieren?
Public qu As Date
-------------------------------------------------
Sub aktualisieren()
Dim akt_dat As Date
akt_dat = Date
'Formatierung der Variablen "akt_dat"
akt_dat = Format(akt_dat, "dd.mm.yy")
'Formatierung der Zelle "j2"
ActiveSheet.Range("j2").NumberFormat = "dd.mm.yy"
ActiveSheet.Range("j2") = akt_dat
qu = Date
'Formatierung der Variablen "qu"
qu = Format(qu, "q")
'Formatierung der Zelle "j4"
ActiveSheet.Range("j4").NumberFormat = "General"
ActiveSheet.Range("j4") = qu
End Sub
In qu (als Date deklariert) wird das Quartal (z.B. "1") gespeichert - muß man qu nun als Date oder integer deklarieren?
Vielen Dank für Ihre Hilfe.
MfG
kwon

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Formatierung von Datumswerten
13.03.2012 15:22:03
Datumswerten
Hallo,
ich würde qu als Long deklarieren.
Zum einen übergibst du an die Variable ein Datum und ein Datum (ohne Uhrzeit) ist
eine Ganzzahl &gt 32767 und somit fällt Integer schon mal aus.
Dann schreibst Du mit qu nur eine Zahl kein Datum in die Zelle J4,
was wiederrum für Long und nicht für Date spricht.
Gruß Tino
AW: Formatierung von Datumswerten
13.03.2012 15:25:44
Datumswerten
Hi kwon,
Ich würde dir vorschlagen die Variable selbst immer im korrekten Format zu formatieren; es sollte also ausreichen, wenn du es so formatierst:
Sub aktualisieren()
Dim akt_dat As Date
akt_dat = Date
'Formatierung der Variablen "akt_dat"
akt_dat = Format(akt_dat, "dd.mm.yy")
'Formatierung der Zelle "j2"
'ActiveSheet.Range("j2").NumberFormat = "dd.mm.yy"
ActiveSheet.Range("j2") = akt_dat
qu = Date
'Formatierung der Variablen "qu"
qu = Format(qu, "q")
'Formatierung der Zelle "j4"
'ActiveSheet.Range("j4").NumberFormat = "General"
ActiveSheet.Range("j4") = qu
End Sub
qu ist ja als Datum deklariert; das ist schon richtig, sonst würde ja der Befehl

qu = Format(qu, "q")
nicht mehr funktionieren. Es sei denn du möchtest das dargestellte Ergebnis (in diesem Fall 1) als integer speichern, dann kannst du es so machen:
Dim qu2 As Integer
qu = Date
'Formatierung der Variablen "qu2"
qu2 = Format(qu, "q")
ActiveSheet.Range("j4") = qu2
Gruß Jonatan
Anzeige
Wert und Format
14.03.2012 07:28:43
Erich
Hi,
da geht IMHO begrifflich etwas durcheinander.
"Variable selbst zu formatieren" geht nicht.
Eine Variable hat einen Typ, der wird beim Deklarieren festgelegt.
Und eine Variable hat einen Wert. Der wird zugewiesen.
Eine Variable hat aber kein Format.
Eine Zelle im Tabellenblatt hingegen hat - neben vielen anderen Eigenschaften - sowohl Wert als auch Zahlenformat.
Zu deinem Code:
Mit "akt_dat = Date" wird akt_dat die Zahl 40982 (das ist der 14.3.2012) zugewiesen. Ok.
Mit "Format(akt_dat, "dd.mm.yy")" wird aus der Zahl 40982 ein String erzeugt: "14.03.12". Ok, kann man.
Mit "akt_dat = Format(akt_dat, "dd.mm.yy")" wird dieser String dann wieder der Variablen akt_dat zugewiesen.
Eigentlich ist es gar nicht möglich, einer einer Date-Variablen einen String zuzuweisen.
Aber VBA ist tolerant und korrigiert das für uns, indem es den String in ein Date umwandelt (so das denn geht).
Das Ergebnis der Umwandlung ist: die Zahl 40982. Das hätten wir VBA leicht ersparen können...
Also: Ein Datum ist eine Zahl. Die Zahl ist der Wert der Date-Variablen.
Wie ein Datum in einer Zelle dargestellt wird, hängt nur vom Zahlenformat der Zelle ab.
Zu "In qu (als Date deklariert) wird das Quartal (z.B. "1")"
Warum willst du eine Variable, in der du das Quartal speichern willst, als Date deklarieren?
Ein Quartal ist doch kein Datum.
Wie du qu deklarieren solltest, hängt davon ab, wie du es brauchst. Es könnte auch ein String sein.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige