Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

Bereich Bedingte Formatierung einbetonieren?


Betrifft: Bereich Bedingte Formatierung einbetonieren? von: Daniel Köstinger
Geschrieben am: 24.01.2019 18:02:32

moin

meine Arbeit ist Daten von Baustellen Zeilenweise im Excel zu erfassen in einem VBA modifizierten Eigen-Vorlage um daraus Ausmasse zu erstellen für die Rechnungstellung ect. Funktioniert soweit gut bis auf die Bedingte Formatierung. Minus und Nullwerte sollten in einem Festgelegten Bereich Rot angezeigt werden, macht es auch aber dazu gibt es ein Problemchen:

Je mehr Zeilen (quasi Datensätze) das Sheet hat umso höher wird die Wartezeit beim Copy & Paste sowohl Zeilen löschen/einfügen. Ne Sekunde oder so wäre ja noch kein Problem aber gleich 5, dann 6 ect.. merklich aufsteigend mit jeder erfassten Etage ist mir dann auch zu lange da solch ein Vorgang Täglich x-mal vorkommt.

Gemäss Google wird die Bedingte Formatierung als möglicher Bremsklotz angegeben aber nicht genau warum und nur durch einen Zufall hab ich es herausgefunden wo es klemmt. Ein Kollege hatte ein Problem dass gewisse Bereiche nicht farblich formatiert wurde, also schaute ich mal seine Bedingte Formatierung an sah dann hunderte Formatierungen von x-Bereichen, sein Excel stürzte sogar dabei ab. Sagte dem, lösche die Bedingten Formatierungen im Blatt komplett und mache eine bzw. 3 neue für die 3 Farbcodes. Ging dann perfekt.

Nu denn, dachte muss ich bei mir auch mal checken und siehe da, selbe Sache, hunderte Einträge _ obwohl nur eine da stehen müsste. Alles gelöscht, eine Neue erstellt und es flutschte wie neu ohne Wartezeit :). Auch andere VBA-Funktionen wie z.b. ein Protokoll erstellen vom betreffenden Sheet auf ein separates Sheet liefen deutlich schneller. Win-Win-Situation :))

Bedingte Formatierung ist =<0 für den Bereich =$I$7:$O$19999

Schön und gut aber das geht solange gut bis wieder das Sheet durch Zeilen Copy und Paste oder auch per VBA Zeilen hinzufügen der letzten Zeile verändert wird, dann wird auch die Bedingte Formatierung (unnötig) erweitert.

Bsp. eine Zeile als Vorlage am Schluss (bsp. Zeile 9642) angehängt und nun hab ich schon wieder _ 2 Einträge:
=$I$9642:$O$9642
=$I$7:$O$9641;$I$9643:$O$20000

Copy & Paste und Zeilen löschen/einfügen ist nötig und der Bereich muss editiert werden können. Ab Zeile 7 ist Fix-Vorgabe, bis 19999 eine theoretische Maximalgrösse. Könnt auch =$I:$O machen, kommt aber das selbe Problem.

Ähm ja, stehe auf dem Schlauch mit dem 'Problem' obwohl Excel sicher nix falsches macht aber ganz so logisch erscheint mir der Prozess den zusätzlichen Formatierungen auch nicht da es davor und dahinter identisch wäre.

Gibt's ne Lösung dazu oder muss man damit leben?

lg


  

Betrifft: AW: Bereich Bedingte Formatierung einbetonieren? von: onur
Geschrieben am: 24.01.2019 18:27:43

Man kann das so lösen, dass man z.B. bei Open-Event des Workbooks hineinschreibt, dass alle bedForms gelöscht werden und dass deine Erwünschte neu gesetzt wird.
Das sind nur 2-3 Zeilen.


  

Betrifft: AW: Bereich Bedingte Formatierung einbetonieren? von: Daniel Köstinger
Geschrieben am: 24.01.2019 19:42:24

thnx für den tip :)

hab's dann so:

Private Sub workbook_open()
    
    'Bedingte Formatierung löschen
    Sheets("Ausmass").Range("$I:$O").FormatConditions.Delete
    '..und neu setzen
    Sheets("Ausmass").Range("$I$7:$O$19999").FormatConditions.Add Type:=xlCellValue, Operator:= _
xlLessEqual, Formula1:=0
    Sheets("Ausmass").Range("$I$7:$O$19999").FormatConditions(1).Font.ColorIndex = 3
    
End Sub
lg


  

Betrifft: AW: Bereich Bedingte Formatierung einbetonieren? von: onur
Geschrieben am: 24.01.2019 19:44:02

Gerne!


Beiträge aus dem Excel-Forum zum Thema "Bereich Bedingte Formatierung einbetonieren?"