Dynamische Forms

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Dynamische Forms von: Torsten
Geschrieben am: 08.03.2005 15:08:55

Hallo zusammen,

ich erstelle mir dynamische Controls (z.B. CommandButtons) und mittels u.g. Makro (Beispiel) kann ich diese auch ansprechen (Klick Ereignis). Durch Klick auf den Button werden dynamisch erstellte CheckBox erstellt in einem anderen Frame, etc. (nach Vorlage von Thomas Risi)

Um die Controls immer ansprechen zu können, lass ich u.g. Makro laufen nach deren Erstellung - damit kann ich diese Controls ansprechen. Das Problem ist dass wenn unteres Makro ein paar mal lief, dass dann bei dem Klick Ereignis manche Aktionen doppelt ausgeführt werden.

Woran kann das liegen?

Vielen Dank schon mal,

Torsten


Option Explicit
Dim UFControls() As cUFC


Private Sub UserForm_Initialize()
Dim item As MSForms.Control
Dim n%: n = -1
   
   For Each item In Me.Controls
      
      n = n + 1
      ReDim Preserve UFControls(n)
      Set UFControls(n) = New cUFC
      UFControls(n).Create item
      
   Next
   
End Sub



Im Klassenmodul steht folgender Code
Option Explicit
'Idea by Thomas Risi
'http://rtsoftwaredevelopment.de/


Private WithEvents cmdBtn As MSForms.CommandButton
Private WithEvents txtBox As MSForms.TextBox
Private WithEvents chkBox As MSForms.CheckBox
Private WithEvents optBtn As MSForms.OptionButton
Private WithEvents lstBox As MSForms.ListBox
Private WithEvents cmbBox As MSForms.ComboBox



Public Function Create(cntrl As MSForms.Control) As Object
Set Create = Nothing
If TypeOf cntrl Is MSForms.CommandButton Then
Set cmdBtn = cntrl
Set Create = Me
ElseIf TypeOf cntrl Is MSForms.TextBox Then
Set txtBox = cntrl
Set Create = Me
ElseIf TypeOf cntrl Is MSForms.CheckBox Then
Set chkBox = cntrl
Set Create = Me
ElseIf TypeOf cntrl Is MSForms.OptionButton Then
Set optBtn = cntrl
Set Create = Me
ElseIf TypeOf cntrl Is MSForms.ListBox Then
Set lstBox = cntrl
Set Create = Me
ElseIf TypeOf cntrl Is MSForms.ComboBox Then
Set cmbBox = cntrl
Set Create = Me
End If
End Function

Private Sub chkBox_Change()
test chkBox
End Sub
Bild


Betrifft: AW: Dynamische Forms (Erledigt) von: Torsten
Geschrieben am: 08.03.2005 16:01:35

Hat sich erledigt,

habe mit Erase den Array gelöscht.... ;-)

Torsten


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Dynamische Forms"