Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: bedingte Fomatierung erweitern über VBA

bedingte Fomatierung erweitern über VBA
07.02.2018 10:01:45
Rincewind
Hallo zusammen,
ich erstelle eine ToDo - Liste, die mittels bedingter Formatierung darauf hinweist, wenn eine Aufgabe dringend zu erledigen ist. Die Anlage neuer Aufgaben erfolgt über eine Userform, damit die Eingaben standardisiert werden. Ich möchte nun erreichen, dass zusätzlich zur Anlage der neuen Aufgabe eben auch der Wirkbereich der bedingten Formatierung um eine Zeile erweitert wird, damit ich zum einen die bedingte Formatierung nicht von vorne herein über tausend Zeilen laufen lassen muss, um Ressourcen zu sparen, und zum anderen auch nicht bei jeder neuen Aufgabe den Bereich manuell anpassen muss.
Ich habe hierzu schon einen Code gefunden, der angeblich funktionieren soll, den ich aber leider nicht richtig verstehe und somit nicht auf meine Bedürfnisse anpassen kann:
Cells(1, 1).FormatConditions(1).ModifyAppliesToRange Range:=Cells(1, 2).Resize(7, 1)
Soweit ich es verstehe, ist mit dem ersten Cells der Bereich gemeint, auf den die Formatierung aktuell wirkt (müsste eigentlich in Range umgeändert werden) und die Ziffer in der Klammer hinter FormatConditions gibt an welche bedingte Formatierung angesprochen wird. Beim Rest komme ich leider nicht weiter.
Aktuell ist die Bedingte Formatierung auf den Bereich A2:F2 gelegt. Mit jeder neu angelegten Aufgabe soll der Bereich um eine Zeile erweitert werden.
In meiner Beispieldatei wird die Userform über den Commandbutton "Neue Aufgabe" aufgerufen. Mir würde es aber reichen, wenn mir jemand sagt, wie ich grundsätzlich den Einzug der BF um eine Zeile vergößere. In den Code meiner Userform bekomme ich das dann schon selber integriert.
https://www.herber.de/bbs/user/119618.xlsm
Danke im Voraus.
Volker
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bedingte Fomatierung erweitern über VBA
07.02.2018 15:44:27
ChrisL
Hi Volker
Sub Makro1()
Dim letzteZeile As Long
letzteZeile = Cells(Rows.Count, "A").End(xlUp).Row
Range("A2").FormatConditions(1).ModifyAppliesToRange Range:=Range("A2").Resize(letzteZeile - 1,  _
6)
End Sub

cu
Chris
AW: bedingte Fomatierung erweitern über VBA
07.02.2018 16:54:32
Rincewind
Klappt super. Vielen Dank
Anzeige
Danke für die Rückmeldung owT
07.02.2018 16:58:28
ChrisL
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bedingte Formatierung in Excel mit VBA erweitern


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und gehe zum VBA-Editor, indem du ALT + F11 drückst.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsm)" und wähle "Einfügen" > "Modul".

  3. Füge den folgenden Code ein:

    Sub Makro1()
       Dim letzteZeile As Long
       letzteZeile = Cells(Rows.Count, "A").End(xlUp).Row
       Range("A2").FormatConditions(1).ModifyAppliesToRange Range:=Range("A2").Resize(letzteZeile - 1, 6)
    End Sub

    Dieser Code ermittelt die letzte Zeile in Spalte A und erweitert den Wirkbereich der bedingten Formatierung von A2 bis zur letzten Zeile.

  4. Speichere das Modul und schließe den VBA-Editor.

  5. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle Makro1 aus und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: "Der angegebene Bereich ist ungültig."

    • Lösung: Überprüfe, ob die bedingte Formatierung korrekt eingerichtet ist und ob sie sich auf den Bereich A2:F2 bezieht.
  • Fehler: "Unzureichender Speicher"

    • Lösung: Stelle sicher, dass du den Bereich nicht unnötig groß machst. Es ist effizienter, die bedingte Formatierung nur auf die tatsächlich benötigten Zeilen anzuwenden.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch die bedingte Formatierung manuell anpassen:

  1. Gehe zu "Start" > "Bedingte Formatierung".
  2. Wähle "Regeln verwalten" und passe den Bereich direkt an.

Diese Methode ist jedoch weniger effizient, wenn du regelmäßig neue Aufgaben hinzufügst.


Praktische Beispiele

Angenommen, du hast eine ToDo-Liste in Excel, und die bedingte Formatierung soll die Zeilen rot einfärben, wenn eine Aufgabe überfällig ist. Mit dem obigen VBA-Code kannst du die bedingte Formatierung einfach erweitern, wenn du neue Aufgaben hinzufügst.

Hier ist ein Beispiel für eine einfache Regel, die du in der bedingten Formatierung verwenden kannst:

  1. Wähle den Bereich aus (z.B. A2:F2).
  2. Gehe zu "Bedingte Formatierung" > "Neue Regel".
  3. Wähle "Formel zur Ermittlung der zu formatierenden Zellen verwenden" und gib ein:

    =A2<TODAY()

Diese Regel färbt die Zelle rot, wenn das Datum in A2 kleiner als das heutige Datum ist.


Tipps für Profis

  • Verwende die Funktion ModifyAppliesToRange: Diese VBA-Funktion ist besonders hilfreich, wenn du die bedingte Formatierung dynamisch anpassen möchtest.
  • Teste den Code regelmäßig: Stelle sicher, dass nach jeder Anpassung alles wie gewünscht funktioniert.
  • Dokumentiere deinen Code: Füge Kommentare hinzu, um den Code später leichter verstehen zu können.

FAQ: Häufige Fragen

1. Wie kann ich eine bedingte Formatierung in einer bestimmten Excel-Version anwenden?
Die oben beschriebenen Schritte funktionieren in Excel 2010 und späteren Versionen.

2. Was mache ich, wenn ich die bedingte Formatierung für mehrere Spalten erweitern möchte?
Ändere einfach den Bereich in der Zeile Range:=Range("A2").Resize(letzteZeile - 1, 6) auf die gewünschte Anzahl an Spalten. Zum Beispiel, um die Formatierung auf die Spalten A bis F zu erweitern, bleibt der Code unverändert, da bereits 6 Spalten berücksichtigt sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige