Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Textbox als Zahl
15.06.2009 20:19:03
Dennis
Hallo zusammen
Ich versuche Krampfhaft per Textbox Zahlenwerte zu übertragen. Doch sie werden immer als Text erkannt und somit kann ich mit diesen Werten nicht weiterrechnen.
Ich weiss das es ungefähr 1000 Topics zu diesem Thema gibt doch egal wo ich den gefundenen Code hinkopieren. Es will einfach nicht funktionieren.
In Textfeld 4-24 werden Zahlenwerte eingetragen.
Option Explicit

Private Sub CommandButton1_Click()
Dim liZeile As Integer
Dim lcTXTbox As Control, liSpalte As Integer
liZeile = 5
Do Until Sheets("Messwerte").Range("A" & liZeile) = ""
liZeile = liZeile + 1
Loop
liSpalte = 65
For Each lcTXTbox In Controls
If TypeName(lcTXTbox) = "TextBox" Then
If IsNumeric(lcTXTbox) = True And Not IsDate(lcTXTbox) = True Then
Sheets("Messwerte").Range(Chr(liSpalte) & liZeile).Value = Val( _
lcTXTbox)
Else
Sheets("Messwerte").Range(Chr(liSpalte) & liZeile).Value = lcTXTbox
End If
lcTXTbox = ""
liSpalte = liSpalte + 1
End If
Next
End Sub



Private Sub CommandButton2_Click()
Unload Me
End Sub



Private Sub CommandButton3_Click()
Unload Me
End Sub



Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox7_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox8_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox9_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox11_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox12_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox13_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox14_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox15_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox16_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox17_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox18_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox19_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox20_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox21_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox22_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox23_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub TextBox24_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46: KeyAscii = 44
End Select
End Sub



Private Sub UserForm_Click()
End Sub


Vielen Dank im Voraus!
Gruss Dennis

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox als Zahl
15.06.2009 20:40:16
Jens
Hallo Dennis

If IsNumeric(lcTXTbox) = True And Not IsDate(lcTXTbox) = True Then


Hier stellst Du die Bedingung, dass der Wert der Textbox numerisch sein soll, aber kein Datum sein darf.
Excel interpretiert aber eine Zahl automatisch als Datum.
Versuch mal das hier:
Sheets("Messwerte").Range(Chr(liSpalte) & liZeile).Value = CDbl(lcTXTbox)
Gruß aus dem Sauerland
Jens

AW: Textbox als Zahl
15.06.2009 21:09:02
Dennis
Leider funktionert es immernoch nicht.
Ich habe diese Zeile
Sheets("Messwerte").Range(Chr(liSpalte) & liZeile).Value = Val( _lcTXTbox)
durch
Sheets("Messwerte").Range(Chr(liSpalte) & liZeile).Value = CDbl(lcTXTbox)
ersetzt. Ich hoffe ich habe das richte ersetzt.
Gruss Dennis
Anzeige
AW: Textbox als Zahl
15.06.2009 21:15:23
Jens
Hi Dennis
WAS funkt denn nicht?
Mit der Abfrage, die ich Dir interpretiert habe, KANN das auch nicht funken.

If IsNumeric(lcTXTbox) = True And Not IsDate(lcTXTbox) = True Then


heißt nichts anderes, als:
Wenn lcTXTbox eine Zahl ist, und es kein Datum ist, dann mache was.
Diese beiden Bedingungen können NIE eintreffen.
Wenn der Wert der Textbox eine Zahl ist, dann ist es auch automatisch für Excel ein Datum.
Wenn in der Textbox die Zahl 1 steht, dann ist das für Excel das Datum 01.01.1900
Gruß aus dem Sauerland
Jens

Anzeige
AW: Textbox als Zahl
15.06.2009 21:31:43
Dennis
So das mit den Zahlen scheint jetzt zu funktionieren. ICh hab noch ein Textfeld 25 indem ein Datum eingetragen werden muss. Nun schreibt er mir nichtmehr das richtige Datum. Irgendwie bin ich in der Sackgasse. Muss ich alle Textfelder einzeln coden?

Private Sub CommandButton1_Click()
Dim liZeile As Integer
Dim lcTXTbox As Control, liSpalte As Integer
liZeile = 5
Do Until Sheets("Messwerte").Range("A" & liZeile) = ""
liZeile = liZeile + 1
Loop
liSpalte = 65
For Each lcTXTbox In Controls
If TypeName(lcTXTbox) = "TextBox" Then
If IsNumeric(lcTXTbox) = True Then
Sheets("Messwerte").Range(Chr(liSpalte) & liZeile).Value = CDbl( _
lcTXTbox)
Else
Sheets("Messwerte").Range(Chr(liSpalte) & liZeile).Value = lcTXTbox
End If
lcTXTbox = ""
liSpalte = liSpalte + 1
End If
Next
End Sub


Anzeige
AW: Textbox als Zahl
15.06.2009 21:48:29
Jens
Hi
Lad die Mappe mal hoch, dann kann man sich das alles mal genauer Anschauen.
Sensible Daten kannst Du anonymisieren.
Hauptsache der Aufbau passt.
Gruß aus dem Sauerland
Jens
AW: Textbox als Zahl
15.06.2009 22:19:15
Christian
Hallo,
mein Ansatz: prüfe zunächst auf Datum ,dann auf Zahl, andernfalls Text übertragen.
Bsp:

Option Explicit
Private Sub CommandButton1_Click()
Dim lngRow As Long, intCol As Integer
Dim cntr As Control
intCol = 1      'Spalte A
With Sheets("Messwerte")
If Len(.Cells(.Rows.Count, 1)) Then Exit Sub
lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
lngRow = IIf(lngRow 

Gruß
Christian

Anzeige
AW: Textbox als Zahl
15.06.2009 22:33:10
Dennis
Danke für deine Antwort. Jetzt habe ich das ganze andersrum.
AW: Textbox als Zahl
15.06.2009 23:44:15
Dennis
Kann es sein das ich etwas vergesse? Wieso erkennt er 2.6.09 als Zahl an und nicht als Datum? Solange das nicht hinhaut können die Bedingungen doch garnicht funktionieren.
AW: Textbox als Zahl
16.06.2009 01:49:40
Dennis
Jetzt habe ich nurnoch das Problem sobald eine Komma Stelle im Wert ist wird mir das ganze als Datum erkannt. Was kann ich dagegen tun?

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige