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

Forumthread: VBA Bedingte Formatierung mit Formel

VBA Bedingte Formatierung mit Formel
Dennis
Hallo zusammen,
ich versuche gerade eine bedingte Formatierung per VBA zu erstellen hier ist mein momentaner Code:
Sub Makro()
With Columns("G:G")
.FormatConditions.Add Type:=xlExpression, Formula1:="=RECHTS(A1;1) = " & """1"""
.FormatConditions(1).Interior.Color = 10092543
End With
End Sub
Das Problem ist nun das die Formel nicht richtig an die Exceltabelle übertragen wird. Wenn ich nämlich in der bedingten Formatierung die erstellte Formel anschaue gibt es einen Unterschied zu dem was ich eigentlich im VBA Code geschrieben haben
anstatt: Rechts(A1;1) = "1"
steht: =RECHTS(XEZ1048567;1) = "1"
Wieso steht hier nun XEZ und 1048567 obwohl ich im VBA A1 geschrieben habe?
Bei Verwendung des Dollerzeichens im VBA ensteht folgendes:
VBA: Formula1:="=RECHTS(&A1;1) = " & """1"""
Bedingte Formatierung: RECHTS(A1048567;1) = "1"
Vor die Zahl kann ich leider kein Dollarzeichen schreiben da die Formel ja bei jeder Reihe nachschauen soll....
Ich hoffe irgendjemand hat eine Idee woran das liegen könnte und wie man das beheben kann.
Danke im voraus
Gruss Dennis
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Bedingte Formatierung mit Formel
09.06.2011 10:39:14
Rudi
Hallo,
das kommt immer darauf an, welche Zelle gerade aktiv ist.
Ausnahmsweise also mal Range("G1").Activate davor.
Gruß
Rudi
AW: VBA Bedingte Formatierung mit Formel
09.06.2011 10:42:46
Dennis
Hallo Rudi,
vielen Dank für deine Hilfe.
So funktioniert es.
Aber mir ist ehrlich gesagt nicht klar was die aktivierte Zelle damit zu tun, da im VBA ja direkt auf eine Zelle verwiesen wird.....
Gruss Dennis
Anzeige
die Formeln ...
09.06.2011 10:55:34
Rudi
... in der bed. Formatierung werden immer relativ zur akt. Position eingefügt. Es nützt auch nichts, absolute Bezüge in der Formel zu verwenden.
Falls das Blatt gerade nicht aktiv ist, geht das so:
With sheets(1)
With .Columns(7)
.Cells(1).Copy
.Cells(1).PasteSpecial xlPasteFormats
.FormatConditions.Add Type:=xlExpression, Formula1:="=RECHTS(A1;1) = " & """1"""
.FormatConditions(1).Interior.Color = 10092543
End With
End With

Gruß
Rudi
Anzeige
AW: die Formeln ...
09.06.2011 11:38:40
Dennis
Hallo,
Rudi vielen Dank für die Erklärung!
Gruss Dennis
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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 mit VBA und Formeln


Schritt-für-Schritt-Anleitung

Um eine bedingte Formatierung mit VBA zu erstellen, kannst du folgende Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Projektfenster mit der rechten Maustaste auf das gewünschte Blatt und wähle "Einfügen" > "Modul".

  3. Füge den folgenden Code in das Modul ein:

    Sub Makro()
       With Columns("G:G")
           .FormatConditions.Add Type:=xlExpression, Formula1:="=RECHTS(A1;1) = " & """1"""
           .FormatConditions(1).Interior.Color = 10092543
       End With
    End Sub
  4. Um sicherzustellen, dass die bedingte Formatierung korrekt angewendet wird, kannst du die aktive Zelle setzen, bevor du den Code ausführst:

    Sub Makro()
       Range("G1").Activate
       With Columns("G:G")
           .FormatConditions.Add Type:=xlExpression, Formula1:="=RECHTS(A1;1) = " & """1"""
           .FormatConditions(1).Interior.Color = 10092543
       End With
    End Sub
  5. Schließe den VBA-Editor und führe das Makro aus.


Häufige Fehler und Lösungen

Ein häufiges Problem bei der Verwendung der vba bedingte formatierung ist, dass Excel die Formeln relativ zur aktiven Zelle einfügt. Wenn du beispielsweise die Formel =RECHTS(A1;1) = "1" verwendest, wird Excel dies als =RECHTS(XEZ1048567;1) = "1" interpretieren, wenn sich die aktive Zelle nicht in der ersten Zeile befindet.

Lösung: Stelle sicher, dass du die Zelle aktivierst, bevor du die Formatierung anwendest. Alternativ kannst du die Formatierung in einer Schleife für jede Zeile in der Spalte anwenden.


Alternative Methoden

Eine alternative Methode zur Anwendung der excel vba bedingte formatierung besteht darin, die Formatierung direkt auf die Zellen anzuwenden, ohne die aktive Zelle zu berücksichtigen. Hier ist ein Beispiel:

Sub Makro()
    With Sheets(1).Columns(7)
        .FormatConditions.Add Type:=xlExpression, Formula1:="=RECHTS(A1;1) = " & """1"""
        .FormatConditions(1).Interior.Color = 10092543
    End With
End Sub

Diese Methode ist nützlich, wenn das Arbeitsblatt nicht aktiv ist.


Praktische Beispiele

Hier sind einige Beispiele, wie du die bedingte formatierung mit formel in verschiedenen Szenarien anwenden kannst:

  • Farbliche Hervorhebung von Zahlen: Wenn du alle Zellen in Spalte G farblich hervorheben möchtest, deren letzte Ziffer eine "1" ist.

    Sub HighlightOnCondition()
      With Columns("G:G")
          .FormatConditions.Add Type:=xlExpression, Formula1:="=RECHTS(A1;1) = " & """1"""
          .FormatConditions(1).Interior.Color = RGB(255, 0, 0) ' Rot
      End With
    End Sub
  • Automatische Anpassung der Formatierung: Wenn du die Formatierung dynamisch anpassen möchtest, wenn sich die Daten in der Tabelle ändern.


Tipps für Profis

  • Verwende Conditional Formatting in Excel, um die Übersichtlichkeit zu erhöhen. Mit vba bedingte formatierung kannst du komplexe Bedingungen einfach umsetzen.
  • Denke daran, dass die Formel immer relativ zur Position der Zelle angewendet wird. Teste deine Formeln in einer Beispiel-Excel-Datei.
  • Wenn du häufig die bedingte formatierung vba verwendest, erstelle ein Modul mit wiederverwendbaren Funktionen, um den Code effizienter zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich absolute Zellbezüge in der bedingten Formatierung verwenden?
Du kannst absolute Zellbezüge verwenden, indem du das Dollarzeichen ($) in deiner Formel einfügst. Beachte jedoch, dass dies die relativen Bezüge in der Formatierung nicht beeinflusst.

2. Wie kann ich mehrere Bedingungen in der bedingten Formatierung hinzufügen?
Verwende die .FormatConditions.Add Methode mehrmals, um verschiedene Bedingungen hinzuzufügen. Jede Bedingung wird separat behandelt.

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