Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: In allen TextBoxen nur Zahlen

In allen TextBoxen nur Zahlen
07.12.2016 11:28:01
Max2
Hallo Leute,
ich habe eine Userform mit 86 TextBoxen
Ich möchte dass man ausschließlich ganze Zeilen Eingeben kann.
Mein Ansatz bis jetzt:

Dim tb As TextBox
Private Sub TextBox86_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Application.DisplayAlerts = False
For Each tb In UserForm1
If Left(tb.Name, 7) = "TextBox" Then
Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End If
Next
Application.DisplayAlerts = True
End Sub
Der Code geht nicht, ich bekomme eine Fehlermeldung bei For Each tb und außerdem steht dass ganze im KeyPress Event von TextBox86, es soll ja aber für alle gelten.
Was muss ich verändern anders machen damit es geht ?
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In allen TextBoxen nur Zahlen
07.12.2016 11:47:38
Max2
Habe es jetzt noch in eine Function geschrieben, weiß aber nicht recht wie ich die in UserForm_Initialize integrieren soll
Hier Function:

Public Function TextBoxen(ByVal KeyAscii As MSForms.ReturnInteger)
Dim tb As MSForms.TextBox
For Each tb In UserForm1
If Left(tb.Name, 7) = "TextBox" Then
Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End If
Next
End Function
Ist der Name der Function so Ok oder sollte er so Lauten:

Public Function TextBoxen(ByVal KeyAscii As MSForms.ReturnInteger) As MSForms.TextBox

Anzeige
AW: In allen TextBoxen nur Zahlen
07.12.2016 14:09:23
Fennek
Hallo Max,
anbei keine ideale, aber funktionierende Lösung:

'in Code der UserForm für JEDE Textbox
Private Sub TextBox2_Change()
T2
End Sub
'in allgemeines Modul
Sub T2()
With UserForm1
Debug.Print .ActiveControl.Name, UserForm1(.ActiveControl.Name).Value
End With
End Sub
Da die Makros einfache Texte sind, kann man mit copy/paste die Codes auch für 86 Textboxen einigermaßen erstellen.
mfg
Anzeige
AW: In allen TextBoxen nur Zahlen
07.12.2016 14:52:26
Max2
Hallo Fennek,
danke erstmal für den Vorschlag, habe jedoch eine Lösung gefunden.
Hier Lösung:
In Klassen Modul:

Option Explicit
Public WithEvents clsTxtBox As MSForms.TextBox
Private Sub clsTxtBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub
In Normales Modul:

Private Sub NurZahlen()
Dim i
Dim TxtBox(86) As New Klasse1
For i = 1 To 86
Set TxtBox(i).clsTxtBox = UserForm1.Controls("TextBox" & i)
Next i
UserForm1.Show
End Sub

Anzeige
Gelöst
07.12.2016 14:52:54
Max2
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige