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

Eine Sub für mehrere events?

Eine Sub für mehrere events?
13.02.2003 13:33:08
Tim
Hallo,
Ich habe ein UserForm mit 20 Checkboxen. Die Checkboxen Sollen bei jedem klick die Hintergrundfarbe ändern und wenn der Command Button geklickt wird, soll für jede aktivierte Checkbox ein Event ausgefürt werden.
Ist es nun möglich den umständlichen Code zu umgehen, der entsteht wenn ich für jede Checkbox eine _Click() Sub schreibe und für jede CheckBox prüfe, ob Sie aktiv ist oder nicht?
Ich denke da an irgendwas wie:
Sub [irgendeine Checkbox]_Click([Checkboxname])
[Checkboxname].Background = ...
End Sub
und für den CommandButton
For Each Checkbox in UserForm
if Checkbox.Value=True Then ...

...

...
Next
Hab schon ewig rum probiert, aber irgendwie klappt das nicht..

Gruß, Tim.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Eine Sub für mehrere events?
13.02.2003 14:00:55
Michael Scheffler

Hallo,

ja natürlich - Du musst eine eigene Klasse schreiben. Ich habe so etwas für Textboxen in den letzten Wochen ein paar mal gepostet. Suche mal. Wenn es Fragen gibt, melde Dich!

Gruß

Micha

Re: Eine Sub für mehrere events?
14.02.2003 11:09:10
Tim

Hmm, ich hab ein bisserl gesucht und auch einige Dinge gefunden, aber so richtig konnte ich mir die entscheidenden Fragen nicht beantworten. Ich habe hier mal einen Auszug aus dem Script:

Private Sub UserForm2_Initialize()
Dim myCols(1 To 20) As String
Dim currentCol As String
Dim I As Integer
myCols(1) = "A"
myCols(2) = "B"
myCols(3) = "C"
myCols(4) = "D"
'usw bis myCols(20) = "T"
For I = 1 To 20
currentCol = myCols(I)
Columns("" & currentCol & ":" & currentCol & "").Select
If Selection.EntireColumn.Hidden = True Then
[HIER SOLL EINE CHECKBOX MIT DEM NAMEN A ODER B ODER C USW AUF TRUE GESETZT WERDEN)
Else
[HIER WÜRDE DIE CHECKBOX AUF FALSE GESETZT WERDEN]
End If
Next

Das Formular hat also 20 Checkboxen, die A bis T genannt sind. Wenn das Form initialisiert ist soll man sehen, welche Spalten gerade ausgeblendet sind. Wenn man dann die Werte der Checkboxen ändert, sollte hinterher (CommandButton1_Click) abgefragt werden, welche der Checkboxen jetzt aktiv sind. Wenn dann z.B. A, D und F aktiv sind, sollen die Spalten A, D und F ausgeblendet werden *püh*
Anbei, kann man so ein Array auch kürzer initialisieren? Die Methode mit dem untereinander schreiben erscheint mir doch recht umständlich ...
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige