Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Textboxinhalt as Integer ???
#1
Hallo,

habe einige TextBoxen, die ich bereits durch angepasste Länge (max Length im Eigenschaftsfeld) und über folgende Prozedur:

'nur ganzzahlige Zahlen 0-9 zulassen

Private Sub edtBussgelder_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select

beschränke.

Nach der der Übernahme durch :

'Ermittlung der letzten verwendeten Zeile
ZeileMax = .UsedRange.Rows.Count
Zeile = ZeileMax + 1

.Range("A" & Zeile).Value = Me.edtMPNr

in eine Tabelle, werden diese leider nur als Text übernommen, was wiederum unpraktisch für weitere Berechnungen ist.

ich habe versucht den Inhalt der TextBoxen als Zahl zu definieren und bin trotz Internetrecherche kläglich gescheitert, was unterschiedlichste gründe hat.
-fehlendes Verständnis wo ich dieses einbaue, wie ich es auf meinen Fall anwende... ob es sich mit dem AsciiCode vereinbart???
wünschenswert wäre etwas wie:
dim edt.MpNr.value as integer

oder gibt es eine Möglichkeit beim Übertragungsprozess in die Tab die Texte in Zahlen um zuwandeln?
habe vallng im Internet gefunden, mein VBA erkennt dies scheinbar nicht?

steh grad völlig auf dem Schlauch...
wäre für jede Hilfe dankbar
Antworten Top
#2
Hallo,

eine TextBox liefert Text und Du musst den Wert mit einer Umwandlungfunktion (CInt, CLng, CDbl....) umwandeln.

Code:
.Range("A" & Zeile).Value = CInt(Me.edtMPNr)
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Hallo,

dafür gibt es Typ-Umwandlungsfunktionen. Gib im VBA Editor in der Hilfe "Typ-Umwandlungsfunktionen" ein und schau sie Dir an.

Für Dezimalzahlen geht z.B CCur()

Dein Beispiel ginge so:

.Range("A" & Zeile).Value = CCur(Me.edtMPNr)

Man kann aber eine als Text vorliegende Zahl durch eine Rechenoperation mit einer Zahl in eine Zahl umwandeln.
Viele Worte für das:

.Range("A" & Zeile).Value = Me.edtMPNr * 1

Gruß Atilla
Antworten Top
#4
Ihr seid SUPER

Danke

wenn doch alle Dinge so einfach wären ;)
Antworten Top
#5
Habe ein neues ähnliches Problem in meiner Plausibilitätsprüfung

das Speichern/übertragen in eine ExcelTabelle als Zahl klappt.

ABER:
mit *1 kommt hier leider immer ein Fehler: 13 Typen unverträglich

If edtA.Value * 1 + edtB.Value * 1 + edtC.Value * 1 + edtE.Value * 1 < edtF.Value * 1 Then
Lauf = Lauf + 1
MsgStr = MsgStr & CStr(Lauf) & ". TEXT" & vbCrLf
If Not IstSel Then
IstSel = True
edtA.SetFocus
End If
End If

Seltsamerweise funktionierte es zunächst im UserForm gut, bis ich die Datei geschlossen und wieder geöffnet habe. Zufall?

würde das mit Clng gehen und wenn wie? so leider auch nicht :(

If CLng(edtA.Value) < CLng(edtF.Value) Then
Antworten Top
#6
Hallo,

(16.03.2017, 13:11)soldblub schrieb: Seltsamerweise funktionierte es zunächst im UserForm gut, bis ich die Datei geschlossen und wieder geöffnet habe. Zufall?

ohne das Drumherum vom deinen Code zu kennen, vermute ich mal: der Code steht im Initialize-Ereignis der Userform, welche wiederum beim Starten der Datei geöffnet wird. Da sind aber deine TextBoxen wahrscheinlich noch leer und mit einem Leerstring kann nicht multipliziert werden. Versuche es mal mit Val-Funktion.

Code:
If Val(edtA.Value) * 1 + Val(edtB.Value) * 1 + Val(edtC.Value) * 1 + Val(edtE.Value) * 1 < Val(edtF.Value) * 1 Then
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • soldblub
Antworten Top
#7
Danke dir.

habe die Überprüfung zwar nicht im Initialize sondern im eigen Sub InhalteCheck aber Problem ist trotzdem durch Val(edt...)*1 gelöst.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste