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

Forumthread: VBA: Doppelte bedingte Formatierungen entfernen

VBA: Doppelte bedingte Formatierungen entfernen
René
Hallo zusammen,
in einem Sheet mit bedingten Formatierungen habe ich (wahrscheinlich durch diverse Kopier- und Löschaktionen) inzwischen eine Menge von mehrfachen identischen bedingten Formatierungsregeln.
Da das "Ausmisten" von Hand recht mühsam ist, möchte ich das per VBA machen. Ich habe mich auch schon mit dem FormatCondition-Objekt beschäftigt, habe aber nicht herausgefunden, ob es einen einfachen Weg gibt festzustellen, ob zwei FormatCondition-Objekte identisch sind. Der Operator Is prüft ja nur, ob sich zwei Objektvariablen auf dieselbe Objektinstanz beziehen, was mir hier aber nichts nützt.
Irgendwelche Ideen?
Vielen Dank und viele Grüße
René
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Könnte zieml Pgmieraufwd wdn, wenn du...
12.07.2011 15:41:37
Luc:-?
alles berücksichtigen willst, René.
Bspw könnte man alle Bedingungsformeln einer Zelle in ein String-Datenfeld (Array) und dann jede mit allen Folgdn vgl (oder in umgekehrter Rhfolge). Was zu löschen ist, hängt aber unter xl14 auch noch von anderen Einstellungen ab (Reihenfolge relevant oder nicht!). IdR kannst du das von Fall zu Fall manuell besser beurteilen als dafür ein Pgm zu schreiben. Also aufpassen und nicht wild drauflos kopieren (man kann auch nur Fmln bzw Werte ohne Format kopieren!). Sonst immer gleich korrigieren! Bis xl11 war die BedFmt-Regie einfacher zu handhaben - da konnte das kaum passieren!
Gruß Luc :-?
Anzeige
AW: VBA: Doppelte bedingte Formatierungen entfernen
12.07.2011 22:22:37
Daniel
Hi
einfacher ist wahrscheinlich, wenn du dir ein Makro schreibst, das alle bedingten Formate erst löscht und dann wieder neu einstellt (Dateispezifisch).
Dabei kann dir auch der Recorder helfen.
Das lässt du dann einfach laufen, wenn mal wieder zuviel Chaos entstanden ist.
ein universelles Programm, daß die vorhandenen bedingten Formate ausliest und neu zusammenfasst, wird wahrscheinlich hochkomplex und sehr aufwendig, da doch einiges an sonderfällen zu berücksichtigen ist und es wahrscheinlich auch nicht immer leicht ist zu entscheiden, ob bestimmte Formatierungen so absichtilich gewollt sind unabsichtlich durch Zellen löschen/einfügen so entstanden sind.
Gruß, Daniel
Anzeige
AW: VBA: Doppelte bedingte Formatierungen entfernen
13.07.2011 20:26:57
René
Hallo Daniel, hallo Luc,
vielen Dank für eure Einschätzung. Ich muss gar nicht unbedingt komplizierte Fälle erkennen, wie z.B. dass dieselbe Bedingung sowohl für A1 als auch A1:A5 abgefragt wird. Mir wäre mit dem Eliminieren echt doppelt vorhandener Bedingungen schon geholfen. Dabei würde es mir als Kriterium genügen, wenn die Range und die Formel übereinstimmen, vielleicht noch der Operator.
Ich komme aber mit der FormatConditions Collection nicht so recht klar. Sie liefert mir (für mich überraschend) längst nicht immer ein FormatCondition Objekt zurück, was das Handling deutlich erschwert.
Leider habe ich noch keinen Demo-Code gefunden, in dem mehr passiert, als dass einzelne Eigenschaften der Items von FormatConditions geändert werden. Mit Formula1 arbeitet kaum eins der Beispiele, wahrscheinlich weil das als ReadOnly-Eigenschaft höchstens für Vergleiche interessant ist.
Viele Grüße
René
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Doppelte bedingte Formatierungen in Excel entfernen


Schritt-für-Schritt-Anleitung

Um doppelte bedingte Formatierungen in Excel zu entfernen, kannst du die folgenden Schritte befolgen. Diese Anleitung setzt voraus, dass du mit Excel 2010 oder höher arbeitest.

  1. Visual Basic for Applications (VBA) öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. VBA-Code einfügen: Kopiere den folgenden Code in das Modul. Dieser Code durchsucht die bedingten Formatierungen und entfernt doppelte Regeln.

    Sub DoppelteBedingteFormatierungenEntfernen()
       Dim ws As Worksheet
       Dim fc As FormatCondition
       Dim i As Long, j As Long
       Dim FormatDict As Object
    
       Set ws = ThisWorkbook.Sheets("DeinBlattname") ' Blattname anpassen
       Set FormatDict = CreateObject("Scripting.Dictionary")
    
       For i = ws.Cells.Count To 1 Step -1
           For Each fc In ws.Cells(i).FormatConditions
               If Not FormatDict.Exists(fc.Formula1) Then
                   FormatDict.Add fc.Formula1, Nothing
               Else
                   fc.Delete
               End If
           Next fc
       Next i
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und kehre zu Excel zurück. Gehe zu Entwicklertools > Makros, wähle dein Makro aus und klicke auf Ausführen.

  5. Überprüfen: Überprüfe nun die Zellen auf deinem Arbeitsblatt, um sicherzustellen, dass die doppelten bedingten Formatierungen entfernt wurden.


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht.

    • Lösung: Stelle sicher, dass du den richtigen Blattnamen im Code angegeben hast.
  • Fehler: Einige bedingte Formatierungen bleiben erhalten.

    • Lösung: Überprüfe, ob die Formeln der verbleibenden Formatierungen tatsächlich unterschiedlich sind.
  • Fehler: VBA-Fehlermeldungen.

    • Lösung: Achte darauf, dass du die richtigen Berechtigungen hast und dass dein Excel auf dem neuesten Stand ist.

Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du auch manuell alle bedingten Formatierungen entfernen:

  1. Gehe zu Start > Bedingte Formatierung > Regeln verwalten.
  2. Wähle Alle Regeln löschen, um alle bedingten Formatierungen auf einmal zu entfernen.
  3. Alternativ kannst du auch Regeln löschen für spezifische Formatierungen auswählen.

Praktische Beispiele

Hier sind einige konkrete Beispiele, wie du die bedingte Formatierung in Excel effizient verwalten kannst:

  • Beispiel 1: Wenn du die Regel für die Zelle A1 hast, die rot gefärbt wird, wenn der Wert unter 10 liegt, und diese Regel in den Zellen A2:A5 ebenfalls existiert, kannst du diese Regeln zusammenfassen oder löschen, um die Übersichtlichkeit zu erhöhen.

  • Beispiel 2: Um alle bedingten Formatierungen aus einer gesamten Tabelle zu entfernen, kannst du die Methode „alle Formatierungen löschen Excel“ verwenden.


Tipps für Profis

  1. Regeln dokumentieren: Halte eine Liste aller bedingten Formatierungen, um die Übersicht zu behalten.
  2. Regelmäßig aufräumen: Führe regelmäßig das Makro aus, um doppelten Ballast zu vermeiden.
  3. Verwendung von Named Ranges: Nutze benannte Bereiche, um deine Formeln übersichtlicher zu gestalten, was die Verwaltung der Formatierungen erleichtert.

FAQ: Häufige Fragen

1. Wie kann ich alle bedingten Formatierungen in einem Arbeitsblatt entfernen? Du kannst das über die Bedingte Formatierung > Regeln verwalten und dann Alle Regeln löschen tun.

2. Was passiert, wenn ich die bedingte Formatierung lösche? Die Formatierung wird entfernt, aber die zugrunde liegenden Daten bleiben unverändert.

3. Ist es möglich, mehrere bedingte Formatierungen gleichzeitig zu löschen? Ja, du kannst im Regelmanager mehrere Regeln auswählen und gleichzeitig löschen.

4. Wie kann ich sicherstellen, dass ich keine wichtigen Formatierungen entferne? Teste dein Makro an einer Kopie der Datei, bevor du es auf die Originaldatei anwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige