das nachfolgende KeyPress-Ereignis gilt nur für "txtBetrag". Wie kann ich dieses Ereignis über eine Schleife für mehrere Textboxes anwenden? Bitte nicht über die intCounter-Methode, da die Textboxes nicht fortlaufend nummeriert sind.
Gruss Rainer
Gruss Rainer
Private Sub UserForm_Terminate()
Code eingefügt mit Syntaxhighlighter 1.14
Dim mycontrol As Control
For Each mycontrol In UserForm1.Controls
If Mid(mycontrol.Name, 1, 7) = "TextBox" Then
UserForm1.Controls(mycontrol.Name).Value = Trim(UserForm1.Controls(mycontrol.Name).Value)
End If
Next mycontrol
End Sub
Gruß
Nepumuk
nicht immer neue Beiträge angfangen da geht die Übersicht verloren. Es gibt auch noch einige Leute die Arbeiten müßen und nur in einem gewissen Zeitrahmen Fragen im Forum beantworten können. Meine Frage zu Deinem Wissen in VBA hast Du eigentlich nicht umfassend beantwortet. Aber ich hatte ja geschrieben das es nicht einfach ist.
Ich schildere den Fall für den ich es angewendet habe.
Ich habe eine Userform mit ca. 250 Textboxen, die individuelle Namen haben. Diese Textboxen sollen in Fünf Hauptgruppen eingeteilt werden ( da unterschiedliche Bearbeitung des Change Ereignisses) In jeder Textbox steht unter Text die Nummer der Hauptgruppe. Beim Start der Userform wird die Zusammenfassung gemacht. Na dann viel Erfolg.
Private Sub UserForm_Activate() in ein Klassemodul Beispiel Klasse1 Sub TextGroup_Change()
Code eingefügt mit Syntaxhighlighter 1.16
In ein Modul
Public TextBoxen1() As New Klasse1
Public TextBoxen2() As New Klasse2
Public TextBoxen3() As New Klasse3
Public TextBoxen4() As New Klasse4
Public TextBoxen5() As New Klasse5
in die Userform
Option Explicit: Option Compare Text
Dim cb As Control
Dim TextCount1 As Integer, TextCount2 As Integer, TextCount3 As Integer
Dim TextCount4 As Integer, TextCount5 As Integer
' Textbox-Klassen setzen
TextCount1 = 0: TextCount2 = 0: TextCount3 = 0: TextCount4 = 0: TextCount5 = 0
For Each cb In Me.Controls
If TypeName(cb) = "TextBox" Then
Select Case cb.Text
Case "1"
TextCount1 = TextCount1 + 1
ReDim Preserve TextBoxen1(1 To TextCount1)
Set TextBoxen1(TextCount1).TextGroup = cb
cb.Text = ""
Case "2"
TextCount2 = TextCount2 + 1
ReDim Preserve TextBoxen2(1 To TextCount2)
Set TextBoxen2(TextCount2).TextGroup = cb
cb.Text = 0
Case "3"
TextCount3 = TextCount3 + 1
ReDim Preserve TextBoxen3(1 To TextCount3)
Set TextBoxen3(TextCount3).TextGroup = cb
cb.Text = ""
Case "4"
TextCount4 = TextCount4 + 1
ReDim Preserve TextBoxen4(1 To TextCount4)
Set TextBoxen4(TextCount4).TextGroup = cb
cb.Text = ""
Case "5"
TextCount5 = TextCount5 + 1
ReDim Preserve TextBoxen5(1 To TextCount5)
Set TextBoxen5(TextCount5).TextGroup = cb
cb.Text = ""
End Select
End If
Next cb
End Sub
Option Explicit
Public WithEvents TextGroup As MSForms.TextBox
If Auftrag.Tag <> "0" Then If TextGroup.Value <> "" Then Numerisch Auftrag, TextGroup.Name
End Sub
in ein Modul
Sub Numerisch(Modul, Name As String)
On Error GoTo Ende
If Not IsNumeric(Modul.Controls(Name)) Then
Modul.Controls(Name) = Mid(Modul.Controls(Name), 1, Len(Modul.Controls(Name)) - 1)
Beep
End If
Ende:
End Sub
und Bitte dran Denken nicht wieder einen neuen Beitrag beginnen, wegen der Übversicht.
Gruß Georg
Gruß Hajo
Gruss Rainer
Gruß Rainer