Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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
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 ?

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
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
.

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige