Vereinfachung eines Codes gewünscht.

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Vereinfachung eines Codes gewünscht.
von: Martin
Geschrieben am: 05.07.2002 - 22:25:41


Hallo,

in einer Tabelle arbeite ich mit mehreren CommandButtons (CdB). Die sortieren die jeweilige Spalte und färben sich dunkelgrau, um auf einen Blick erkennen zu können, nach welcher Spalte sortiert wurde.

Wenn CdB2 gedrückt wird muß somit als erstes natürlich klargestellt werden, daß alle anderen CdBs die Ausgangsfarbe haben, damit nicht mehrere CdBs dunkelgrau sind. Bei rund 10 CdBs ist das ein ziemlich langer Code, s. anbei für ein Beispiel bei EINEM CdB:

Private Sub CdB_FUND_Click()
CdB_FUND.BackColor = RGB(128, 128, 128)
CdB_FUND.ForeColor = RGB(255, 255, 255)
CdB_FUND.Font.Bold = True

CdB_CODE.BackColor = RGB(210, 210, 210)
CdB_CODE.ForeColor = RGB(0, 0, 0)
CdB_CODE.Font.Bold = False
CdB_DAY.BackColor = RGB(210, 210, 210)
CdB_DAY.ForeColor = RGB(0, 0, 0)
CdB_DAY.Font.Bold = False
CdB_2002.BackColor = RGB(210, 210, 210)
CdB_2002.ForeColor = RGB(0, 0, 0)
CdB_2002.Font.Bold = False
CdB_2002EUR.BackColor = RGB(210, 210, 210)
CdB_2002EUR.ForeColor = RGB(0, 0, 0)
CdB_2002EUR.Font.Bold = False
CdB_2002CHF.BackColor = RGB(210, 210, 210)
CdB_2002CHF.ForeColor = RGB(0, 0, 0)
CdB_2002CHF.Font.Bold = False
CdB_2001.BackColor = RGB(210, 210, 210)
CdB_2001.ForeColor = RGB(0, 0, 0)
CdB_2001.Font.Bold = False
CdB_2000.BackColor = RGB(210, 210, 210)
CdB_2000.ForeColor = RGB(0, 0, 0)
CdB_2000.Font.Bold = False
CdB_1999.BackColor = RGB(210, 210, 210)
CdB_1999.ForeColor = RGB(0, 0, 0)
CdB_1999.Font.Bold = False
CdB_1998.BackColor = RGB(210, 210, 210)
CdB_1998.ForeColor = RGB(0, 0, 0)
CdB_1998.Font.Bold = False
End Sub

Frage: Kann man das vereinfachen, vielleicht so ähnlich wie "färbe alle CdBs in diesem Sheet hellgrau, bis auf das geklickte"?

Dankbar für jeden Ansatz.!
Gruss,
Martin

nach oben   nach unten

Re: Vereinfachung eines Codes gewünscht.
von: L.Vira
Geschrieben am: 05.07.2002 - 22:51:12

das Problem ist, dass OLE- Objekte im Sheet nur über den Namen(der in den Eigenschaften) angesprochen werden können.
Es gibt da wohl keinen easy way.

nach oben   nach unten

Re: Vereinfachung eines Codes gewünscht.
von: MRR
Geschrieben am: 05.07.2002 - 23:31:20

Hallo Martin,
hast Du Dir mal überlegt, die Buttons mit einer Schleife zu durchlaufen? Nach dem Verfahren:

For i = 1 To Activesheet.Shapes.Count
  With Activesheet.Shapes(i).OLEFormat.Object
    .BackColor = RGB(210, 210, 210)
    .ForeColor = RGB(0, 0, 0)
    .Font.Bold = False
  End With
Next

Diese Prozedur könntest Du von verschiedener Seite aus aufrufen und anschließend die Individualformatierung für den geklickten Button erledigen.
Nagele mich aber nicht fest. Es könnte auch
With Activesheet.Shapes(i).OLEFormat.Object.Object
heißen, ich habe es nicht mehr getestet...
HTH, Matthias
nach oben   nach unten

Danke, ich werde es ausprobieren (oT)
von: Martin
Geschrieben am: 06.07.2002 - 16:13:49

M.

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Datumsformat"