Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1440to1444
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

Userform, Combobox, Datumsformat

Userform, Combobox, Datumsformat
13.08.2015 18:07:57
Kulo
Hallo Zusammen,
ich hab mich jetzt mal an die Userform ran gewagt. Tolles Spielzeug! ;-)
Leider hab ich ein Problem mit dem Format der Anzeige einer Combobox. Die Auswahlliste enthält Datumswerte die auch passen, aber vom Format her besser als "MMM.JJ" in der Combobox angezeigt werden sollten. Bisher steht da "WT. DD.MM.JJJJ".
Die Übergabe der Daten an das Tabellenblatt funktioniert soweit. Aber das Datum wird im Textformat an die Zelle weiter gegeben.
CDate bringt mich auch nicht weiter.
?
Vielleicht könnte mal jemand den Code überfliegen.

Private Sub UserForm_Initialize()
'Werte bei Aufruf des Formulars eintragen, Formular initialisieren
With Me
'.cboDatvon = Format(cboDatbis, "MMM.JJ")
'.cboDatbis = Format(cboDatvon, "MMM.JJ")
' Ich dachte, hiermit kann ich die Combobox "cboDatvon" und "cboDatbis" von
' vornherein anweisen, die eingelesenen Daten als Datum zu behandeln.
' Geht irgendwie nicht
.cboDatvon = Worksheets("dynEinAus").Range("F7")
.cboDatbis = Worksheets("dynEinAus").Range("G7")
.cboDatvon.List = Range("Startmonat").Value
.cboDatbis.List = Range("Endmonat").Value
End With
End Sub
Private Sub cmdUebernehmen_Click()
'Fügt die Werte ins Tabellenblatt und schließt das Formular frmDatDiagramm
With Worksheets("dynEinAus")
'Hier wollte ich mir "Cdate" zu nutze machen, um den Wert als Datum in das     _
entsprechende Tabellenblatt
'einzuschreiben:
' "Cells(12, 6).Value = CDate(Me.cboDatvon.Value)"
' "Cells(12, 7).Value = CDate(Me.cboDatbis.Value)"
'Value wird korrekt angezeit, aber der Typ verträgt sich nicht mit CDate.
.Cells(12, 6).Value = Me.cboDatvon.Value
.Cells(12, 7).Value = Me.cboDatbis.Value
'Jetzt bin ich soweit, dass der Wert von der Combobox in die jeweiligen Felder  _
eingetragen wird. Jedoch
'als Text und ich nicht wie von mir erhofft als Datumswert.
End With
Unload frmDatDiagramm
End Sub
Private Sub cmdAbbruch_Click()
'Schließt das Formular frmDatDiagramm
Unload frmDatDiagramm
End Sub
Würde mich über ein Feedback freuen.
Vielen Dank im Voraus und
VG
Kulo

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform, Combobox, Datumsformat
13.08.2015 18:16:58
Nepumuk
Hallo,
versuch es mal so:
Cells(12, 6).Value = CDate(Mid$(cboDatvon.Value, 5))
Gruß
Nepumuk

AW: Userform, Combobox, Datumsformat
13.08.2015 18:47:12
Kulo
Hallo Nepomuk,
vielen Dank für die schnelle Antwort.
Ganz passt es noch nicht, aber ein großer Schritt weiter:
Der Wert in der Zelle auf dem Tabellenblatt kommt als Datumswert an. ;-)
Leider stimmt das Datum nicht überein mit dem Wert aus der Userform.
Wenn als Text mit meinem Code "Di 01.04.2014" ankommt, dann ist mit deinem Code der Datumswert
der "07 12 4752".
Kannst Du bitte nochmal schauen?
Danke nochmals.

AW: Userform, Combobox, Datumsformat
13.08.2015 18:51:22
Nepumuk
Hallo,
kann ich nicht nachvollziehen. kannst du eine Mustermappe hochladen in der dieser Fehler auftritt?
Gruß
Nepumuk

Anzeige
AW: Userform, Combobox, Datumsformat
13.08.2015 19:41:00
Kulo
Hallo Nepumuk,
ich hab schnell mal was getrickt. ;-)
https://www.herber.de/bbs/user/99550.xlsm

Bitte schau nochmal. Ich hoffe, die Datei ist aussagekräftig.
Danke vielmals.

AW: Userform, Combobox, Datumsformat
13.08.2015 20:06:10
Nepumuk
Hallo,
der Link war kein Problem. Nur ist das Datumsformat nun plötzlich TT.MM.JJJJ und nicht wie in der ersten Anfrage beschrieben. Mit diesem Format genügt CDate ohne Mid-Funktion.
Gruß
Nepumuk

Anzeige
AW: Userform, Combobox, Datumsformat
13.08.2015 20:17:18
Kulo
Meinst Du So?
.Cells(12, 6).Value = CDate(Me.cboDatvon.Value)
.Cells(12, 7).Value = CDate(Me.cboDatbis.Value)
Der Wert wird bei mir als Text übergeben.
Userbild

AW: Userform, Combobox, Datumsformat
13.08.2015 20:21:05
Kulo
...ohne CDate.
Und mit CDate kommt eine Fehlermeldung.
Bei Deinem Ansatz war die Übergabe als Datum. Das ist soweit gut. Es muss an der Formatumwandlung von Text zu Datum liegen.

AW: Userform, Combobox, Datumsformat
13.08.2015 21:11:19
Nepumuk
Hallo,
dann nochmal von vorne, welches Format enthalten die Comboboxen in deiner Originaldatei? Denn zurzeit kenne ich drei:
WT. DD.MM.JJJJ
WT DD.MM.JJJJ
DD.MM.JJJJ
Gruß
Nepumuk

Anzeige
AW: Userform, Combobox, Datumsformat
13.08.2015 21:47:47
Kulo
Hallo Nepumuk,
vielen Dank für Deine Bemühungen.
Ich muss dir leider sagen, dass ich es nicht besser beschreiben kann, als es in der hochgeladenen Datei ersichtlich ist.
Entschuldige bitte meine Unwissenheit: Ich denke, dass Excel intern sowieso mit einer fortlaufenden Zahl beim Datum rechnet und die Formatangabe in der Liste daher nicht von Belang sein dürfte.
Egal, wie das Format in der Zielzelle lautet, ist m.E. das Datum für heute in Excel 42229. Erst die Formatierung in der Zielzelle macht das ganze zu einem Datum (außer Text).
Ich kratze VBA erst an.
Jedenfalls, wenn ich die Zielzelle als Standart formatiere, erhalte ich mit deinem Code beim Datum 1.04.2014 die Zahl 1042014. Aus dieser wird dann im Datumsformat eine utopische Zahl in der Zukunft.
Ist ja auch logisch, wenn meine Annahme von oben stimmt und heute 42229 ist.
Ich werde mal versuchen, die Ausgabe als String abzufangen, zu zerlegen und als Datum zusammen zu setzen. Versuch macht kluch. ;-)
Mit dem Mid$ und Right$ (oder so ähnlich) müsste ich ja da weiterkommen - oder?
Also vielen Dank nochmal und nichts für ungut.
Viele Grüße und eine Gute Nacht
Kulo

Anzeige
AW: Userform, Combobox, Datumsformat
16.08.2015 23:20:01
Kulo
Hallo an Alle, die sich mit einem ähnlichen Problem rumschlagen:
Meine VBA Kenntnisse halten sich arg in Grenzen. Dennoch möchte ich meine Ergebisse zum Problem mitteilen:
Die Formatierung der Zellen aus welchen die Daten in die Liste für die Comboboxen eingelesen werden scheint wohl doch in diesem Fall weniger ausschlaggebend zu sein.
Die Comboboxen in der Userform nehmen sich höchstwahrscheinlich der Einstellungen des Betriebssystems für das kurze und lange Datumsformat an. In der Combobox stand das Datum im Format "Fr. 01.01.2015".
Hier lieferte der Befehl "CDate" nicht das gewünschte Ergebnis.
Nepumuk gab mir aber einen Hinweis, die Daten mit der "Mid-Funktion" auszulesen. Hier kam aber das Ergebnis als Text an oder mit Cdate als Zahl "01012015".
Mid$ war ein guter Hinweis von Nepumuk.
Mit folgendem Code, bei dem es den Experten wahrscheinlich die Haare zu Berge stehen läßt, bin ich meinem Ziel etwas näher gekommen:
Dim VonDate As Date
With Worksheets("dynEinAus")
VonDate = DateSerial(CDbl(Mid$(cboDatvon.Value, 10, 4)), CDbl(Mid$(cboDatvon.Value, 7,   _
_
2)), CDbl(Mid$(cboDatvon.Value, 4, 2)))
.Cells(7, 6).Value = vonDate
End With

Dennoch liegt des Pudels Kern m.E. in den Einstellungen des Betriebssystems:
Folgende Info hab ich im Netz gefunden:
"CDate erkennt alle Datumsformate, die im Gebietsschema des Systems ausgewählt werden können. Die richtige Reihenfolge von Tag, Monat und Jahr kann nicht immer bestimmt werden, wenn sich das Datumsformat von den im Gebietsschema verfügbaren Formaten unterscheidet. Außerdem wird ein langes Datumsformat nicht erkannt, wenn es auch eine Zeichenfolge für den Wochentag enthält."
Ha, das lange Datumsformat!!!
Ich weiß nicht, ob es gut war, das Datumsformat in Windows auf meinem PC zu ändern und ob dadurch andere Dinge auf meinem PC beeinflusst werden. Nach der Umstellung des Formates auf ein Format ohne Wochentag hat sich die CDate-Funktion jedenfalls von einer freundlicheren Seite gezeigt.
Es ist kein Lösungsvorschlag, sonder nur eine Idee zum Weiterbasteln.
Die Kompatibilität zu anderen Computern ist bei den verschiedenen Einstellungen im OS ja auch irgendwie fraglich... und vor allem, wer hat an meinem Computer am Datumsformat rumgespielt? ;-)
Vielen Dank nochmal an Nepumuk. Wir haben zwar an dem Abend keine Lösung gefunden, aber der Denkanstoß war einiges Wert.
Jeden Tag etwas mehr... ;-)
VG und frohes Basteln
Kulo

Anzeige
AW: Userform, Combobox, Datumsformat
16.08.2015 23:16:16
Kulo
Hallo an Alle, die sich mit einem ähnlichen Problem rumschlagen:
Meine VBA Kenntnisse halten sich arg in Grenzen. Dennoch möchte ich meine Ergebisse zum Problem mitteilen:
Die Formatierung der Zellen aus welchen die Daten in die Liste für die Comboboxen eingelesen werden scheint wohl doch in diesem Fall weniger ausschlaggebend zu sein.
Die Comboboxen in der Userform nehmen sich höchstwahrscheinlich der Einstellungen des Betriebssystems für das kurze und lange Datumsformat an. In der Combobox stand das Datum im Format "Fr. 01.01.2015".
Hier lieferte der Befehl "CDate" nicht das gewünschte Ergebnis.
Nepumuk gab mir aber einen Hinweis, die Daten mit der "Mid-Funktion" auszulesen. Hier kam aber das Ergebnis als Text an oder mit Cdate als Zahl "01012015".
Mid$ war ein guter Hinweis von Nepumuk.
Mit folgendem Code, bei dem es den Experten wahrscheinlich die Haare zu Berge stehen läßt, bin ich meinem Ziel etwas näher gekommen:
Dim VonDate As Date
With Worksheets("dynEinAus")
VonDate = DateSerial(CDbl(Mid$(cboDatvon.Value, 10, 4)), CDbl(Mid$(cboDatvon.Value, 7,  _
2)), CDbl(Mid$(cboDatvon.Value, 4, 2)))
.Cells(7, 6).Value = vonDate
End With
Dennoch liegt des Pudels Kern m.E. in den Einstellungen des Betriebssystems:
Folgende Info hab ich im Netz gefunden:
"CDate erkennt alle Datumsformate, die im Gebietsschema des Systems ausgewählt werden können. Die richtige Reihenfolge von Tag, Monat und Jahr kann nicht immer bestimmt werden, wenn sich das Datumsformat von den im Gebietsschema verfügbaren Formaten unterscheidet. Außerdem wird ein langes Datumsformat nicht erkannt, wenn es auch eine Zeichenfolge für den Wochentag enthält."
Ha, das lange Datumsformat!!!
Ich weiß nicht, ob es gut war, das Datumsformat in Windows auf meinem PC zu ändern und ob dadurch andere Dinge auf meinem PC beeinflusst werden. Nach der Umstellung des Formates auf ein Format ohne Wochentag hat sich die CDate-Funktion jedenfalls von einer freundlicheren Seite gezeigt.
Es ist kein Lösungsvorschlag, sonder nur eine Idee zum Weiterbasteln.
Die Kompatibilität zu anderen Computern ist bei den verschiedenen Einstellungen im OS ja auch irgendwie fraglich... und vor allem, wer hat an meinem Computer am Datumsformat rumgespielt? ;-)
Vielen Dank nochmal an Nepumuk. Wir haben zwar an dem Abend keine Lösung gefunden, aber der Denkanstoß war einiges Wert.
Jeden Tag etwas mehr... ;-)
VG und frohes Basteln
Kulo
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige