Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Form Farben per VBA ändern

Form Farben per VBA ändern
24.01.2018 11:17:24
Okan
Guten Tag
ich würde in einer Tabelle gerne eine Form mit einem Makro hinterlegen, welches folgendes Ausführen soll:
Die Farbe der Form soll sich ändern, wenn ein Bestimmter Wert in einer Zelle überschritten wird.
Dabei ist die Zelle zu suchen.
Bsp.: Wenn in Spalte A das Wort LV1000 gefunden wird soll es den Wert prüfen der 3 Spalten neben dem Wort steht.
Ich habe einen Einfachen Code genutzt, der leider nur eine vorher definierte Zelle anspricht.
Sub Farbe_LV_1000()
If CAR.Range("C22") = "n.i.O." Then
With CAR.Shapes("LV_1000").Fill
.ForeColor.RGB = RGB(255, 0, 0)
End With
Else
With CAR.Shapes("LV_1000").Fill
.ForeColor.RGB = RGB(0, 200, 0)
End With
End If
End Sub

Danke im Voraus.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Form Farben per VBA ändern
24.01.2018 11:37:12
Werner
Hallo Okan,
so:
Public Sub Farbe_LV_1000()
Dim strSuch As String, raFund As Range
strSuch = "LV1000"
With Worksheets("Tabelle1") 'Blattname anpassen
Set raFund = .Columns("A:A").Find(what:=strSuch, LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
If raFund.Offset(0, 3) = "n.i.O." Then
With CAR.Shapes("LV_1000").Fill
.ForeColor.RGB = RGB(255, 0, 0)
End With
Else
With CAR.Shapes("LV_1000").Fill
.ForeColor.RGB = RGB(0, 200, 0)
End If
Else
MsgBox "Suchbegriff  " & strSuch & "  in Spalte A nicht vorhanden."
End If
End With
Set raFund = Nothing
End Sub
Gruß Werner
Anzeige
AW: Form Farben per VBA ändern
24.01.2018 12:23:23
Okan
Guten Tag Werner,
ich danke dir für die schnelle Antwort.
Leider bekomme ich eine Fehlermeldung welche lautet:
end if ohne if block
VG Okan
AW: Form Farben per VBA ändern
24.01.2018 12:34:51
Werner
Hallo Okan,
im ersten Else Zweig fehlt ein End With
Else
With CAR.Shapes("LV_1000").Fill
.ForeColor.RGB = RGB(0, 200, 0)
End With
End If
Gruß Werner
Anzeige
AW: Form Farben per VBA ändern
24.01.2018 14:32:51
Okan
Hi Werner,
ich danke dir. Funktioniert nun wie ich es brauche.
Gruß Okan
Gerne u.Danke für die Rückmeldung. o.w.T.
24.01.2018 14:35:18
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Form Farben per VBA ändern


Schritt-für-Schritt-Anleitung

Um die Farbe einer Excel-Form per VBA zu ändern, wenn ein bestimmter Wert in einer Zelle überschritten wird, kannst du folgenden Code verwenden. Achte darauf, den Blattnamen und die Form entsprechend anzupassen.

  1. Öffne dein Excel-Dokument und drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (dein Dokument)" klickst und "Einfügen" > "Modul" wählst.
  3. Kopiere den folgenden Code in das Modul:
Public Sub Farbe_LV_1000()
    Dim strSuch As String, raFund As Range
    strSuch = "LV1000"
    With Worksheets("Tabelle1") ' Blattname anpassen
        Set raFund = .Columns("A:A").Find(what:=strSuch, LookIn:=xlValues, lookat:=xlWhole)
        If Not raFund Is Nothing Then
            If raFund.Offset(0, 3) = "n.i.O." Then
                With CAR.Shapes("LV_1000").Fill
                    .ForeColor.RGB = RGB(255, 0, 0) ' Rot
                End With
            Else
                With CAR.Shapes("LV_1000").Fill
                    .ForeColor.RGB = RGB(0, 200, 0) ' Grün
                End With
            End If
        Else
            MsgBox "Suchbegriff " & strSuch & " in Spalte A nicht vorhanden."
        End If
    End With
    Set raFund = Nothing
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, um die Änderung der Formfarbe zu testen.

Häufige Fehler und Lösungen

  • Fehlermeldung "End If ohne If Block": Diese Fehlermeldung tritt auf, wenn du ein End With vergessen hast. Achte darauf, dass jeder With-Block auch mit End With abgeschlossen wird.

  • Die Form wird nicht gefunden: Stelle sicher, dass der Name der Form in deinem Excel-Dokument korrekt ist. Der Name ist case-sensitiv.

  • Die Zelle wird nicht gefunden: Überprüfe, ob der Suchbegriff tatsächlich in der angegebenen Spalte vorhanden ist.


Alternative Methoden

Wenn du die Farbe einer Form in PowerPoint ändern möchtest, kannst du eine ähnliche VBA-Lösung verwenden. Hier ist ein Beispiel, um die Rahmenfarbe einer Tabelle in PowerPoint zu ändern:

Sub Rahmenfarbe_aendern()
    Dim tabelle As Table
    Set tabelle = ActivePresentation.Slides(1).Shapes(1).Table
    tabelle.Rows(1).Cells(1).Shape.Line.ForeColor.RGB = RGB(0, 0, 255) ' Blau
End Sub

Praktische Beispiele

Nehmen wir an, du möchtest die Farbe einer Form in einem Excel-Dokument ändern, wenn ein bestimmter Wert in einer Zelle steht. Hier ist der Schritt-für-Schritt-Prozess:

  1. Zelle C22 überprüfen: Wenn in C22 "n.i.O." steht, soll die Form rot gefärbt werden. Andernfalls wird sie grün.

  2. Suchbegriff in Spalte A: Der Code sucht nach "LV1000" in Spalte A und prüft den Wert drei Spalten daneben.

  3. Form anpassen: Stelle sicher, dass die Form "LV_1000" existiert, damit die Farben korrekt geändert werden können.


Tipps für Profis

  • Variablen anpassen: Setze Variablen für die Farbcodes, um die Wartbarkeit deines Codes zu erhöhen.

  • Fehlerbehandlung hinzufügen: Implementiere On Error Resume Next, um Fehler besser zu handhaben, wenn die Form nicht gefunden wird.

  • Regelmäßige Tests: Teste deinen Code regelmäßig, besonders nach Änderungen, um sicherzustellen, dass alles reibungslos funktioniert.


FAQ: Häufige Fragen

1. Kann ich die Farben auch von anderen Formen ändern?
Ja, du kannst die Formnamen im Code entsprechend anpassen, um andere Formen zu ändern.

2. Funktioniert dieser Code in Excel 2016?
Ja, der Code funktioniert in Excel 2016 und neueren Versionen. Achte darauf, dass die VBA-Umgebung aktiviert ist.

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