Anzeige
Archiv - Navigation
1540to1544
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
ComboBox Datumswerte und Textwerte zulassen
20.02.2017 08:09:27
Andreas
Hallo Excelfreunde,
Ich habe mal wieder ein Problem wo ich selber keine Lösung dazu finde.
Ich möchte aus den vorgegebenen Werten in einer ComboBox (diese befindet sich auf dem Tabellenblatt) einen Wert auswählen können (Dieser Wert kann ein „Datum“, aber auch ein „Text“ sein. Diesen Wert möchte ich über einen CommandButton der sich im selben Tabellenblatt befindet über ein Makro in eine Liste fortlaufend eintragen lassen. (Wie gesagt das kann ein „Datum“ aber auch ein „Text“ sein) Mit dem Datum funktioniert dies auch soweit.
Wenn ich aber den TextWert auswähle funktioniert dies nicht mehr. Es erscheint der Debugger und meckert mir die Codezeile „ComboBox1.Value = CDate(ComboBox1.Value) an.
Private Sub CommandButton1_Click()
Const cstrRange As String = "B5,B6,B7,B8,B9,B12,B13"
Dim lngZeile As Long
Dim intSpalte As Long
Dim rngCell As Range
With Worksheets("Neuanträge")
lngZeile = .UsedRange.Row + .UsedRange.Rows.Count
intSpalte = 1
For Each rngCell In Range(cstrRange)
.Cells(lngZeile, intSpalte) = rngCell.Value
intSpalte = intSpalte + 1
Next
End With
End Sub

Private Sub ComboBox1_Change()
ComboBox1.Value = CDate(ComboBox1.Value)
‚hier meckert mir der Debugger
End Sub
Wie muß ich das Makro ändern, damit ich Datumswerte sowohl Textwerte verwenden kann?
Für Eure Hilfe bedanke ich mich bereits im voraus recht herzlich
Liebe Grüße Andreas

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox Datumswerte und Textwerte zulassen
20.02.2017 09:08:53
Werner
Hallo Andreas,
Dann mach doch das CDate weg.
Gruß Werner
AW: ComboBox Datumswerte und Textwerte zulassen
20.02.2017 09:59:28
Andreas
Hallo Werner,
das habe ich bereits schon probiert gehabt.
Das Ergebnis dabei ist, das er mir das Datum nicht als Datum zb. 01.01.2017 schreibt sondern nur eine Zahl wiedergibt.
Dies möchte ich aber so nicht haben.
Vielleicht weist du eine Lösung
gruß Andreas
AW: ComboBox Datumswerte und Textwerte zulassen
20.02.2017 10:37:25
Werner
Hallo Andreas,
was willst du denn hiermit erreichen?
Private Sub ComboBox1_Change()
ComboBox1.Value = CDate(ComboBox1.Value)
‚hier meckert mir der Debugger
End Sub
Du versuchst einen ComboBox Eintrag in ein Datum umzuwandeln. Eine ComboBox enthält aber Text.
Wenn schon, dann musst du beim Übertragen des ComboBox Wertes in deine Tabelle entsprechend umwandeln.
In etwa so:
If IsDate(ComboBox1.Value) Then
Sheets("Tabelle1").Range("A1") = CDate(ComboBox1.Value)
Else
Sheets("Tabelle1").Range("A1") = ComboBox1.Value
End If
Gruß Werner
Anzeige
AW: ComboBox Datumswerte und Textwerte zulassen
20.02.2017 10:55:28
Andreas
Hallo Werner,
Mit diesem Code übertrage ich den Wert aus der Combobox in eine Liste fortlaufend in die nächste freie Zeile.
In der Combobox stehen Datum Werte
und aber auch Text
Die Datum Werte werden durch die Makroanweisung exakt in die Liste eingetragen
aber bei Text werte kommt der Debugger
Ich möchte aber erreichen das die Text werte genauso aber auch die Datumswerte als Datum zB 01.01.2017 und nicht als Zahl übertragen werden.
Wo muß ich im Code deine If Anweisung einfügen das das dann so bei mir fuktioniert
Private Sub CommandButton1_Click()
Const cstrRange As String = "B5,B6,B7,B8,B9,B12,B13"
Dim lngZeile As Long
Dim intSpalte As Long
Dim rngCell As Range
With Worksheets("Neuanträge")
lngZeile = .UsedRange.Row + .UsedRange.Rows.Count
intSpalte = 1
For Each rngCell In Range(cstrRange)
.Cells(lngZeile, intSpalte) = rngCell.Value
intSpalte = intSpalte + 1
Next
End With
End Sub

Deine Anweisung (wo muß ich die einfügen)
If IsDate(ComboBox1.Value) Then
Sheets("Tabelle1").Range("A1") = CDate(ComboBox1.Value)
Else
Sheets("Tabelle1").Range("A1") = ComboBox1.Value
End If
brauch nochmals dazu Hilfe
Gruß Andreas
Anzeige
AW: ComboBox Datumswerte und Textwerte zulassen
20.02.2017 11:38:55
Werner
Hallo Andreas,
wo bitte überträgst du mit diesem Code einen Eintrag einer ComboBox? Ich kann nirgends im Code sehen, wo eine ComboBox abgefragt wird.
Lade doch mal bitte eine Beispielmappe hoch und beschreib nochmal genau, was du erreichen möchtest.
Gruß Werner
AW: ComboBox Datumswerte und Textwerte zulassen
20.02.2017 12:26:26
Andreas
Hallo Werner,
leider kann ich keine Beispielmappe hochladen da es eine Datei von der Arbeit ist.
Die Combobox hat in den Eigenschaften LinkedCell "Neuanträge!B12"
von dort nimmt dann mein Makro die Zellen "B5,B6,B7,B8,B9,B12,B13"
und schreibt sie ab Spalte "A" in die nächste freie Zeile im selben Tabellenblatt
wie gesagt die Werte in den Zellen Tabelle "Neuanträge" Zellen "B5,B6,B7,B8,B9,B12,B13"
werden automatisch befüllt. in Zelle B12 wird der Wert aus der ComboBox1 übernommen.
und dann mit klick auf den CommandButton übertragen.
Wie gesagt das funktioniert ja auch soweit
Private Sub ComboBox1_Change()
ComboBox1.Value = CDate(ComboBox1.Value)
End Sub
das Makro
"

Private Sub ComboBox1_Change()"
lässt das Datum im Format 01.01.2017
-->wenn ich das nicht so hätte würde mir das Datum wieder als Zahl angezeigt werden.
Das will ich aber verhindern.
Das Makro so wie es ist funktioniert ja auch. (Also dass Datum wird richtig angezeigt und auch  _
richtig kopiert als zB. 01.01.2017
nur wenn ich jetzt einen Text aus der Combobox auswähle (in meinem Fall wäre das ein "nein")  _
und dann den CommandButton drücke bekomme ich den Debugger und er macht mir die Zeile gelb

Private Sub ComboBox1_Change(
ComboBox1.Value = CDate(ComboBox1.Value)  'diese Zeile wird mir jetzt gelb markiert und durch  _
den Debugger gemeckert
Ich will aber erreichen das auch der Text aus der Combobox in meinem Fall dann die Zelle "B12"  _
als Datum im Format 01.01.2017 oder als Text "nein" übernommen wird
Ich hoffe das ich mein Problem damit jetzt nochmals verständlich erklärt habe
brauche noch Hilfe
Gruß Andreas
End Sub

Anzeige
AW: ComboBox Datumswerte und Textwerte zulassen
20.02.2017 12:49:38
Werner
Hallo Andreas,
meionst du so?
Private Sub ComboBox1_Change()
If IsDate(ComboBox1.Value) Then
ComboBox1.Value = CDate(ComboBox1.Value)
Else
ComboBox1.Value = ComboBox1.Value
End If
End Sub
Gruß Werner
AW: ComboBox Datumswerte und Textwerte zulassen
20.02.2017 16:24:13
Andreas
Hallo Werner,
Danke Das ist was ich haben wollte.
Vielen Dank für Deine Mühe.
liebe Grüße Andreas
Gerne u.Danke für die Rückmeldung. o.w.T.
20.02.2017 16:43:06
Werner

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige