6.6k Aufrufe
Gefragt in Tabellenkalkulation von donjuandan Einsteiger_in (89 Punkte)
Hallo zusammen

Ich habe eine Excel-Datei mit 6 Befehlsschaltflächen (ActiveX). Nun möchte ich folgendes:

Wenn ich auf den ersten Button klicke, soll dieser rot werden (alle anderen bleiben grau). Wenn ich auf den zweiten klicke, soll dieser grün werden und der erste soll wieder grau sein. usw.

Jedem Button muss also eine bestimmte Farbe zugewiesen sein, in welche sie sich, wenn sie angeklickt werden, verfärben. Es darf jedoch immer nur einer der Button „aktiviert“ sein.

Wie kann man dies mittels VBA realisieren?

Liebe Grüsse
donjuandan

2 Antworten

0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

diesen Code im Codemodul des Tabellenblattes:

Option Explicit

Private Sub CommandButton1_Click()
FarbeAendern "CommandButton1"
End Sub

Private Sub CommandButton2_Click()
FarbeAendern "CommandButton2"
End Sub

Private Sub CommandButton3_Click()
FarbeAendern "CommandButton3"
End Sub
Private Sub CommandButton4_Click()
FarbeAendern "CommandButton4"
End Sub

Private Sub CommandButton5_Click()
FarbeAendern "CommandButton5"
End Sub

Private Sub CommandButton6_Click()
FarbeAendern "CommandButton6"
End Sub

Private Sub FarbeAendern(strName)
Dim cmdSchalter As OLEObject
For Each cmdSchalter In ActiveSheet.OLEObjects
If cmdSchalter.Name = strName Then
Select Case strName
Case "CommandButton1"
cmdSchalter.Object.BackColor = &HFF00&
Case "CommandButton2"
cmdSchalter.Object.BackColor = &HFFFF00
Case "CommandButton3"
cmdSchalter.Object.BackColor = &HFF8080
Case "CommandButton4"
cmdSchalter.Object.BackColor = &HFF80FF
Case "CommandButton5"
cmdSchalter.Object.BackColor = &H8080FF
Case "CommandButton6"
cmdSchalter.Object.BackColor = &HC0FFFF
End Select
Else
cmdSchalter.Object.BackColor = &H8000000F
End If
Next cmdSchalter
End Sub

Farben und Namen der Schalter musst du natürlich anpassen.

Bis später,
Karin
0 Punkte
Beantwortet von donjuandan Einsteiger_in (89 Punkte)
Hallo Beverly

Vielen Dank. Hat funktioniert.

lg
donjuandan
...