Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: ---> Neu: Office 2010 Forum <-
VBA Library für Conditional Formatting
zurück: Ordnerauswahldialog mit Konfigurationsmöglichkeiten weiter: Formularentwurf: Gutes Layout und nutzerfreundliche Funktion Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
09. Dez 2009, 16:18
Rufname:


VBA Library für Conditional Formatting - VBA Library für Conditional Formatting

Nach oben
       Version: Office 2007

Hallo zusammen,

Conditional Formatting ist eine feine Sache in Endlosformularen: Man kann jedem Feld Eigenschaften innerhalb einer Zeile in Abhängigkeit von einfachen Feldwerten oder komplexen Ausdrücken zuweisen. Sogar eine Formatierung zuweisen, wenn ein Feld den Fokus erhält.

Aber wo Licht ist, ist auch Schatten: Die bedingte Formatierung kostet richtig Performance, wenn man in größeren Listen scrollt oder auf große Listen Filter oder Sortierungen anwendet.

Außerdem kann man neben der Default-Formatierung lediglich drei weitere bedingte Formatierungen einstellen, was auch nicht gerade üppig ist.

Beide Probleme kann man mit der angehängten VBA-Library (in Grenzen) lösen.
Enthalten sind Funktionen, die die bedingte Formatierung eines Feldes (Textbox oder Combobox) auslesen, löschen oder schreiben können. Zusätzlich kann man die Einstellungen in einer Datenbanktabelle speichern (im Modul geschrieben für einen SQL Server und ein Access Projekt, läßt sich aber ganz leicht an Access Tabellen anpassen).
Der CREATE-Befehl für SQL Server ist im Header enthalten.

Die übrigen Funktionen können auch ohne weitere Tabellen verwendet werden. Man kann nun einen Button im Formular anbieten, der einfach alle Controls eines Formulars durchläuft, deren Einstellungen für bedingte Formatierung als Variablen oder in eine Tabelle speichert und diese dann im Control löscht.
Ergebnis ist eine "saubere" Tabelle, die keinerlei Farbspielereien mehr enthält, dafür aber auch wieder im Volltempo gescrollt werden kann.

Dies kann man zum Beispiel so erreichen:
Code:
    For Each ctl In Me.Controls
        If (TypeOf ctl Is TextBox) Or (TypeOf ctl Is ComboBox) Then
            procCONDFSaveCtl fnCONDFGetCtl(ctl), ctl.Name
            procCONDFDeleteAll ctl
        End If
    Next ctl
Dabei werden nur die bedingten Formatierungen gelöscht, wenn das Feld selbst irgendwie gefärbt ist, bleibt das unverändert, das stört aber das Scrolltempo nicht.

Darüber hinaus kann man die Funktionen dafür verwenden, um z.B. in Abhängigkeit der ausgewählten Zeile die bedingten Formatierungen neu zu setzen, was in gewissen Grenzen die Anzahl der möglichen Formatierungen erhöhen kann. Da die Änderungen alle Zeilen betreffen, ändern sich natürlich auch die Formatierungen für den Rest des Formulars. In einem Einzelformular dagegen kann man so die möglichen Formatierungen programmiertechnisch beinahe beliebig erweitern - dort hat man i.d.R. auch nicht die Performance-Probleme.

Das Attachment kann einfach im VBA-Editor mit "Importieren" als Modul eingefügt werden.

Viel Spaß damit...Smile

Christian



modConditionalFormattingV1.zip
 Beschreibung:
VBA-Library für Conditional Formatting (Bedingte Formatierung)

Kleiner Bugfix...

Download
 Dateiname:  modConditionalFormattingV1.zip
 Dateigröße:  3.52 KB
 Heruntergeladen:  35 mal

Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen




Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Programmierung / VBA: Verweis einfügen - Microsoft Excel 11.0 Objekt Library 4 helado 652 13. März 2009, 11:36
helado Verweis einfügen - Microsoft Excel 11.0 Objekt Library
Keine neuen Beiträge Access Programmierung / VBA: controls library einbinden 1 FamLederer 304 14. Mai 2007, 18:19
steffen0815 controls library einbinden
Keine neuen Beiträge Access Programmierung / VBA: Dokumentation Microsoft Outlook 11.0 Object Library 1 rg 1634 14. Mai 2007, 10:06
NichtTerminal Dokumentation Microsoft Outlook 11.0 Object Library
Keine neuen Beiträge Access Formulare: Problem mit Verweis in existierender DB (Object Library) 2 FamLederer 352 11. Mai 2007, 15:06
Nouba Problem mit Verweis in existierender DB (Object Library)
Keine neuen Beiträge Access Programmierung / VBA: Microsoft Visual C++ Debug Library 3 juho 582 07. Mai 2007, 14:27
Rolle84 Microsoft Visual C++ Debug Library
Keine neuen Beiträge Access Programmierung / VBA: DAO Library mit VBA automatisch setzen 1 chriscool 404 03. Jul 2004, 13:54
Willi Wipp DAO Library mit VBA automatisch setzen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Expression Web Forum