HERBERS Excel-Forum - das Archiv

Thema: Bedingte Formatierung aufheben und wieder aktivieren

Bedingte Formatierung aufheben und wieder aktivieren
Frank H.
Hallo und Guten Morgen,

ich habe mal 'ne Frage ob es irgendwie überhaupt eine Lösung für mein Anliegen gibt?

Auf einem Tabellenblatt in den Zellen A2:AE57 befinden sich mehrere bedingte Formatieren.
Nun möchte ich mittels Button, das Blatt drucken, jedoch sollen vor dem Drucken die bed. Formatierungen aufgehoben werden
und nach dem Drucken wieder aktiviert werden.
Geht so etwas überhaupt und wenn ja, wie muss der Code aussehen?
Danke euch im Voraus!

L.G. Frank H.
AW: Bedingte Formatierung aufheben und wieder aktivieren
heli
Hi,

das würde ich von Prozess her so aufbauen:
_ in einer versteckten Zelle schreibst Du z. B. eine 1 rein wenn die bedingte Formatierung ausgeschalten werden soll
_ in deinen bed. Formatierungen fügst Du eine Bedingung auf diese Zelle (A1 <> 1) hinzu
_ vor dem Drucken setzt Du dann den Wert in die Zelle und löscht ihn danach wieder raus

Beispielcode:
Private Sub Workbook_BeforePrint(Cancel As Boolean)

Application.EnableEvents = False
Cancel = True ' Abbrechen des Druckauftrags
DeineTabelle.Range("A1") = 1
ActiveSheet.PrintOut ' Drucke das aktive Blatt
DeineTabelle.Range("A1") = ""
' Deine AfterPrint-Befehle hier
Application.EnableEvents = True
End Sub


Den Code habe ich hier gefunden, da ist auch eine gute Beschreibung dabei:
https://www.herber.de/forum/archiv/804to808/806267_WorkbookAfterPrint.html

Servus, heli
AW: Bedingte Formatierung aufheben und wieder aktivieren
Frank H.
Hallo Heli,

Danke für deine schnelle Antwort.
Wollte gerade ins Forum meine Lösung stellen.
Nach deinem Schema, nur habe ich in A1 "Drucken" geschrieben.
L.G. Frank H.
AW: Bedingte Formatierung aufheben und wieder aktivieren
Joachim
Hallo Frank,

anbei ein Code-Ausschnitt mit dem ich sowas schonmal gemacht habe - muss entsprechend angepasst werden.
Zuerst werden alle bedingte Formatierungen gelöscht, danach dann wieder erstellt. Funktioniert auch mit XL-Versionen in anderer Sprache.

Dim MeinBereich As Range

Set MeinBereich = Range("L17:BR" & LastRow)
'Vorherige bedingte Formatierung löschen
MeinBereich.FormatConditions.Delete

'1. Regel hinzufügen Critical
Const strCondFormula = "tmpCondFormula" 'temporary name for conditional format formula
Dim strFormula As String
ActiveSheet.Names.Add strCondFormula, RefersTo:="=AND($L17 <>"""",$M17 <>"""",$BP17=BasicData!$D$5)"
strFormula = ActiveSheet.Names(strCondFormula).RefersToLocal
strFormula = Replace(Replace( _
strFormula, ActiveSheet.Name & "!", ""), "'" & ActiveSheet.Name & "'!", "")


MeinBereich.FormatConditions.Add Type:=xlExpression, Formula1:= _
strFormula '"=UND($L17 <>"";$M17 <>"";$BP17=BasicData!$D$5)" 'Tabelle04.Range("I32").Formula '
MeinBereich.FormatConditions(1).Interior.Color = RGB(254, 201, 207)
MeinBereich.FormatConditions(1).StopIfTrue = False

ActiveSheet.Names(strCondFormula).Delete

AW: Bedingte Formatierung aufheben und wieder aktivieren
Frank H.
Hallo Joachim,

auch dir herzlichst Danke.
Klingt ein wenig kompliziert. Habe selbst 'ne für mich akzeptable Lösung gefunden,
diese ähnelt dem Vorschlag von Heli.

L.G. Frank H.