Hallo Christoph,
ich habe ein Erfassungsformular in Excel erstellt, in welchem
Dropdown-Listfelder sind, welche ihre Items aus Zellbereichen
beziehen und den gewählten Inhalt in andere Zellen schreiben.
In der Liste erscheinen korrekt die Datumsfelder, aber wenn
ich ein Datum auswähle und das Listenfeld wieder
„zusammenklappt“ ist statt dem Datum nur die äquivalente Zahl
zu sehen (37622 statt 01.01.2003), welche auch gespeichert
wird. Man kann also nicht mehr erkennen, welches Datum
eigentlich gewählt war (analog Zeitangaben in Stunden).
was soll ich tun?
Die Verarbeitung von Datumsangaben in dem Steuerungselement Kombinationsfeld scheint ein echtes Problem zu sein.
Ich hab mal ein wenig herumexperimentiert. Leider mit dem von dir festgestellten Ergebnis. Nicht nur dass das Datum in die äquvalente Zahl umgerechnet wird, das Ergebnis der Box wird auch noch als Text (String) zurückgegeben. Für die Darstellung des Datums im Formular hab ich keine einfache Lösung gefunden.
Bei der Auswertung der Formulareingaben und die Ausgabe der Daten in Zellen muß der im Kombinationsfeld gewählte Wert in eine Zahl umgewandelt werden, dann stehen in Zellen auch korrekte Datumsangaben.
Am besten integrierst du in den Code zum OK-Button, der das Formular schließt, noch folgenden Code um die Daten in die Zellen einzutragen:
Private Sub CommandButton1\_Click()
Range("B10").Value = Val(ComboBox1.Value)
UserForm1.Hide
End Sub
Hast du im Formular unter Eigenschaften für das Kombinationfeld unter ‚ControlSource‘ eine verlinkte Zelle eingetragen, in die das ausgewählte Datum eingetragen werden soll, dann sorgt folgender Code für einen korrrekten Eintrag in der Zelle:
Private Sub ComboBox1\_Change()
Range(ComboBox1.ControlSource).Value = Val(ComboBox1.Value)
End Sub
In diesem Fall wird im Formular auch das ausgewählte Datum angezeigt.
Als letzte Möglichkeit bliebe noch in den Zellbereichen aus denen die Items die Datumswerte übernehmen, das Datum als Text einzugeben. Das geht zur Not auch mit der Funktion =Text(A1;„TT.MM.JJJJ“), wobei in A1 usw. normale Datumsangaben stehen. Dann werden die ausgewählten Werte auch korrekt angezeigt. Hat dann jedoch in den Ausgabezellen das Datum auch als Text stehen. Will man so ein Datum in Excel weiterverarbeiten, dann muß man die Funktion DATWERT benutzen, um den Datumstext (z.B. 01.02.2005) in die äquivalente zahl umzuwandeln.
Hat man ein einzelnes Kombinationsfeld mit Datumsauswahl in einer Tabelle wandelt folgender Code den Wert in der verlinkten Zelle in eine Zahl um.
Private Sub ComboBox1\_Change()
Range(ComboBox1.LinkedCell).Value = Val(Range(ComboBox1.LinkedCell).Value)
End Sub
Hoffe das hilft etwas weiter
Franz