Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
856to860
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textbox optimieren / Prozentwerteingabe

Textbox optimieren / Prozentwerteingabe
20.03.2007 22:27:00
gerhard
Hallo Excelexperten,
in meiner Userform sind mehrere Textboxen.
Hier kann der Anwender Prozentwerte eintippen.
Der Code sollte Fehleingaben abfangen.
Ich finde den Code, den ich derzeit nutze nicht optimal.
Wie könnte ich den Code optimieren.
Hier mein bisheriger Code:

Private Sub textbox175_AfterUpdate()
On Error Resume Next
If Not IsNumeric(CDbl(TextBox175)) Then
If TextBox175 = "" Then Exit Sub
Cancel = True
Exit Sub
End If
On Error GoTo 0
'Komma und Tausenderpunkte setzen. Prüfen obe Feld leer
Select Case CDbl(Me.TextBox175.Value)
Case Is  100
MsgBox "Unzulässiger Prozentwert"
Me.TextBox175.Text = Format(CDbl(1), "##,##0.00") & " %"
End Select
Range("b33") = (Left(Me.TextBox175.Value, Len(Me.TextBox175.Value) - 2) * 1) / 100
End Sub
Vielen Dank für die Hilfe im Voraus
viele grüsse
gerhard

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox optimieren / Prozentwerteingabe
20.03.2007 23:59:18
Ramses
Hallo
If Not IsNumeric(CDbl(TextBox175)) Then
If TextBox175 = "" Then Exit Sub
Cancel = True
Exit Sub
End If
Das ergibt überhaupt keinen Sinn, wenn schon dann so
If Not IsNumeric(CDbl(TextBox175)) or TextBox175 = "" Then
MsgBox "Unzulässiger Prozentwert"
Cancel = True
Exit Sub
End If
Range("b33") = (Left(Me.TextBox175.Value, Len(Me.TextBox175.Value) - 2) * 1) / 100
Das setzt voraus dass IMMER prozentwerte mit einer Nachkommastelle eingegeben sind, ausserdem werden Nachkommastellen abgeschnitten.
Wenn schon dann so
with Range("b33")
.Numberformat = "General"
.Value = CDbl(Me.TextBox175.Value/100)
.Numberformat = "=.00 %"
end with
Die Select Case Anweisung ist OK,... allerdings würde ich dir empfehlen stattdessen von Haus aus in diesem Feld nur Zahleneingaben und Punkt zuzulassen. Schau dir dazu mal in der Hilfe das Ereignis "KeyPress" an

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'nur Großbuchstaben, Zahlen, Leerstelle und Bindestrich
'Kleinbuchstaben werden umgewandelt
Select Case KeyAscii
Case 48 To 57, 46
Case Else
KeyAscii = 0
MsgBox "Bitte vorgegebene Formate verwenden", vbExclamation
End Select
End Sub
Gruss Rainer
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige