Hallo,
ich bin erst seit ca. 10 Tagen mit Excel VBA unterwegs.
In einer UserForm möchte ich viele Toggle- Buttons unterbringen.
Diese sollen im Zusammenspiel mit einem 2-dimensionalen Array eine veränderbare (ja/nein) Matrix abbilden.
Ein paar Zeilen habe ich schon geschrieben, befürchte aber dass ich irgendwann mal in einer Sackgasse lande.
Zunächst liegen vier Bilder auf einer Userform und sollen zur Laufzeit auf den jeweiligen Button angezeigt werden
(für die Zustände "true", "false" jeweils immer mit oder ohne Fokus auf den Toggle- Button selbst).
Das funktioniert nun mal schon etwas - aber der Code ist bei 16 Buttons schon recht lang und unübersichtlich.
'-------------------------------------------------------
Private Sub ist_zustand_herstellen()
Dim a As Byte
For a = 1 To 16
If Me("ToggleButton" & a).Value = False Then
Me("ToggleButton" & a).Picture = Image1.Picture
Else
Me("ToggleButton" & a).Picture = Image3.Picture
End If
Next a
End Sub
Private Sub Frame1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Call ist_zustand_herstellen
End Sub
'-------------------------------------------------------
'stellvertretend für alle (sehr viele) Toggletasten (im Moment zum Test 16):
Private Sub ToggleButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Call ist_zustand_herstellen
If ToggleButton1.Value = False Then
ToggleButton1.Picture = Image2.Picture
Else
ToggleButton1.Picture = Image4.Picture
End If
End Sub
Private Sub ToggleButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If ToggleButton1.Value = False Then
ToggleButton1.Picture = Image3.Picture
Else
ToggleButton1.Picture = Image1.Picture
End If
End Sub
Private Sub ToggleButton1_Change()
If ToggleButton1.Value = False Then
ToggleButton1.Picture = Image1.Picture
Else
ToggleButton1.Picture = Image3.Picture
End If
End Sub
'-------------------------------------------------------
Die Anzahl der Buttons soll ein vielfaches von 64 werden.
Sollte ich einen anderen Weg einschlagen?
Danke für jeden Tipp.
|