Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Schaltfläche Hintergrundfarbe ändern VBA

Schaltfläche Hintergrundfarbe ändern VBA
19.04.2023 10:11:12
Peter

Folgendes Problem:
Ich habe mir auf Arbeit eine Excel Tabelle erstellt und starte über einen Button ein Makro.

Nach einem Update wurden die Verwendung von ActiveX-Steuerelementen aus Sicherheitsgründen deaktiviert. Wichtig: ich habe keine Berechtigung, diese Einstellung zu ändern, und unsere IT-Abteilung wird das auch nicht für mich ändern. Tipps und Vorschläge in dieser Richtung sind also nicht nötig.

Zurück zum Problem: bisher habe ich Befehlsschaltflächen (ActiveX-Steuerelement) verwendet, das geht jetzt halt nicht mehr. Statt dessen habe ich Schaltflächen (Formularsteuerelement) eingefügt und diese per VBA formatiert (finde ich einfacher und präziser).


tabMain.Shapes.Range(Array("cmdGetData")).Select
    Selection.Characters.Text = "Get Data"
    Selection.Height = 24
    Selection.Width = 69
    Selection.Top = 3
    Selection.Left = 6
    Selection.OnAction = "tabMain.cmdGetData_Click"


Jetzt würde ich gerne noch die Hintergrundfarbe ändern.
Bei einem ActiveX-Button ginge das einfach so:
CommandButton1.BackColor = vbGreen

Wie kann ich das bei einem Formularsteuerelement-Button umsetzen, falls überhaupt?

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schaltfläche Hintergrundfarbe ändern VBA
19.04.2023 10:21:50
Oberschlumpf
Hi Peter,

dieser Beitrag...
https://www.herber.de/forum/archiv/1128to1132/1129068_Hintergrundfarbe_Steuerelement.html
...ist zwar schon etwas älter, aber ich glaub, es hat sich nix dran geändert, dass man die HG-Farbe von Formularsteuerelementen - nicht - ändern kann.

Da ich DAS aber nicht ganz genau weiß, keine aktuelleren Treffer finde, lass ich den Beitrag offen.

Hilfts?

Ciao
Thorsten


Anzeige
AW: Schaltfläche Hintergrundfarbe ändern VBA
19.04.2023 10:51:34
Beverly
Hi Peter,

wie Thorsten schon geschrieben hat: bei Formularsteuerelementen kann man die Hintergrundfarbe nicht ändern. Nimm doch stattdessen eine Form, dann ist es z.B. nach diesem Prinzip möglich:

    With ActiveSheet.Shapes("Rechteck 1").OLEFormat.Object
        .Interior.Color = vbGreen
    End With
Bis später
Karin



Anzeige
hach, es kann so einfach sein :-) danke Karin..owT
19.04.2023 11:12:32
Oberschlumpf


AW: hach, es kann so einfach sein... ist aber nich
19.04.2023 11:56:51
Peter
Leider kommt bei mir dann nur die Fehlermeldung "ObjeKt unterstützt diese Eigenschaft oder Methode nicht"

Fehlt mir da villeicht noch ein Verweis?


AW: hach, es kann so einfach sein... ist aber nich
19.04.2023 12:07:02
Oberschlumpf
Peter ,

du bist VBA = Gut! echt??????
Wenn JA, dann probier doch mal n bisschen rum! auch Google ist eine echt verdammt gute Hilfe...vor allem dann, wenn man VBA = Gut ist
Ja, ich weiß, Gut = man weiß noch immer nicht alles....aber trotzdem

und ähh???....ne Bsp-Datei per Upload zeigen? mit allem, was dir Probleme macht? Wieso kommst du nich auf diese Idee???

UND! Ich hab gerad den Code von Karin getestet mit Ergebnis = ES FUNKTIONIERT SO WAS VON!

Ciao
Thorsten


Anzeige
AW: hach, es kann so einfach sein... ist aber nich
19.04.2023 12:27:32
Peter
Huch, wirst Du gleich agressiv. Entspann Dich mal :-)


AW: hach, es kann so einfach sein...
19.04.2023 12:37:44
Beverly
Dann nehme ich an, du hast keine Form verwendet. Aber ohne hochgeladene Mappe unmöglich etwas dazu zu äußern...

Übrigens: ich poste keine Codes, die ich nicht vorher getestet habe. Falls ich einen Code mal nicht getestet habe oder - aus was für Gründen auch immer - nicht testen kann, dann vermerke ich das auch entsprechend im Beitrag.

Bis später
Karin



Anzeige
AW: hach, es kann so einfach sein...
19.04.2023 13:09:58
Peter
Ach, sorry, mein Fehler. Ich hab das mit der Form überlesen und nur den Code angewendet *schäm*
Werde mal Testen


AW: Schaltfläche Hintergrundfarbe ändern VBA
19.04.2023 12:26:04
GerdL
Hallo Peter!

Menü Einfügen (bei mir) -> Formen
Rechteck auswählen
In die Tabelle einfügen
Entwurfsmodus beenden
Code z.B.:
Sub Makro1()
     ActiveSheet.Shapes("Rechteck 1").OLEFormat.Object.Interior.Color = vbGreen
End Sub
Gruß Gerd


Anzeige
AW: Schaltfläche Hintergrundfarbe ändern VBA
19.04.2023 13:07:22
Peter
Vielen Dank, das teste ich mal.


AW: Schaltfläche Hintergrundfarbe ändern VBA
21.04.2023 07:52:02
Peter
Danke an Karin (Beverly) und GerdL, so hat es geklappt.
Mit diesem Code wird dann sogar ein Button-Click "simuliert"

Sub CmdClick()
    Dim vTopType As Variant
    Dim iTopInset As Integer
    Dim iTopDepth As Integer

'Button Einstellungen merken
    With ActiveSheet.Shapes(Application.Caller).ThreeD
        vTopType = .BevelTopType
        iTopInset = .BevelTopInset
        iTopDepth = .BevelTopDepth
    End With

'Button Down
    With ActiveSheet.Shapes(Application.Caller).ThreeD
        .BevelTopType = msoBevelSoftRound
        .BevelTopInset = 4
        .BevelTopDepth = 2
    End With

    Application.ScreenUpdating = True
    DoEvents

'Button Up - Button Einstellungen wiederherstellen
    With ActiveSheet.Shapes(Application.Caller).ThreeD
        .BevelTopType = vTopType
        .BevelTopInset = iTopInset
        .BevelTopDepth = iTopDepth
    End With

End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Hintergrundfarbe von Schaltflächen in Excel VBA ändern


Schritt-für-Schritt-Anleitung

Um die Hintergrundfarbe einer Schaltfläche, die als Formularsteuerelement in Excel eingefügt wurde, zu ändern, kannst du die folgende Vorgehensweise anwenden. Beachte, dass die Hintergrundfarbe von Formularsteuerelementen nicht direkt über die Eigenschaften geändert werden kann. Stattdessen wirst du eine Form verwenden:

  1. Formularsteuerelement einfügen:

    • Gehe zu Einfügen > Formen und wähle ein Rechteck oder eine andere Form aus.
    • Ziehe die Form in das Excel-Blatt.
  2. VBA-Code zur Änderung der Hintergrundfarbe:

    • Öffne den VBA-Editor (Alt + F11).
    • Füge den folgenden Code in ein Modul ein, um die Hintergrundfarbe zu ändern:
      Sub HintergrundfarbeAendern()
      With ActiveSheet.Shapes("Rechteck 1").OLEFormat.Object
         .Interior.Color = vbGreen ' Hier kannst du die Farbe anpassen
      End With
      End Sub
  3. Makro ausführen:

    • Gehe zurück zu Excel und führe das Makro aus, um die Hintergrundfarbe zu ändern.

Häufige Fehler und Lösungen

  • Fehler: "Objekt unterstützt diese Eigenschaft oder Methode nicht"

    • Dieser Fehler tritt auf, wenn du versuchst, eine Eigenschaft eines Objekts zu verwenden, das nicht existiert oder nicht korrekt referenziert wurde. Stelle sicher, dass du die Form korrekt benannt hast (z.B. "Rechteck 1").
  • Hintergrundfarbe lässt sich nicht ändern

    • Wenn du versuchst, die Hintergrundfarbe von einem Formularsteuerelement direkt zu ändern, wird dies nicht funktionieren. Verwende stattdessen eine Form.

Alternative Methoden

Wenn du die Hintergrundfarbe eines Excel-Formularsteuerelements ändern möchtest, kannst du auch die VBA-Funktion nutzen, um die Schriftfarbe zu ändern, was eine visuelle Abänderung darstellen kann. Beispiel:

Sub SchriftfarbeAendern()
    ActiveSheet.Shapes("Rechteck 1").TextFrame.Characters.Font.Color = vbRed
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Hintergrundfarbe oder andere Eigenschaften ändern kannst:

  1. Hintergrundfarbe ändern:

    Sub AendereHintergrundfarbe()
       ActiveSheet.Shapes("Rechteck 1").Fill.ForeColor.RGB = RGB(255, 0, 0) ' Rot
    End Sub
  2. Schriftfarbe ändern:

    Sub AendereSchriftfarbe()
       ActiveSheet.Shapes("Rechteck 1").TextFrame.Characters.Font.Color = RGB(0, 0, 255) ' Blau
    End Sub

Tipps für Profis

  • Nutze die RGB-Funktion, um benutzerdefinierte Farben zu erstellen, anstatt nur die vordefinierten Farben wie vbGreen zu verwenden.
  • Experimentiere mit verschiedenen Formen und kombiniere sie, um ansprechendere Schaltflächen zu erstellen, die zudem die Excel Hintergrundfarbe anpassen können.
  • Verwende die With-Anweisung, um den Code lesbarer und effizienter zu gestalten.

FAQ: Häufige Fragen

1. Kann ich die Hintergrundfarbe eines Formularsteuerelements direkt ändern? Die Hintergrundfarbe von Formularsteuerelementen kann nicht direkt geändert werden. Stattdessen musst du eine Form verwenden.

2. Wie kann ich die Schriftfarbe eines Formularsteuerelements ändern? Du kannst die Schriftfarbe über VBA ändern, indem du die TextFrame.Characters.Font.Color-Eigenschaft verwendest.

3. Welche Excel-Version benötige ich für diese Anleitungen? Die Anleitungen sind für Excel 2010 und spätere Versionen geeignet, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige