Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
580to584
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
580to584
580to584
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dynamische Forms

Dynamische Forms
08.03.2005 15:08:55
Torsten
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamische Forms (Erledigt)
08.03.2005 16:01:35
Torsten
Hat sich erledigt,
habe mit Erase den Array gelöscht.... ;-)
Torsten
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige