ich hoffe Ihr könnt mir bei folgendem Problem helfen:
ich habe eine Haupt-userform mit mehreren CommandButtons. Nun möchte ich per Klick auf einen der CommandButtons eine weitere Userform, mit dem selben Namen wie der Button, anzeigen lassen. Da ich mehr als 10 Userform-Button Paare habe, wollte ich diese Funktion elegant über die Klassenprogrammierung lösen. Allerdings funktioniert der Befehl "ctrl.show" nicht. Ich erhalte folgende Fehlermeldung: "Object doesn't support property or method". Könnt Ihr mir weiterhelfen?
Hier mein Code:
im modul:
Option Explicit
Public clsCommandButtons() As New clsCommandButton
in der Haupt-Userform:
Private Sub Userform_Initialize()
Dim ButtonZaehler As Integer
For Each coElement In Me.Controls
If TypeName(coElement) = "CommandButton" Then
ReDim Preserve clsCommandButtons(0 To ButtonZaehler)
Set clsCommandButtons(ButtonZaehler).clButton = coElement
ButtonZaehler = ButtonZaehler + 1
End If
Next coElement
End Sub
im Klassenmodul:
Option Explicit
Public WithEvents clButton As msforms.CommandButton
Private Sub clButton_Click()
Dim ctrl As Object
For Each ctrl In ThisWorkbook.VBProject.VBComponents
If ctrl.name = clButton.name Then
MsgBox ctrl.name
ctrl.Show
End If
Next
End Sub