VBA: Variablenwert aus Textbox in Zahl ausgeben?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Schnellschuss (ungetestet):

Versuche es mal mit:

ActiveSheet.Cells(7 , 6).Value = gewicht * 1

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)

iInjection 
Fragesteller
 15.04.2019, 13:51

Was kann eine Antwort doch Simpel sein! Vielen vielen Dank, hat gut geklappt (hätte man halt auch selbst drauf kommen kömnnen *facepalm*)

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

iInjection 
Fragesteller
 15.04.2019, 12:19
  1. Ja, Value=Wert, schon klar;

Das Problem ist halt das Excel dann im Tabellenblatt sagt "Zahl als Text gespeichert) und die Formatierungen nicht greifen...

0
IQMarodeBanane  15.04.2019, 12:54
@iInjection

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.

0

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.

Woher ich das weiß:Hobby

iInjection 
Fragesteller
 15.04.2019, 12:19

Das Problem ist halt das Excel dann im Tabellenblatt sagt "Zahl als Text gespeichert) und die Formatierungen nicht greifen...

0
Suboptimierer  15.04.2019, 12:36
@iInjection

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.

1
iInjection 
Fragesteller
 15.04.2019, 12:43
@Suboptimierer

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?

0
Suboptimierer  15.04.2019, 14:02
@iInjection

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.

0