Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bedingte Formatierung einer Form

Bedingte Formatierung einer Form
27.04.2016 09:56:51
TW
Hallo zusammen,
kann man einen Bezug von einer Zelle auf eine Form herstellen?
Konkret möchte ich gerne eine Form (z. B. Kreis)
- grün einfärben, wenn in der Zelle D3 eine "1" steht und
- rot einfärben, wenn in der Zelle D3 eine "0" steht.
Kann man dies lösen über eine Formel, VBA, etc.?
Vielen Dank im Voraus!
Freundliche Grüße,
Torben

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung einer Form
27.04.2016 10:33:12
Werner
Hallo Torben,
nur kurz mit dem MakroRecorder aufgezeichnet. Den Namen des Shape musst du an deine Bedürfnisse anpassen.
Code gehört ins Code-Modul der Arbeitsmappe auf dem sich das abspielen soll.
-Rechtsklick auf den Tabellenblattreiter - Code anzeigen - kompletten Code rechts ins Code-Fenster
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D3") = 0 Then
ActiveSheet.Shapes.Range(Array("Oval 2")).Select
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Solid
End With
Range("D3").Select
ElseIf Range("D3") = 1 Then
ActiveSheet.Shapes.Range(Array("Oval 2")).Select
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(146, 208, 80)
.Transparency = 0
.Solid
End With
Range("D3").Select
End If
End Sub
Gruß Werner

Anzeige
AW: Bedingte Formatierung einer Form
27.04.2016 10:43:41
TW
Hallo Werner,
vielen Dank! Genau das was ich gesucht habe. Perfekt :-)
Viele Grüße,
Torben

AW: Gerne und Danke für die Rückmeldung. o.w.T.
27.04.2016 10:44:56
Werner

AW: Kurze Code Variante, Oval Farbwechsel
27.04.2016 10:48:35
Dieter(Drummer)
Guten Tag TW,
hier eine Kurzvariante. Code in Tabelle 1:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D3") = 1 Then
Shapes("Oval 1").Fill.ForeColor.RGB = RGB(255, 0, 0)
ElseIf Range("D3") = 0 Then
Shapes("Oval 1").Fill.ForeColor.RGB = RGB(0, 255, 0)
End If
End Sub

Gruß, Dieter(Drummer)
Anzeige
;

Forumthreads zu verwandten Themen

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

Bedingte Formatierung einer Form in Excel


Schritt-für-Schritt-Anleitung

Um eine Excel-Form bedingt zu formatieren, kannst Du VBA verwenden. Folge diesen Schritten:

  1. Öffne die Excel-Datei, in der Du die bedingte Formatierung anwenden möchtest.
  2. Rechtsklicke auf den Tabellenblattreiter und wähle „Code anzeigen“.
  3. Kopiere den folgenden VBA-Code und füge ihn in das Code-Fenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Range("D3") = 0 Then
            ActiveSheet.Shapes.Range(Array("Oval 2")).Select
            With Selection.ShapeRange.Fill
                .Visible = msoTrue
                .ForeColor.RGB = RGB(255, 0, 0) ' Rot
                .Transparency = 0
                .Solid
            End With
        ElseIf Range("D3") = 1 Then
            ActiveSheet.Shapes.Range(Array("Oval 2")).Select
            With Selection.ShapeRange.Fill
                .Visible = msoTrue
                .ForeColor.RGB = RGB(146, 208, 80) ' Grün
                .Transparency = 0
                .Solid
            End With
        End If
    End Sub
  4. Ändere den Namen der Form (z. B. „Oval 2“) entsprechend Deiner Form.
  5. Schließe den VBA-Editor und teste die Funktion, indem Du die Werte in Zelle D3 änderst.

Häufige Fehler und Lösungen

  • Fehler: Die Farbe ändert sich nicht.

    • Lösung: Stelle sicher, dass die Form den richtigen Namen hat. Überprüfe den Namen in der Auswahl.
  • Fehler: Der VBA-Code wird nicht ausgeführt.

    • Lösung: Vergewissere Dich, dass Makros in den Excel-Optionen aktiviert sind.

Alternative Methoden

Eine Alternative zur VBA-Methode ist die Verwendung von Formeln, um die bedingte Formatierung direkt auf Zellen anzuwenden. Obwohl Du damit keine Form färben kannst, kannst Du die Zellen selbst formatieren.

  1. Wähle die Zelle D3 aus.
  2. Gehe zu „Bedingte Formatierung“ > „Neue Regel“.
  3. Wähle „Formel zur Bestimmung der zu formatierenden Zellen verwenden“.
  4. Gib folgende Formel ein:
    • Für Rot: =D3=0
    • Für Grün: =D3=1
  5. Wähle die Formatierung (Füllfarbe) aus.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die Excel-Form farblich anpassen kannst:

  1. Kreis färben basierend auf D3:

    • Rot, wenn D3 = 0
    • Grün, wenn D3 = 1
  2. Rechteck mit mehreren Bedingungen:

    • Du kannst den VBA-Code erweitern, um z. B. Gelb für D3 = 2 hinzuzufügen.
ElseIf Range("D3") = 2 Then
    ActiveSheet.Shapes.Range(Array("Rechteck 1")).Fill.ForeColor.RGB = RGB(255, 255, 0) ' Gelb
End If

Tipps für Profis

  • Teste den Code regelmäßig: Wenn Du Änderungen vornimmst, teste den Code häufig, um sicherzustellen, dass alles funktioniert.
  • Optimiere den Code: Du kannst den Code verkürzen und optimieren, indem Du wiederholte Codezeilen in Funktionen umwandelst.
  • Dokumentiere Deinen Code: Füge Kommentare hinzu, um die Funktionsweise zu erklären, was besonders nützlich ist, wenn Du den Code später anpassen möchtest.

FAQ: Häufige Fragen

1. Kann ich die bedingte Formatierung auch ohne VBA nutzen?
Ja, Du kannst die bedingte Formatierung direkt auf Zellen anwenden, aber nicht auf Formen.

2. Funktioniert dies in allen Excel-Versionen?
Der VBA-Code sollte in den meisten modernen Excel-Versionen (Excel 2010 und später) funktionieren.

3. Was ist der Unterschied zwischen bedingter Formatierung und VBA?
Bedingte Formatierung kann nur auf Zellen angewendet werden, während VBA Dir erlaubt, Formen und komplexere Logik zu verwenden.

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