Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Wert aus Textbox in Tabelle schreiben





Frage

Hallo zusammen ich habe folgendes Problem: Ich habe ein Formular erstellt mit einigen Textboxen, deren Inhalt sowohl in Summe im Formular selbst gezeigt wird (TextBox 24) und einzelen in eine Excel Tabelle geschrieben wird. Dies funktioniert auch ganz gut. Nur steht der Wert in der Tabelle im Textformat und lässt sich nicht berechnen. So sieht das Ganze aus: So habe ich den Wert z.B. in der TextBox25 formatiert: Private Sub TextBox25_AfterUpdate() TextBox25.TextAlign = fmTextAlignRight TextBox25 = Format(TextBox25, "#,##0.00 €") TextBox24_Change End Sub Und so wird der Wert in die Tabelle "Gebühren" übernommen: Private Sub CommandButton3_Click() Set Frm = USRGebührenerfassung Sheets("Gebühren").Select Range("B65536").End(xlUp).Offset(1, -1).Select With Frm ActiveCell.Offset(0, 19).Value = .TextBox25.Value ActiveCell.Offset(0, 20).Value = .TextBox24.Value End With End Sub Was mache ich falsch ?

Antwort 1 von Hajo_Zi

Hallo Tonerl,

wie es der Name schon sagt enthält eine Textbox Text. Um es als Zahl in die Tabelle zu schreiben mußt Du eine Umwandlungsfunktion benutzen
=Cdbl(Textbox1)

GRuß Hajo

Antwort 2 von Tonerl

Hallo Hajo,
vielen Dank für die schnelle Antwort, aber ich bin blutiger Anfänger in Sachen VBA und weiß daher nicht
wo ich diese "Umwandlungsfunktion =Cdbl(Textbox1)" einsetzen muss, damit das Ganze auch funktioniert!

Gruß

Tonerl

Antwort 3 von Hajo_Zi

Hallo Tonerl,

dort wo Du die Textbox in die Zelle schreibst

Range("A1")=Cdbl(Textbox1)

Gruß Hajo

Antwort 4 von Tonerl

Hallo Hajo,
vielen Dank für deinen Hinweis , aber ich hab´s immer noch ganz kapiert.
Ich schreibe aus einer UF mit diversen Textboxen und Comboboxen Zahlen und Texte in eine Excel Tabelle, und zwar immer versetzt um eine Spalte weiter nach rechts. und bei einer neuen Eingabe sucht sich das Programnm die nächste freie Zeile und trägt wieder neue Werte pro Spalte ein.
Die Übergabe der Werte funktioniert im Ganzen so:

Private Sub CommandButton3_Click()
Set Frm = USRGebührenerfassung
Sheets("Gebühren").Select
Range("B65536").End(xlUp).Offset(1, -1).Select
With Frm
ActiveCell.Offset(0, 1).Value = .TextBox1.Text
ActiveCell.Offset(0, 2).Value = .TextBox2.Value
ActiveCell.Offset(0, 3).Value = .TextBox3.Value
ActiveCell.Offset(0, 4).Value = .TextBox30.Value
ActiveCell.Offset(0, 5).Value = .ComboBoxKST1.Value
ActiveCell.Offset(0, 6).Value = .ComboBoxKTR1.Value
ActiveCell.Offset(0, 7).Value = .TextBox28.Value * 1
ActiveCell.Offset(0, 8).Value = .ComboBoxKST2.Value
ActiveCell.Offset(0, 9).Value = .ComboBoxKTR2.Value
ActiveCell.Offset(0, 10).Value = .TextBox29.Value * 1
ActiveCell.Offset(0, 11).Value = .ComboBoxKST3.Value
ActiveCell.Offset(0, 12).Value = .ComboBoxKTR3.Value
ActiveCell.Offset(0, 13).Value = .TextBox27.Value * 1
ActiveCell.Offset(0, 14).Value = .ComboBoxKST4.Value
ActiveCell.Offset(0, 15).Value = .ComboBoxKTR4.Value
ActiveCell.Offset(0, 16).Value = .TextBox26.Value * 1
ActiveCell.Offset(0, 17).Value = .ComboBoxKST5.Value
ActiveCell.Offset(0, 18).Value = .ComboBoxKTR5.Value
ActiveCell.Offset(0, 19).Value = .TextBox25.Value * 1
ActiveCell.Offset(0, 20).Value = .TextBox24.Value * 1
ActiveCell.Offset(0, 21).Value = .TextBox5.Value
ActiveCell.Offset(0, 22).Value = .TextBox10.Value
End With
End Sub

Textbox 5 und 18 und 24 bis 29 beinhalten Zahlen, welche in die Exceltabelle laufen, aber wie schon erwähnt mit einem Textformat, das sich nicht berechnen lässt.
Seid doch bitte so gut und gebt mir für obige Zahlen -übergabe eine genaues Beispiel. Ich komme da einfach nicht weiter.

Antwort 5 von Hajo_Zi

Hallo Tonerl,

überall wo Du Zahlen in die Tabelle schreiben wilst mußt Du

=cdbl(....) schreiben

ich baue die Datei jetzt nicht nach.

Gruß Hajo

Antwort 6 von Tonerl

Hallo Hajo
ich denke, es funktioniert jetzt zum Teil. Wenn ich allerdings in eine Textbox keine Zahl eingebe, d.h. wenn diese Textbox einfach leer bleiben soll und übrsprungen wird, bekomme ich eine Fehlermeldung. "Laufzeitfehler 13" Typen unverträglich.
Lässt sich das nur umgehen, wenn ich überall Werte eingebe z.B: auch "0" , wenn kein Wert eingetragen werden soll. Das wäre sehr umständlich.

Ich habe auch schon probiert die ganze Sache einfach mit *1 zu multiplizieren. Hier habe ich genau den gleichen Effekt. Wenn nicht alle Textboxen gefüllt werden und sei es nur mit "0", dann kommt die Fehlermeldung.

Gruß

Tonerl

Antwort 7 von Hajo_Zi

Hallo Tonerl,

ich vermute mal die Eingabe prüftst Du das nur Zahlen eingegeben werden können?

if Textbox3<>"" then ActiveCell.Offset(0, 3).Value = cdbl(.TextBox3.Value)

Gruß Hajo

Antwort 8 von Tonerl

Hallo Hajo,
supääää !
Es hat funktioniert. Vielen Dank für deine Hilfe und deine Geduld.

Viele Grüße

Tonerl