Bedingte Formatierung der Tabelle hinterlegen statt über eine Regel

  • Excel

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Wagen.Mark.

    Bedingte Formatierung der Tabelle hinterlegen statt über eine Regel

    Hallo!
    Ich habe eine Tabelle, die mit wenigen Daten (unter 3.000 Zeilen und 30 Spalten) mit 3 Tabellenblättern bereits 10MB groß und damit sehr langsam ist.
    Sie enthält Pivots und einige Makros.

    Nachdem ich per sukzessiven Löschen der einzelnen Tabellenblättern probiert habe, ob darin der Hund liegt, erscheint mir die Formatierung das Problem.
    Zudem verschwindet die Formatierung immer wieder.

    Nun möchte ich versuchen, die bedingte Formatierung, die derzeit über Regeln organisiert ist, der Tabelle als code zu hinterlegen.
    Da ich kein Programmierer bin, frage ich, ob es per Aufzeichnen möglich ist, die Regel zu bilden.

    Damit und vorallem mit diesem Forum - also Dank eurer Hilfe - konnte ich mir hinreichend helfen.
    Kann mir jemand bei diesem Problem helfen?

    Gruß MW
    Bilder
    • bedingte Formatierung.jpg

      44,46 kB, 616×246, 154 mal angesehen
    Hallo!

    Möglich ist das schon. Aber sehr aufwendig. Und mit jeder neuen Eingabe in eine Zelle würde neu berechnet, da kann es vorkommen dass das Neuberechnen sehr lange dauert. Gesteuert würde das über "Worksheet_Change". Es sei denn Du möchtest die Farbgebung einmal am Tag anpassen, dann könnte es leichter werden.

    Speichere die Datei mals als XLSB (Excel Binärarbeitsmappe), das spart ca. 43% des Speicherbedarfs einer XLSX/XLSM, und ein Vielfaches an Speicherplatz einer XLS.

    Gruß, René

    Wagen.Mark schrieb:

    die mit wenigen Daten (unter 3.000 Zeilen und 30 Spalten) mit 3 Tabellenblättern bereits 10MB groß und damit sehr langsam ist.
    Dann ist der UsedRange der Sheets überzogen.
    Lösch mal alle leeren Zeilen unterhalb und leere Spalten rechts des real benutzten Bereichs.
    Dann Sheet speichern und staunen.

    Du kannst ggf. vorher und nachher den UsedRange anzeigen.

    Visual Basic-Quellcode

    1. For Each ws in ThisWorkbook.Sheets
    2. Debug.Print ws.Name & ": " & ws.UsedRange.Address
    3. Next
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hallo petaod,
    "alle leeren Zeilen" löschen hatte ich auch gemacht, was nur eine unwesentliche Verbesserung zu Folge hatte. Dennoch Danke!
    Es ist jetzt aber auch akzeptabel.

    Mich beschäftigt mehr das Ding sicherer zu bekommen. Das Thema "bedingte Formatierung ins Makro bringen" ist halt noch ungelöst.
    Geht das überhaupt?

    Gruß MW