VBA: Variablenwert aus Textbox in Zahl ausgeben?
Moin,
Ich möchte aus einer UserForm (Textbox) einen wert (numerisch) als Zahlenwert in eine Zelle ausgeben.
Mein Problem besteht darin, dass Excel den wert als Text erkennt...
Public gewicht As Single
'----
ActiveSheet.Cells(7 , 6).Value = gewicht
Hat jemand eine Idee, wie ich da eine Zahl, mit der ich in Excel selber rechnen kann, draus macht
3 Antworten
Schnellschuss (ungetestet):
Versuche es mal mit:
ActiveSheet.Cells(7 , 6).Value = gewicht * 1
"Value" sollte automatisch den Wert erkennen, bist du dir sicher, dass es eine Zahl ist?
Ansonsten über die typischen Umwege:
-Eine weitere Variable schreiben, die erst in der Prozedur deklariert wird (Dim Zweckvariable as double) und dann zweckvariable = gewicht, zweckvariable einfügen
-Überprüfen, ob dein Zielfeld als "Zahl" oder als "Standard" formatiert ist, auf Zahl wechseln
-"Text in Spalte" per Code ausführen, einfach Bereich auswählen per Select und
Selection.TextToColumns Destination:=Range("F1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
- Ja, Value=Wert, schon klar;
Das Problem ist halt das Excel dann im Tabellenblatt sagt "Zahl als Text gespeichert) und die Formatierungen nicht greifen...
Hast du den Zwischenweg über eine zusätzliche Variable bereits probiert? Ansonsten sollte der Code den ich dir gegeben hatte funktionieren, er konvertiert Text in Zahlen, was auch immer halt ausgewählt wurde.
Single ist ein numerischer Wert. Im VBA-Code hast du alles richtig gemacht.
Die Zelle in Excel ist anscheinend als Text formatiert. Entweder du formatierst sie als Standard oder Zahl oder du zeichnest ein Makro auf, im dem du die Zelle als Zahl formatierst und kopierst dir den entsprechenden Befehl in deine Prozedur. Dann wird allerdings die Zelle jedes Mal als Zahl formatiert.
Das Problem ist halt das Excel dann im Tabellenblatt sagt "Zahl als Text gespeichert) und die Formatierungen nicht greifen...
Drück auf der Zelle F2 und Enter.
Die Textformatierung von Excel scheint ganz schön hartnäckig zu sein. Hatte neulich schon so einen Fall gehabt.
Wenn ich das jetzt allerdings jedes mal 40x wiederhole ist der sinn meines VBA Programms irgendwie sinnfrei... Da sollen einfach die Zahlen rein... Kann das an der "TextBox" im Formular liegen?
Es gibt auch an der Zelle links so ein gelbes Warndreieck. Wenn du darauf klickst, öffnet sich ein Menü, in dem es einen Punkt gibt, mit dem du mehrere Zellen auf einmal korrigieren kannst.
Diese Aktion sollte nur einmal notwendig sein.
An der Textbox kann es nicht liegen. Du verwendest eine Single-Variable, also einen numerischen Typ.
Was kann eine Antwort doch Simpel sein! Vielen vielen Dank, hat gut geklappt (hätte man halt auch selbst drauf kommen kömnnen *facepalm*)