Makro abkürzen durch Schleife?

23/01/2008 - 18:54 von Karin Neugebauer | Report spam
Hallo Excelfreunde,

mit einem Makro sollen die ersten 20 Commandbuttons in einem Userform in der
Farbe zurückgesetzt werden.
Da im Userform jedoch 31 Commandbuttons sind, werden z.B. bei einer "For
Schleife" auch die restlichen 11 Schaltflàchen auf Gelb umgefàrbt.
Dies soll natürlich nicht sein. Ich möchte nun folgendes Makro abkürzen.

Private Sub Reset_Farbe_Click()
UserForm1.CommandButton1.BackColor = &HFFFF&
UserForm1.CommandButton2.BackColor = &HFFFF&
UserForm1.CommandButton3.BackColor = &HFFFF&
UserForm1.CommandButton4.BackColor = &HFFFF&
UserForm1.CommandButton5.BackColor = &HFFFF&
UserForm1.CommandButton6.BackColor = &HFFFF&
UserForm1.CommandButton7.BackColor = &HFFFF&
UserForm1.CommandButton8.BackColor = &HFFFF&
UserForm1.CommandButton9.BackColor = &HFFFF&
UserForm1.CommandButton10.BackColor = &HFFFF&
UserForm1.CommandButton11.BackColor = &HFFFF&
UserForm1.CommandButton12.BackColor = &HFFFF&
UserForm1.CommandButton13.BackColor = &HFFFF&
UserForm1.CommandButton14.BackColor = &HFFFF&
UserForm1.CommandButton15.BackColor = &HFFFF&
UserForm1.CommandButton16.BackColor = &HFFFF&
UserForm1.CommandButton17.BackColor = &HFFFF&
UserForm1.CommandButton18.BackColor = &HFFFF&
UserForm1.CommandButton19.BackColor = &HFFFF&
Userform1.CommandButton20.BackColor = &HFFFF&
End Sub

Mit For i oder Do While z.B.
Dies scheitert jedoch daran, dass es mir nicht gelingt CommandButton1 in
CommandButton & Zàhler zu zerlegen,
damit ich die Schleifendurchlàufe auf 20 begrenzen kann.

Hat von Euch jemand eine Idee wie ich da vorgehen müsste?

Vorab schon mal besten Dank

Gruß

Karin
 

Lesen sie die antworten

#1 Beverly
23/01/2008 - 19:21 | Warnen spam
Hi Karin,

schreibe etwas in die Tag-Eigenschaft der betreffenden CommandButton (z.B.
A). Das kannst du dann mit diesem Code auslesen und die Buttons fàrben

Dim coElement As Control
For Each coElement In Me.Controls
If TypeName(coElement) = "CommandButton" Then
If coElement.Tag = "A" Then coElement.BackColor = &HFFFF&
End If
Next

Bis spàter,
Karin
http://beverly.excelhost.de/


"Karin Neugebauer" wrote:

Hallo Excelfreunde,

mit einem Makro sollen die ersten 20 Commandbuttons in einem Userform in der
Farbe zurückgesetzt werden.
Da im Userform jedoch 31 Commandbuttons sind, werden z.B. bei einer "For
Schleife" auch die restlichen 11 Schaltflàchen auf Gelb umgefàrbt.
Dies soll natürlich nicht sein. Ich möchte nun folgendes Makro abkürzen.

Private Sub Reset_Farbe_Click()
UserForm1.CommandButton1.BackColor = &HFFFF&
UserForm1.CommandButton2.BackColor = &HFFFF&
UserForm1.CommandButton3.BackColor = &HFFFF&
UserForm1.CommandButton4.BackColor = &HFFFF&
UserForm1.CommandButton5.BackColor = &HFFFF&
UserForm1.CommandButton6.BackColor = &HFFFF&
UserForm1.CommandButton7.BackColor = &HFFFF&
UserForm1.CommandButton8.BackColor = &HFFFF&
UserForm1.CommandButton9.BackColor = &HFFFF&
UserForm1.CommandButton10.BackColor = &HFFFF&
UserForm1.CommandButton11.BackColor = &HFFFF&
UserForm1.CommandButton12.BackColor = &HFFFF&
UserForm1.CommandButton13.BackColor = &HFFFF&
UserForm1.CommandButton14.BackColor = &HFFFF&
UserForm1.CommandButton15.BackColor = &HFFFF&
UserForm1.CommandButton16.BackColor = &HFFFF&
UserForm1.CommandButton17.BackColor = &HFFFF&
UserForm1.CommandButton18.BackColor = &HFFFF&
UserForm1.CommandButton19.BackColor = &HFFFF&
Userform1.CommandButton20.BackColor = &HFFFF&
End Sub

Mit For i oder Do While z.B.
Dies scheitert jedoch daran, dass es mir nicht gelingt CommandButton1 in
CommandButton & Zàhler zu zerlegen,
damit ich die Schleifendurchlàufe auf 20 begrenzen kann.

Hat von Euch jemand eine Idee wie ich da vorgehen müsste?

Vorab schon mal besten Dank

Gruß

Karin



Ähnliche fragen