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

Forumthread: Bedingte Formatierung Symbolsätze (Ampel) per VBA

Bedingte Formatierung Symbolsätze (Ampel) per VBA
24.05.2016 12:14:43
Jürgen
Hallo Excel Profis,
ich habe ein kleines Problem (hoffentlich) bei dem ich auch in der Recherche nicht fündig geworden bin.
Ich würde gerne per VBA einer Spalte eine Bedingte Formatierung (Ampelschaltung per Symbolzeichensätze) zufügen. Diese soll "nur" folgendes darstellen:
Grünes Symbol wenn Wert größer HEUTE + 40
Gelbes Symbol wenn Wert größer HEUTE + 20
ansonsten rotes Symbol
Ein Screenshot der Bedingten Formatierung habe ich beigefügt. Wie gesagt würde ich diese aber gerne per Makro der Spalte zufügen. Wäre echt toll, wenn mir jemand helfen könnte - bin mit meinem Latein am Ende.
Userbild
Grüße und vielen Dank
Jürgen

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung Symbolsätze (Ampel) per VBA
24.05.2016 12:26:15
Luschi
Hallo Jürgen,
warum stellst Du nicht eine sinnvolle/anonymisierte Dateei bereit, statt lauter lustige Bildchen!
Wenn ich mir schöne Bilder anschauen möchte, dann gehe ich in eine Austellung von Bernhard-Viktor Christoph-Carl von Bülow (alias Loriot).
Da kann ich mich besser erfreuen, anstatt Deine bereitgestellten Grafiken in Exceltabellen umzuwandeln.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Bedingte Formatierung Symbolsätze (Ampel) VBA
24.05.2016 12:53:20
Jürgen
Guten Tag Luschi,
Ich bitte vielmals um Entschuldigung.
Es hieß den Link mit hineinzukopieren.
Wenn ich hier einen Fehler gemacht habe wäre es hilfreich mir mitzuteilen wo, anstatt so einen lustigen Text zu verfassen.
Na ja, einen weiteren Kommentar erspare ich mir da man sich bestimmt den Rest denken kann.
Trotzdem danke für Deine Hilfe.
Grüße

Anzeige
AW: Bedingte Formatierung Symbolsätze (Ampel) VBA
24.05.2016 13:56:53
Daniel
Passt schon.
Eine Beispieldatei zu fordern ist für manche hier schon ein automatischer Reflex.
natürlich ist in den meisten Fällen eine Beispieldatei sinnvoll, vor allem wenn ein funtkionsfähiger Code als Antwort erwünscht ist.
Aber in deinem Fall, um zu zeigen was du haben willst, ist das Bild hier eigentlich die beste Lösung.
Gruß Daniel

Anzeige
AW: Makro-Recorder
24.05.2016 12:49:39
Daniel
Hi
in solchen Fällen hilft der Makrorecorder.
Schalte den Recorder ein und formatiere die Zellen von Hand.
Schalte danach den Recorder wieder aus und schaue dir den aufgezeichneten Code im VBA-Editor an.
Du siehst dann, wie die Aktion die du gerade ausgeführt hast, in VBA programmiert wird.
Beachte jedoch, dass du den aufgezeichneten Code in der Regel noch überarbeiten musst.
Der Recorder ist kein "Übersetzungscomputer", der fertigen VBA-Code liefert, sondern in seiner Funktion eher als "Wörterbuch" und Nachschlagewerk in Verbindung mit der Hilfe zu verstehen.
weitere Infos zum Recorder auch hier:
http://www.online-excel.de/excel/grusel_vba.php?f=6
Gruß Daniel

Anzeige
AW: Makro-Recorder
24.05.2016 12:57:55
Jürgen
Hallo Daniel,
ich danke Dir recht herzlich. Aber genau das habe ich auch schon versucht mit folgenden Ergebnis:
Die Bedingte Formatierung hat er genommen, aber nur in der Voreinstellung Prozent.
Passe ich die Formatierung dann im Bereich Wert und Typ an (natürlich mit eingeschalteten Makrorekorder) wird dies nicht mit aufgezeichnet.
Daher auch mein Problem mit der Umsetzung.
Weißt Du hier einen anderen Rat?
Grüße Jürgen

Anzeige
AW: Makro-Recorder
24.05.2016 13:09:51
Jürgen
Hallo Daniel,
danke vielmals, Du hast mich auf einen Gedanken gebracht.
Wenn ich beim Aufzeichnen sofort die Bedingte Formatierung mit Formel u.s.w. eingebe klappt es.
Nur eine nachträgliche Änderung der Formatierung wird nicht aufgezeichnet.
Danke nochmals und Grüße
Jürgen
;

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 mit Symbolsätzen (Ampel) in Excel per VBA


Schritt-für-Schritt-Anleitung

Um eine bedingte Formatierung mit Symbolsätzen (Ampel) in Excel per VBA zu erstellen, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)" und wähle "Einfügen" > "Modul".
  3. Füge den folgenden Code ein:

    Sub AmpelFormatierung()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Sheets("Sheet1") ' Ändere den Namen des Sheets nach Bedarf
    
       With ws.Range("A1:A10").FormatConditions.AddIconSetCondition
           .SetFirstPriority
           .IconSet = ws.Parent.IconSets(xl3TrafficLights1)
           .ShowIconOnly = False
           .IconSet = ws.Parent.IconSets(xl3TrafficLights1)
           .Criteria(1).Operator = xlGreaterEqual
           .Criteria(1).Formula = "=TODAY()+40"
           .Criteria(2).Operator = xlGreaterEqual
           .Criteria(2).Formula = "=TODAY()+20"
           .Criteria(3).Operator = xlLess
           .Criteria(3).Formula = "=TODAY()+20"
       End With
    End Sub
    • Achte darauf, den Range "A1:A10" entsprechend deinem Bedarf anzupassen.
  4. Führe das Makro aus:

    • Gehe zurück zu Excel, drücke ALT + F8, wähle "AmpelFormatierung" und klicke auf "Ausführen".

Häufige Fehler und Lösungen

  • Problem: Bedingte Formatierung wird nicht angewendet:

    • Stelle sicher, dass der Range korrekt definiert ist und dass die Formeln für die Bedingungen richtig eingegeben wurden.
  • Problem: VBA-Recorder hat die Formatierung nicht aufgezeichnet:

    • Der Makrorecorder kann einige spezifische Formatierungen nicht aufzeichnen. Es ist besser, diese direkt im VBA-Code zu definieren, wie im obigen Beispiel.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du die bedingte Formatierung auch manuell in Excel einstellen:

  1. Markiere die Zellen, die du formatieren möchtest.
  2. Gehe zu „Start“ > „Bedingte Formatierung“ > „Neue Regel“.
  3. Wähle „Formatieren von Zellen, die die folgenden Werte enthalten“ und definiere die Bedingungen für die Ampel.
  4. Wähle die gewünschten Formatierungen aus und klicke auf „OK“.

Praktische Beispiele

Wenn du eine Excel-Datei mit mehreren Spalten hast und die bedingte Formatierung auf eine andere Zelle anwenden möchtest, kannst du die excel bedingte formatierung ampel andere zelle verwenden:

   .Criteria(1).Formula = "=B1>=(TODAY()+40)" ' Beispiel für eine andere Zelle

Hier wird die Bedingung basierend auf dem Wert in Zelle B1 angewendet.


Tipps für Profis

  • Verwende benannte Bereiche: Das macht den Code lesbarer und flexibler.
  • Teste deinen Code: Führe das Makro mit verschiedenen Daten, um sicherzustellen, dass es unter allen Bedingungen funktioniert.
  • Dokumentation: Halte deinen Code mit Kommentaren gut dokumentiert, damit du später leicht nachvollziehen kannst, was jeder Abschnitt macht.

FAQ: Häufige Fragen

1. Kann ich die Ampel-Icons anpassen?
Ja, du kannst die Icons in den IconSet-Einstellungen ändern, um verschiedene Designs zu verwenden.

2. Wie kann ich die Bedingte Formatierung auf mehrere Zellen anwenden?
Du kannst den Range im VBA-Code anpassen, um mehrere Zellen gleichzeitig zu formatieren, oder die Formatierung manuell auf die gewünschten Zellen anwenden.

3. Funktioniert dies in allen Excel-Versionen?
Der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, teste jedoch immer die Kompatibilität.

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