window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Bedingte Formatierung per VBA

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Im Artikel Bedingte Formatierung haben Sie in Ausgabe 11/2011 erfahren, wie Sie die bedingte Formatierung einsetzen, um die Steuer-elemente in Formularen und Datenblättern in Abhängigkeit ihrer Werte mit bestimmten Formatierungen zu versehen – beispielsweise, um kritische Zahlenwerte mit einem roten Hintergrund zu versehen. Zwar können Sie seit Access 2010 bis zu 50 bedingte Formatierungen je Feld definieren, aber wer möchte das schon von Hand erledigen Zu Glück können Sie auf diese Technik auch per VBA zugreifen und so die Formatierungen mit etwas mehr Hirnschmalz, aber weniger Handarbeit definieren.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1805_BedingteFormatierungPerVBA.accdb.

Wunderwaffe VBA

Fast alles, was Sie unter Access über die Benutzeroberfläche erledigen können, lässt sich unter VBA regeln. In vielen Fällen ist das sehr hilfreich, vor allem dann, wenn Sie sich damit oft wiederholender oder umfangreicher Aufgaben entledigen können. Und das Setzen vieler bedingter Formatierungen für die Steuer-elemente etwa eines Formulars oder Berichts ist eine der Aufgaben, die man lieber nicht von Hand erledigt.

Stattdessen könnte man die Zeit viel besser in die Programmierung stecken – zum Beispiel, um das Festlegen von bedingten Formatierungen zu automatisieren.

Erst lesen, dann schreiben

Um ins Thema einzusteigen, legen wir einmal zwei verschiedene Formatierungen für ein Feld eines Formulars in der Datenblattansicht an. Das Formular heißt frmArtikel und soll alle Datensätze der Tabelle tblArtikel anzeigen (siehe Bild 1). Wir wollen zunächst das Feld Lagerbestand mit einer bedingten Formatierung ausstatten, die dafür sorgt, dass das Feld rot angezeigt wird, wenn der Lagerbestand den Wert 0 aufweist. Dazu wählen wir aus dem Kontextmenü dieses Textfeldes den Eintrag Bedingte Formatierung aus und klicken im nun erscheinenden Dialog Manager für Regeln zur bedingten Formatierung auf die Schaltfläche Neue Regel.

Formular-Entwurf unseres Beispielformulars

Bild 1: Formular-Entwurf unseres Beispielformulars

Dies öffnet den Dialog Neue Formatierungsregel, dem wir den Operator Gleich und den Vergleichswert 0 zuweisen. Außerdem stellen wir als Hintergrundfarbe die rote Farbe ein (siehe Bild 2).

Anlegen einer neuen bedingten Formatierung

Bild 2: Anlegen einer neuen bedingten Formatierung

Nach dem Mausklick auf die Schaltfläche OK schließt sich der Dialog und die neue Formatierungsregel wird in der Liste der Formatierungsregeln um aufrufenden Dialog angezeigt (siehe Bild 3).

Liste der angelegten Formatierungsregeln

Bild 3: Liste der angelegten Formatierungsregeln

Für die übrigen Steuer-elemente legen wir noch eine weitere Formatierungsregel an, welche die übrigen Steuer-elemente mit Ausnahme des Kontrollkästchens für das Feld Auslaufartikel ebenfalls rot färbt, wenn das Feld Lagerbestand den Wert 0 annimmt.

Hierbei ist interessant, dass beim Markieren mehrerer Steuerelemente gleichzeitig der Befehl Bedingte Formatierung nicht mehr im Kontextmenü vorhanden ist, aber immer noch im Ribbon unter Format|Steuerelement-formatierung|Bedingte Formatierung erscheint. Für diese Felder legen wir eine bedingte Formatierung an, welche den Ausdruck [Lagerbestand]=0 enthält und dabei den Hintergrund rot färbt (siehe Bild 4). Damit haben wir nun Spielmaterial, das wir per VBA erforschen können.

Anlegen einer weiteren neuen bedingten Formatierung

Bild 4: Anlegen einer weiteren neuen bedingten Formatierung

Bedingte Formatierung per VBA

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar