Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1820to1824
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
Inhaltsverzeichnis

Keypress für viele Textboxen

Keypress für viele Textboxen
18.03.2021 09:30:14
Daniel
Hallo,
bislang hatte ich 8 Textboxen, für die ich nur numerische Eingaben zugelassen habe.

Private Sub TextBox1_KeyPress, TextBox2_KeyPress, TextBox3_KeyPress, TextBox4_KeyPress,  _
TextBox5_KeyPress, TextBox6_KeyPress, TextBox7_KeyPress, TextBox8_KeyPress (ByVal KeyAscii As   _
_
MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
'falls Kommas oder Punkte auch erlaubt sein sollen, muss das Case erweitert werden
'Case 48 To 57, 43 To 46
Case Else: KeyAscii = 0
MsgBox "Es sind nur Ziffern erlaubt!", _
vbInformation, "Hinweis"
End Select
End Sub

Nun sollen da noch gefühlte 50 Textboxen dazu kommen.
Gibt es eine einfachere Möglichkeit, das Keypress für die Textboxen gültig zu machen oder muss _
ich für jede Box den Code so erweitern

,TextBox_xyzZahl_Keypress


9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Keypress für viele Textboxen
18.03.2021 09:53:32
Rudi
Hallo,
du willst uns doch nicht weismachen, dass dein Code funktioniert.
Du kannst eine eigene Klasse für deine Textboxen erstellen. Dann brauchst du nur 1x Keypress für alle.
Eigene Klassen stellen aber nicht alle Events zur Verfügung.
Gruß
Rudi

AW: Keypress für viele Textboxen
18.03.2021 10:15:23
Daniel
Hallo Rudi,
nein, ich habe für jede Textbox eine eigene Sub.
Deswegen möchte ich es ja vereinfachen.
Mit Klassen habe ich noch nie gearbeitet.

AW: Keypress für viele Textboxen
18.03.2021 10:27:13
Rudi
gut kenn ich mich auch nicht damit aus.
Code im Userform:
Option Explicit
Dim objTextBox(1 To 50) As New clsUserForm  'anpassen
Private Sub UserForm_Initialize()
Dim objControl As Control, i As Integer
For Each objControl In Me.Controls
If TypeName(objControl) = "TextBox" Then
i = i + 1
Set objTextBox(i).myTextBox = objControl
End If
Next
End Sub

Klassenmodul 'clsUserForm':
Option Explicit
Public WithEvents myTextBox As MSForms.TextBox
Private Sub myTextBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
'falls Kommas oder Punkte auch erlaubt sein sollen, muss das Case erweitert werden
'Case 48 To 57, 43 To 46
Case Else: KeyAscii = 0
MsgBox "Es sind nur Ziffern erlaubt!", _
vbInformation, "Hinweis"
End Select
End Sub


Anzeige
AW: Keypress für viele Textboxen
18.03.2021 10:49:18
Daniel
Hallo Rudi,
Danke. Etwas ähnliches habe ich nun schon mehrfach versucht und erhalte immer wieder irgendwelche Fehler.
Funktion nicht definiert und so weiter und so fort.
Mittlerweile habe ich soviel probiert und an Zeit investiert, dass ich jetzt aufgebe und meine Zeit darauf verbaue, den Code für 37 Textboxen einzufügen.
Sieht zwar doof aus, aber wen interessiert es ...

AW: Keypress für viele Textboxen
18.03.2021 10:31:40
Daniel
Hi
Kann man mit Klassen machen.
Muss man aber verstehen, mir persönlich ist das zu kompliziert.
Bei vielen Eingabewerten könnte man sich auch mit einer Listbox und einer einzigen Textbox behelfen.
Dabei wird dann der Textboxwert in die Ausgewählte Zeile der Listbox geschrieben.
Das ergibt dir mit nur zwei Steuerelementen eine beliebige Zahl von Eingabefeldern (je nach Anzahl der Elemente, die du zuvor der Listbox hinzugefügt hast).
Du benötigst nur zwei kleine Makros:
a) im Click-Event der Listbox:
Textbox1.Text = Listbox1.Text
b) im Change-Event der Textbox:
with Listbox1
if .ListIndex >= 0 then .List(.ListIndex) = Textbox1.Text
End With
Dh bei Auswahl eines Listboxeintrags wird der Listbox Wert in die Textbox geschrieben und bei Änderung in der Textbox wird der ausgewählte Listboxwert geändert.
Wenn man für jede Eingabe noch einen Hinweistext braucht, dann kann man mit einer zweispaltigen Listbox arbeiten und in der ersten Spalte den Hinweistext anzeigen.
Gruß Daniel

Anzeige
AW: Keypress für viele Textboxen
18.03.2021 11:00:46
Daniel
Hallo Nepumuk,
Deine Testdatei funktioniert einwandfrei :-)
Ich schau jetzt mal wie ich das bei mir eingebaut bekomme.
Lieben Dank.

AW: Keypress für viele Textboxen
18.03.2021 11:57:03
Daniel
Hi
mal ne klassenfreie alternative für eine beliebige Anzahl von Eingabefeldern
funktioniert nach dem von mir bereits beschriebenen Prinzip mit List- und Textbox, allerdings mit etwas mehr komfort als der rudimentär-Code
schau dir mal das Beispiel an.
https://www.herber.de/bbs/user/144925.xlsm
Gruß Daniel

Anzeige
AW: Keypress für viele Textboxen
19.03.2021 10:34:28
Daniel
Vielen, vielen Dank.
Das sieht ja richtig toll aus. Ich schau mal wie ich das für meine Zwecke anpassen kann.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige