Anzeige
Archiv - Navigation
184to188
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
184to188
184to188
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

KeyPress-Ereignis in Schleife?

KeyPress-Ereignis in Schleife?
25.11.2002 13:50:07
Rainer Wittstock
Hallo liebe Excel-Freunde,
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

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

Betreff
Datum
Anwender
Anzeige
Re: KeyPress-Ereignis in Schleife?
25.11.2002 14:25:55
Nepumuk
Hallo Rainer,
das KeyPress-Ereigniss hat eine eindeutig zuordnung zum entsprechenden Steuerelement. Das kannst du in keine Schleife setzen. Wenn du in deine Textboxen Leerzeichen verhindern möchtest dann fällt mir nur eine Möglichkeit ein.

Private Sub UserForm_Terminate()
    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
     Code eingefügt mit Syntaxhighlighter 1.14

Gruß
Nepumuk

Anzeige
Re: KeyPress-Ereignis in Schleife?
25.11.2002 16:06:10
Georg_Zi
Hallo Rainer

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.


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 ExplicitOption Compare Text
Dim cb As Control
Dim TextCount1 As Integer, TextCount2 As Integer, TextCount3 As Integer
Dim TextCount4 As Integer, TextCount5 As Integer

Private Sub UserForm_Activate()
'   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

in ein Klassemodul Beispiel Klasse1
Option Explicit
Public WithEvents TextGroup As MSForms.TextBox

Sub TextGroup_Change()
    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

 

     Code eingefügt mit Syntaxhighlighter 1.16

und Bitte dran Denken nicht wieder einen neuen Beitrag beginnen, wegen der Übversicht.

Gruß Georg
Gruß Hajo

Anzeige
Re: KeyPress-Ereignis in Schleife?
25.11.2002 23:57:53
Rainer Wittstock
Ich Danke dir Nepumuk für deinen Tip, nun muss ich leider 15 KeyPress-Ereignisse schreiben (kopieren).

Gruss Rainer

Re: KeyPress-Ereignis in Schleife?
26.11.2002 00:02:58
Rainer Wittstock
Danke Georg für deine ausführliche Information.

Gruß Rainer

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige