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

Forumthread: VBA: bestimmte Formatierung löschen

VBA: bestimmte Formatierung löschen
29.12.2016 07:20:10
Erwin
Guten Morgen,
mit einem teils aufgezeichneten und manuell nachgebesserten Makro markiere ich in einem kleinen Bereich über eine bedingte Formatierung die Zellen orange, die nicht gesperrt sind (schon mal sorry für ...select...).
  • 
    Sub M_10_2_1()
    'Alle nicht gesperrten Zellen werden über eine bedingte Formatierung orange gekennzeichnet
    Range("A1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
    "=(ZELLE(""Schutz"";A1)=0)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 49407
    .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Range("A1").Select
    End Sub
    

  • Leider schaffe ich es nicht, genau nur diese Formatierung wieder mit VBA zu löschen.
  • 
    Sub M_10_2_2()
    Range("A1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    With Selection.FormatConditions.Formula1:  "=(ZELLE(""Schutz"";A1)=0)"
    .Selection.FormatConditions(Selection.FormatConditions.Count).FirstPriority
    .Selection.FormatConditions(1).Interior
    .PatternColorIndex = 49407
    .TintAndShade = 0
    Selection.FormatConditions(1).Delete
    End With
    End Sub
    

  • Es erscheint ein Syntaxfehler bei "With Selection..." den ich nicht beheben kann.
    Es muss genau nur diese bedingte Formatierung gelöscht werden, eine/alle anderen bedingten Formatierungen sollen bestehen bleiben.
    Eine kleine Beispieldatei anbei: https://www.herber.de/bbs/user/110233.xlsm
    Wie kann ich nur die bedingte Formatierung mit der o. g. Formel löschen, die an 1. Proi steht und die Farbe 49407 hat?
    Grüße - Erwin
    Anzeige

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

    Betreff
    Datum
    Anwender
    Anzeige
    AW: VBA: bestimmte Formatierung löschen
    29.12.2016 09:24:12
    Hajo_Zi
    Bei With kannst Du nichts zuweisen. Es fehlt auch die Nummer.
    With Selection.FormatConditions(1)
    .Formula1: "=(ZELLE(""Schutz"";A1)=0)"
    den weiteren Code sehe ich mir nicht an.
    Ich würde vermuten ";" ist falsch da muss"," stehen.

    Anzeige
    AW: VBA: bestimmte Formatierung löschen
    29.12.2016 09:29:19
    Gerd
    Hallo Erwin!
    Sub Bedingung_der_bedingten_Formatierung_loeschen()
    ' Die eine bedingte Formatierung (gesperrte Zellen = orange) soll in den
    ' allen Zellen wieder aufgehoben werden
    Dim objCell As Range, X As FormatCondition
    For Each objCell In ActiveSheet.UsedRange
    If objCell.FormatConditions.Count > 0 Then
    For Each X In objCell.FormatConditions
    If X.Formula1 Like "=(ZELLE(""Schutz"";*" Then
    X.Delete
    Exit For
    End If
    Next
    End If
    Next
    End Sub
    

    Gruß Gerd
    Anzeige
    AW: VBA: bestimmte Formatierung löschen
    29.12.2016 09:39:51
    Erwin
    Hallo Gerd,
    danke für den Code, der funktioniert genau passend.
    Wie müsste man denn die Programmierung anpassen, wenn ich zur Sicherheit auch noch die bestehende Farbe (hier: Color 49407) abfragen möchte?
    Grüße - Erwin
    @Hajo: danke auch für deinen Tip
    AW: VBA: bestimmte Formatierung löschen
    29.12.2016 09:56:36
    Gerd
    Hallo Erwin!
    Ungetestet, in der Schleife:
    If X.Interior.Color = 49407 Then ...
    Aber weshalb sollte diese Prüfung notwendig sein?
    Beim selektiven Löschen deiner einzelnen Bed.Form. verschiebt sich in der Formel "A1", daher der
    Like-Operator u. nur der Formelanfang.
    Bei der Bed.Form. sind die Formeln im Code ausnahmsweise in Deutsch anzugeben.
    Daher ist das ";" durchaus richtig.
    Gruß Gerd
    Anzeige
    AW: VBA: bestimmte Formatierung löschen
    29.12.2016 10:22:10
    Erwin
    Hallo Gerd,
    super, habe es einbauen können.
    Ich dachte nur, dass zwei Löschkriterien (Formel und Farbe) sicherer wären, um genau den Code für nicht gesperrte Zellen zu erwischen.
    Danke nochmals
    Grüße - Erwin
    sorry für offen - natürlich erledigt
    29.12.2016 10:23:04
    Erwin
    .
    ;

    Forumthreads zu verwandten Themen

    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

    Bestimmte Formatierungen in Excel VBA löschen


    Schritt-für-Schritt-Anleitung

    Um eine bestimmte bedingte Formatierung in Excel mit VBA zu löschen, kannst du folgenden Ansatz verwenden:

    1. Öffne den VBA-Editor in Excel (Alt + F11).
    2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" -> Einfügen -> Modul).
    3. Kopiere den folgenden Code in das Modul:
    Sub BedingteFormatierungLoeschen()
        Dim objCell As Range
        Dim X As FormatCondition
        For Each objCell In ActiveSheet.UsedRange
            If objCell.FormatConditions.Count > 0 Then
                For Each X In objCell.FormatConditions
                    If X.Formula1 Like "=(ZELLE(""Schutz"";*" Then
                        If X.Interior.Color = 49407 Then
                            X.Delete
                            Exit For
                        End If
                    End If
                Next
            End If
        Next
    End Sub
    1. Starte das Makro, um die bedingte Formatierung zu löschen, die den spezifischen Kriterien entspricht.

    Häufige Fehler und Lösungen

    • Syntaxfehler bei "With Selection...": Achte darauf, dass der Code korrekt strukturiert ist. In VBA darfst du in einer With-Anweisung nichts zuweisen; sie dient nur zur Vereinfachung des Zugriffs auf Objekte.

    • Falsches Trennzeichen in Formeln: Wenn du die Formel auf Deutsch schreibst, verwende ; anstelle von ,. Dies kann zu Fehlern führen, wenn die Formel nicht korrekt interpretiert wird.

    • Nicht gefundene Formatierungen: Überprüfe, ob die bedingte Formatierung tatsächlich auf die Zellen angewendet ist, die du adressieren möchtest.


    Alternative Methoden

    1. Manuelles Löschen: Du kannst auch alle bedingten Formatierungen manuell aufheben, indem du:

      • Zelle oder Bereich auswählen.
      • Auf "Start" -> "Bedingte Formatierung" -> "Regeln verwalten" gehst und die entsprechenden Regeln löschst.
    2. Tastenkombination: Eine schnelle Möglichkeit, alle Formatierungen zu löschen, ist die Verwendung der Tastenkombination Alt + H, dann E, gefolgt von A. Dies entfernt alle Formatierungen, nicht nur die bedingten.


    Praktische Beispiele

    Hier ist ein Beispiel, wie du alle bedingten Formatierungen in einem spezifischen Bereich löschen kannst:

    Sub AlleBedingteFormatierungenLoeschen()
        Range("A1:B10").FormatConditions.Delete
    End Sub

    Dies löscht alle bedingten Formatierungen im Bereich A1:B10.


    Tipps für Profis

    • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

    • Teste deinen Code schrittweise: Nutze die F8-Taste im VBA-Editor, um deinen Code Zeile für Zeile auszuführen und zu sehen, wie er sich verhält.

    • Sichere deine Daten: Bevor du Makros ausführst, speichere deine Excel-Datei, um Datenverluste zu vermeiden.


    FAQ: Häufige Fragen

    1. Wie kann ich alle bedingten Formatierungen in Excel auf einmal löschen?
    Du kannst dies tun, indem du die FormatConditions.Delete-Methode auf den gewünschten Bereich anwendest.

    2. Warum funktioniert mein VBA-Code nicht?
    Stelle sicher, dass du die richtigen Referenzen verwendest und die Syntax korrekt ist. Überprüfe auch, ob die bedingte Formatierung tatsächlich auf die Zellen angewendet ist.

    3. Kann ich nur bestimmte bedingte Formatierungen löschen?
    Ja, indem du Bedingungen in deinem VBA-Code hinzufügst, wie beispielsweise die spezifische Formel oder Farbe.

    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