2.1k Aufrufe
Gefragt in Tabellenkalkulation von paul1 Experte (4.9k Punkte)
Hallo Allseits,

Ich habe wieder einmal ein VBA-Problem.

Der nachfolgende VBA-Code ermöglicht wahlweise die Erfassung von Text und Zahlen.
Bei Eingabe eines Datums wird das Datum als Text übernommen obwohl die Zielzellen als Datum formatiert sind.

Private Sub CommandButton1_Click()

Range("A2") = TextBox1.Value
Range("B2") = TextBox2.Value
Range("C2") = TextBox3.Value
Range("D2") = TextBox4.Value
Range("E2") = TextBox5.Value
Unload Me
Auswertung.Show

End Sub


Es wäre mir ein Anliegen entweder den VBA-Code so umzuändern, dass das eingegebene Datum auch als Datum in den Zellen übernommen wird, oder was ein Hit wäre, wenn man den Code so gestalten könnte, dass je nach Eingabe in den Textboxen (Zahl, Text oder Datum) in die Zielzellen übernommen werden könnte.
Mit dem Ersteren wäre ich schon hoch zufrieden.

Datum

Für Hinweise, Links, Tipps oder eventuell Lösung bedanke ich mich bereits im Voraus

schönen Tag noch
mit Gruß

Paul1

6 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

habe mir mal die Daten angesehen, die werden als Datum im Format angezeigt.

Du musst wahrscheinlich nur die Anordnung der Daten beim Datum nach rechts in der Funktion unterbringen.

Etwa so

Range("A2:E2").Select
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With


Gruß

Helmut
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Helmut,

BINGO, jetzt funktioniert es!!!

herzlichen Dank für die rekordverdächtige rasche Hilfe!

schönes Wochenende
mit Gruß

Paul1
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Helmut,

Ich habe mich schon zu früh gefreut, Excel überrascht mich immer wieder.

Wenn ich jetzt das Datum mittels Textbox eingebe z.B. in.A2 und auf die Zelle F2 in einer Formel (Formel in G2) bezug nehme bringt es nicht das gewünschte Ergebnis, obwohl beide Zellen gleich formatiert sind.
Gebe ich das Datum in A2 manuell ein gibt es kein Problem.

Beispiel

Vielleicht kannst Du, wenn Du Zeit hast einen Blick auf die hochgeladene Beispieldatei werfen, ich weiß mir keinen Reim drauf.

Gruß

Paul1
0 Punkte
Beantwortet von theblackbird_ Mitglied (605 Punkte)
Moin,

Na Paul1, stehst Du mit den verschiedenen Typen von Daten immernoch auf Kriegsfuss? ;-)
Erinnner ich hier in diesem Zusammenhang nicht einen Thread unter dem Motto "Zahlen aus TEXTBoxen als Zahl in eine Tabelle"?
Nun also als Datum. Schau dochmal ob folgendes funktioniert:

If IsDate(TextBox1.Value) Then 'Pruefung ob als Datum interpretierbar
Range("A2") = CDate(TextBox1.Value) ' dann zu Datum umwandeln
Else 'sonst
Range("A2") = TextBox1.Value ' Text aus Box einfach uebernehmen
End If 'Pruefung Ende
.
.
.


Wobei ich mit DatumsWerten in VBA auch immerwieder so meine Schwierigkeiten habe. Teste das mal ausgiebig. Und schau auch mal, was passiert, wenn Du z.B. nur 1 in eine TB schreibst.

Cu
TheBlackBird ®
0 Punkte
Beantwortet von theblackbird_ Mitglied (605 Punkte)
Moin,

Ich sehe gerade, TEXT, ZAHL oder DATUM. Dann reicht das so ja nat. nicht. Siehe Eingabe einer 1 in einer Textbox. Was im Falle Deiner Bespielmappe aus #3 funktionieren sollte, waere folgender Code hinter dem Button "Erfassung":
Private Sub CommandButton1_Click()
Dim intCount As Integer
Dim strTBWert As String
Range("A2:E2").NumberFormat = "General" 'Zielzellen als Standard formatieren
For intCount = 1 To 5 'Zaehlschleife
strTBWert = Me.Controls("TextBox" & intCount).Value 'Text der jeweiligen TextBox auslesen
If IsNumeric(strTBWert) Then 'Pruefung ob als Zahl interpretierbar
If IsDate(strTBWert) And strTBWert Like "*.*.*" Then ' Wenn als Datum interpretierbar und in Form von *.*.*
Cells(2, intCount) = CDate(strTBWert) ' dann zu Datum umwandeln
Else ' sonst
Cells(2, intCount) = CDbl(strTBWert) ' zu Zahl wandeln
End If ' Ende Zahl
Else 'sonst
Cells(2, intCount) = strTBWert ' Text aus Box einfach uebernehmen
End If 'Pruefung Ende
Next intCount

Unload Me
Auswertung.Show

End Sub


Cu
TheBlackBird ®
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo TheBlackBird,

besten Dank für die professionelle Hilfe!

Mit dem Code aus AW5 habe ich alles was ich brauche.

Außerdem bedanke ich mich für die Ausführungen, die ich mir in Ruhe übers Wochenende anschauen werde.

Ich weiß mit VBA habe ich so meine Schwierigkeiten und da kann es leicht möglich sein, dass ich schon bereits Gelerntes wieder durcheinander bringe.

nochmals herzlichen Dank für Alles!

Gruß

Paul1
...