Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
964to968
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
964to968
964to968
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ereignis von Laufzeit-Checkbox

Ereignis von Laufzeit-Checkbox
08.04.2008 22:37:00
Laufzeit-Checkbox
Hallo liebes Forum,
mit folgendem Code

Private Sub UserForm_Initialize()
AnzMitarbeiter = UBound(MitarbeiterNameArray)
Me.Height = Me.Height + 15 * AnzMitarbeiter + 20 + 10
Me.AbbruchCommandButton.Top = Me.AbbruchCommandButton.Top + 15 * (AnzMitarbeiter) + 20 + 10
Me.OKCommandButton.Top = Me.OKCommandButton.Top + 15 * (AnzMitarbeiter) + 20 + 10
For CheckBoxZähler = 1 To AnzMitarbeiter
CheckBoxName = Bereinigt(MitarbeiterNameArray(CheckBoxZähler)) & "CheckBox"
Set CheckBox_i = Controls.Add("Forms.CheckBox.1", CheckBoxName)
CheckBox_i.Left = 6
CheckBox_i.Top = 15 * (CheckBoxZähler) '18
CheckBox_i.Width = 99
CheckBox_i.Height = 20
CheckBox_i.Caption = MitarbeiterNameArray(CheckBoxZähler)
CheckBox_i.BackStyle = fmBackStyleTransparent
Next CheckBoxZähler
'alleCheckBox
CheckBoxName = "alleCheckBox"
Set CheckBox_i = Controls.Add("Forms.CheckBox.1", CheckBoxName)
CheckBox_i.Left = 6
CheckBox_i.Top = 15 * (CheckBoxZähler) + 8
CheckBox_i.Width = 99
CheckBox_i.Height = 20
CheckBox_i.Caption = "alle Mitarbeiter"
CheckBox_i.BackStyle = fmBackStyleTransparent
End Sub


passe ich eine Userform zur Laufzeit an, so dass im Dialogfenster für jeder im Tabellenblatt gefundene Mitarbeiter (MitarbeiterNameArray) ein Kontrollkästchen und zusätzlich eine Kontrollkästchen "alle Mitarbeiter" exisitiert.
Nun will ich das Ereignis des Anhakens/ Haken-Entfernens dieses letzten Kontrollkästchens abfangen.
Ich dachte das mit


Private Sub alleCheckBox_Click()
End Sub


zu erreichen, obwohl das Kontrollkästchen erst während der Laufzeit erzeugt und benannt wird.
Aber nichts passiert.
Könnt Ihr mir helfen?
Danke im Voraus
Adi

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ereignis von Laufzeit-Checkbox
08.04.2008 22:45:47
Laufzeit-Checkbox
Hi,
endlich mal ein Profi!
Du brauchst ein Klassenmodul, Beispiele in der Recherche.
mfg Laie Herbert

AW: Ereignis von Laufzeit-Checkbox
09.04.2008 06:54:56
Laufzeit-Checkbox
Es geht auch ohne Klassenmodul, aber recht unelegant. Man kann den nötigen Code zur Laufzeit erzeugen. Hier mal ein Ausschnitt aus einem Code, den ich vor lannger Zeit gestrickt habe (fragt mich nicht mehr nach Details dazu :-):
...
' hier werden zwei Knöpfe und die Checkbox angelegt:
' Buttons für O.K. oder Abbruch anlegen

Set OK_Button = Kurse_aktualisieren.Designer.Controls.Add("Forms.CommandButton.1")
With OK_Button
.Left = 124
.Top = 30 + 20 * (Anzahl_Aktien + 2)
.Width = 48
.Height = 18
.Caption = "OK"
.Cancel = False
.Default = True
.Name = "Command_OK"
End With
Set Abbruch_Button = Kurse_aktualisieren.Designer.Controls.Add("Forms.CommandButton.1")
With Abbruch_Button
.Left = 208
.Top = 30 + 20 * (Anzahl_Aktien + 2)
.Width = 48
.Height = 18
.Caption = "Abbruch"
.Cancel = True
.Default = False
.Name = "Command_Abbruch"
End With
Set Kopieren_CheckBox = Kurse_aktualisieren.Designer.Controls.Add("Forms.CheckBox.1")
With Kopieren_CheckBox
.Left = 240
.Top = 6
.Height = 15
.Caption = "Kopieren"
.Value = False
.Name = "Kopieren_CheckBox"
End With
' hier wird der dazu gehörige Code zur Laufzeit erzeugt:
' Definition des Code Modules für das Formular
With Kurse_aktualisieren.CodeModule
i = .CountOfLines
If i = 2 Then
.InsertLines i, "": i = i + 1
Else
i = 1
End If
' Definition der Prozedur für den OK Button
.InsertLines i, "Private Sub Command_OK_Click()": i = i + 1
.InsertLines i, "Datum_Pub = Datum_neu": i = i + 1
.InsertLines i, "Abbruch = False": i = i + 1
.InsertLines i, "LeereEingabe = False": i = i + 1
.InsertLines i, "Kopieren_Kurse_Kommentar = Kopieren_Kurse_Wert.Value": i = i + 1
For Index = 1 To Anzahl_Aktien
.InsertLines i, "If Feldwert_" + CStr(Index) + ".Value  """" Then": i = i + 1 ' """"  _
= "", da sonst das Ende des Strings erkannt würde
.InsertLines i, "   Kurs_Pub(" + CStr(Index) + ") = Feldwert_" + CStr(Index) + ".Value" _
: i = i + 1
.InsertLines i, "Else": i = i + 1
.InsertLines i, "   LeereEingabe = True": i = i + 1
.InsertLines i, "End If": i = i + 1
Next Index
.InsertLines i, "Unload Me": i = i + 1
.InsertLines i, "End Sub": i = i + 1
' Definition der Prozedur für den Abbruch Button
.InsertLines i, "Private Sub Command_Abbruch_Click()": i = i + 1
.InsertLines i, "Abbruch = True": i = i + 1
.InsertLines i, "Unload Me": i = i + 1
.InsertLines i, "End Sub": i = i + 1
' Definition der Prozedur für das Schließen Feld. Hier Schließen = Abbruch
.InsertLines i, "Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)" _
: i = i + 1
.InsertLines i, "If CloseMode = vbFormControlMenu Then Abbruch = True": i = i + 1
.InsertLines i, "End Sub": i = i + 1
' Definition der Prozedur für die Kopieren Checkbox
Kopieren_Kurs = False
.InsertLines i, "Private Sub Kopieren_CheckBox_Click()": i = i + 1
.InsertLines i, "If Kopieren_CheckBox.Value = False Then": i = i + 1
.InsertLines i, "Kopieren_Kurse_Label.Visible = False": i = i + 1
.InsertLines i, "Kopieren_Kurse_Wert.Visible = False": i = i + 1
For Index = 1 To Anzahl_Aktien
.InsertLines i, "Feldwert_" + CStr(Index) + ".Value = """"": i = i + 1
Next Index
.InsertLines i, "Else": i = i + 1
.InsertLines i, "Kopieren_Kurs = True": i = i + 1
.InsertLines i, "Kopieren_Kurse_Label.Visible = True": i = i + 1
.InsertLines i, "Kopieren_Kurse_Wert.Visible = True": i = i + 1
For Index = 1 To Anzahl_Aktien
.InsertLines i, "Feldwert_" + CStr(Index) + ".Value = Letzter_Kurs(" + CStr(Index) + ") _
": i = i + 1
Next Index
.InsertLines i, "End If": i = i + 1
.InsertLines i, "End Sub": i = i + 1
End With


Unelegant, aber läuft seit Jahren.
Gruß Harald

Anzeige
AW: Ereignis von Laufzeit-Checkbox
09.04.2008 08:52:01
Laufzeit-Checkbox
Danke Harald, Danke Herbert.
ich muss zugeben, vor Klassenmodulen habe ich "Manschetten".
Meine Lösung:
Da die UserForm schon von Beginn an vorhanden ist und während der Laufzeit nur erweitert wird, habe ich nun auch die "problematische" alleCheckBox von Anfang an integriert (alle Mitarbeiter-CheckBoxen werden hingegen erst zur Laufzeit erzeugt).
So kann ich mittels alleCheckBox_Click wie gewohnt das Ereignis abfangen.
Nichtsdestotrotz ist die Lösung mittels Klassenmodul wohl die 'einzig wahre' Methode. Nur leider hab ich auf die Schnelle in der Recherche kein passendes Beispiele finden können. Mein Fehler!
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige