216 Aufrufe
Gefragt in Tabellenkalkulation von fat61 Einsteiger_in (49 Punkte)
Hallo, ich habe folgendes Problem und komme nicht weiter.

Die Zelle ist als Zahl mit Nachkommastellen formatiert. Wenn ich über die Textbox den Wert 1,23 eintippe dann schreibt er mir in die Zelle 123.

Wie schreibe ich das er den Wert einfach übernimmt?

Danke!

3 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)

Hallo,

wie schreibst du denn die Zahl aus der Textbox in die Zelle?

So sollte die Kommazahl eigentlich übernommen werden:

Range("A1") = CDbl(TextBox1.Value)


Gruß

M.O.

0 Punkte
Beantwortet von fat61 Einsteiger_in (49 Punkte)
Coo, danke hat funktioniert. Was bedeutet CDb1?

und ich habe über initialzie das spiel auch umgedreht so das der Wert in der Textbox steht wenn ich die Userform aufmache. Was muss ich mach damit er mir in der Texbox alle Nachkommastellen anzeigt?. Weil aus 1,00 macht er jetzt leider nur 1
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

CDbl bedeute eine Zahl vom Typ Double. In der TextBox steht - wie der Name schon sagt - immer Text und Zahlen müssen deshalb erst wieder in Zaheln umgewandelt werden. Da du eine Dezimalzahl übertragen willst muss man den Zahlentyp Double verwenden. Zu Zahlentypen schaue hier: https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/data-type-summary

Die Zahl 1,00 in der Zelle ist nur eine Formatierung, in der Zelle steht jedoch nur 1 - deshalb übernimmt die TextBox auch nur 1 und nicht 1,00. Du musst also das Zellformat mit übernehmen:

    Dim varTyp
    varTyp = Range("D10").NumberFormat
    TextBox1 = Format(Range("D10"), varTyp)

Bis später, Karin

...