Textboxen mit Klassenmodul ansprechen
28.07.2008 08:08:00
Werner
Hallo liebe Freunde!
Versuche z.Zt. einen nach Haserodt abgewandelten Makro einzusetzen, um in zehn Textboxen einer
Userform namens "frmGross" ein Mousedown-Ereignis zu erzeugen, so dass der Makro den Inhalt
derjenigen Textbox, die ich mit der linken Maustaste anclicke, in die Zelle A2 der aktiven Tabelle
schreibt. Hierzu setze ich ein Klassenmodul ein. Leider funktioniert es nicht.
Name des Klassenmoduls: "CTB"
In diesem Klassenmodul befindet sich folgender Code:
Option Explicit
Dim WithEvents TB as MsForms.TextBox
Public Function Create(TextBox As MsForms.TextBox) As Boolean
Set TB = TextBox
If Not TB Is Nothing Then create = True
End Function
'----------------------------------------------------------------
Private Sub TB_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, _
ByVal Y As Single)
[A2] = TB.Text
End Sub
Ferner habe ich im Initialize-Ereignis genannter Userform folgenden Code hinterlegt:
Public Sub Userform_Initialize()
Dim CTBS() As CTB
Dim item As Object
Dim i As Integer
i = -1
For Each item in frmGross.Controls
If TypeOf item Is MSForms.TextBox Then
i = i + 1
Redim Preserve CTBS(i)
Set CTBS(i) = New CTB
CTBS(i).Create item
End If
Next item
End Sub
Wenn ich mit der Maus in ein Textfeld der Userform clicke, passiert nichts. Woran mag das liegen?
(so ein Klassenmodul programmiere ich zum ersten Mal).
In einem zweiten Schritt möchte ich dem Makro noch beibringen, dass er nur bestimmte Textboxen mit
gleichem Namen, aber verschiedenem Index, ansprechen soll (z.B. "Textfeld1", "Textfeld2" usw.) Das
müsste doch mit einer If-Abfrage gehen, die ich irgendwie in das Klassenmodul einbaue?
Bin dankbar für jeden Hinweis! Werner R.