Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bedingte Formatierungen reparieren (VBA)
#1
Moin!

Ich suche mich grade dusselig und finde es nicht. Ich wollte jetzt der Sache nachgehen und bedingte Formatierungen, deren Anwendungsbereiche im Laufe der Zeit durcheinandergeraten durch ein Makro reparieren lassen. Ich habe hier schonmal einen Thread dazu gesehen und jemand wies vor kurzem erst darauf in einer Antwort hin, aber ich finde es nicht mehr. 

Hat jemand eine Idee, wie ich es finde? Dr. Google und auch die Forensuche helfen irgendwie nicht weiter...

Vielleicht hilft dieser Thread ja auch dem nächsten Suchenden, schneller das Ziel zu finden.

Danke euch!
Antworten Top
#2
Hallo,

bestimmt gehöre ich nicht zu denen, die von der Verwendung von Makros abraten. Aber in diesem Fall wird ein Makro eher nicht hilfreich sein. Das kann man unter bedingter Formatierung / Regeln verwalten doch recht einfach in Ordnung bringen. Auch ist es hilfreich, in der Datei nicht so viel herum zu kopieren.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Muss man halt den Nutzern klarmachen, dass die nichts hin und her verschieben oder kopieren sollen. Wird erfahrungsgemäß trotzdem immer vorkommen und irgendwann bestehen die Anwendungsbereiche aus so vielen Hackstückeln, dass die Performance darunter leidet. Bevor ich den Anwendern jetzt beibringe, wie man bedingte Formatierungen repariert, möchte ich es doch gern über ein Makro lösen, zumal das in irgendeinem Thema der letzten Wochen (?!) auch empfohlen wurde, das so umzusetzen.

Deshalb... Die eigentliche Frage... Ob irgendwer weiß, welcher Thread gemeint war.

Grüße
Antworten Top
#4
Hallo,

das hatte ich schon verstanden, kann mir aber nicht vorstellen, dass man per Makro so etwas reparieren kann, außer, man hat einen Urzustand im Makro hinterlegt, das dann alle bedingten Formate löscht und durch den "Urzustand", um neue Zeilen erweitert, wieder einträgt. Das wird man aber nicht globogalaktisch lösen können, sondern angepasst auf die jeweilige Datei.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#5
Hallo,
 
wenn die bedingten Formatierungen durch Anwender zerschossen wurden, ist es sinnvoll den vorhandenen Teil im Tabellenblatt zu löschen und alles neu zu setzen.
 
beispielhaft für Zellbereich A1 bis D20 wird eine bedingte Formatierung (Zellrahmen der Zeile zeigen), wenn in Zellen der Spalte A ein Wert steht und
wenn dieser Wert >10 wird eine bedingte Formatierung (Zellfarbe der Zeile zeigen) erzeugt.
Mit dem Makrorecoder kannst du deine bedingten Formatierungen aufnehmen und dann den Code entselektieren/aufbereiten.
 
Code:
Sub BedingteFormatierungenRahmen()
    With Sheets("Tabelle1").Range("A1:D20")
        .FormatConditions.Delete  ' löscht alle noch bestehenden bed. Formatierungen
        .FormatConditions.Add Type:=xlExpression, Formula1:="=$A1<>"""""    ' erzeugt bed. Form. (Formel)
        With .FormatConditions(.FormatConditions.Count).Borders(xlLeft)     ' Zellrahmen
            .LineStyle = xlContinuous
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .FormatConditions(.FormatConditions.Count).Borders(xlRight)
            .LineStyle = xlContinuous
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .FormatConditions(.FormatConditions.Count).Borders(xlTop)
            .LineStyle = xlContinuous
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .FormatConditions(.FormatConditions.Count).Borders(xlBottom)
            .LineStyle = xlContinuous
            .TintAndShade = 0
            .Weight = xlThin
        End With
        .FormatConditions.Add Type:=xlExpression, Formula1:="=A$1>10"   ' erzeugt bed. Form. (Formel)
        With .FormatConditions(.FormatConditions.Count).Interior        ' Füllfarbe Gelb
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
        End With
    End With
End Sub
 
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Sabotaz
Antworten Top
#6
Großartig! 
Danke dafür. Hatte es mit Makro aufzeichnen mal versucht, aber ändern kann man damit nur nicht den Anwendungsbereich. Dank deiner Antwort weiß ich jetzt, dass ich die bedFormatierung aufnehmen muss, wie ich sie neu erstelle.

Das hilft weiter!
Antworten Top
#7
Hallo Sabotaz,

Zitat:aber ändern kann man damit nur nicht den Anwendungsbereich.

ich meine auch das sollte gehen. Habe zwar schon sehr viel mit Makros gemacht, aber das noch nicht. Liegt wohl daran, dass ich bedingte Formatierungen eher sparsam einsetze.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#8
(12.05.2024, 12:47)Egon12 schrieb: Mit dem Makrorecoder kannst du deine bedingten Formatierungen aufnehmen und dann den Code entselektieren/aufbereiten.

Hallo nochmal! 

Irgendwie wird bei mir nichts aufgenommen. Was mache ich falsch? Ich starte die Aufzeichnung und öffne wie gewohnt das Fenster für bedingte Formatierungen, neue Regel, Formel, Formatierung, etc., dabei kommt am Ende nur 

Code:
Sub Test_bedFor()
'
' Test_bedFor Makro
'

'
    Sheets("Tabellenblatt1").Select
    Range("D18:V18").Select
End Sub

raus...
Antworten Top
#9
Hallo,
ich vermute mal, dass im Modul des Tabellenblattes eine Ereignisprozedur dem Abbruch der Aufzeichnung verursacht (z.B.: Worksheet_Calculate).
 
Gruß Uwe
Antworten Top
#10
moin,

bei mir wird nüscht mit aufgezeichnet wenn ich

Makrorekorder starte -->
Regeln verwalten und dort eine neue Bedingung zufüge

gehe ich direkt zu: Neue Regel hinzufügen
dann wird der ganze Schmodder aufgezeichnet

mfg Tom
[-] Folgende(r) 1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag:
  • Sabotaz
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste