Die bedingte Formatierung ist möglicherweise falsch festgelegt, wenn Sie VBA in Excel verwenden.

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

  • Sie wählen eine Zelle in einem Arbeitsblatt in Microsoft Excel 2000 oder einer höheren Version von Excel aus.
  • Sie verwenden Microsoft Visual Basic for Applications (VBA), um ein formelbasiertes Programm zur bedingten Formatierung zu erstellen.
  • Sie verwenden relative Zellbezüge im VBA-Programm für die bedingte Formatierung.
  • Sie wenden die bedingte Formatierung auf eine andere Zelle als die ausgewählte Zelle an.

Wenn Sie die bedingte Formatierung anwenden, stellen Sie fest, dass die bedingte Formatierung nicht richtig festgelegt ist.

Dieses Problem tritt beispielsweise auf, wenn Sie ein Programm verwenden, das VBA-Code in einem Excel-Arbeitsblatt enthält, das dem folgenden Code ähnelt:

Sub Example()
ThisWorkbook.Worksheets(1).Range("A1").Select
With ThisWorkbook.Worksheets(1).Range("B1")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, _
Formula1:="=A1=1"
.FormatConditions(1).Interior.ColorIndex = 46
End With
End Sub

Dieser Code wendet die bedingte Formatierung automatisch auf Zelle B1 an, wenn Sie "1" in Zelle A1 eingeben. Wenn Sie "1" in Zelle A1 eingeben, erwarten Sie, dass sich die Farbe der Zelle B1 in Rot ändert. Die Farbe der Zelle ändert sich jedoch nicht. Die Farbe der Zelle B1 ändert sich nur dann in Rot, wenn Sie in Zelle B1 "1" eingeben.

Darüber hinaus zeigt das Dialogfeld Bedingte Formatierung die Formel als =B1=1 anstelle von =A1=1 an.

Problemumgehung

Verwenden Sie eine der folgenden Methoden, um dieses Problem zu umgehen.

Methode 1: Verwenden absoluter Zellbezüge

Sie können absolute Zellbezüge verwenden, um auf die Zelle zu verweisen, die die Formel enthält, anstatt auf relative Zellbezüge zu verweisen.

Beispielsweise können Sie den Texteintrag Formula1:="=A1=1" im VBA-Code ändern, der im Abschnitt "Symptome" als Formula1:="=$A$1=1" beschrieben wird, damit der Code absolute Zellbezüge verwendet. Diese geänderte Version des VBA-Codes lautet wie folgt:

Sub Example()

ThisWorkbook.Worksheets(1).Range("A1").Select

With ThisWorkbook.Worksheets(1).Range("B1")
     .FormatConditions.Delete
     .FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=1"
     .FormatConditions(1).Interior.ColorIndex = 46
End With

End Sub

Methode 2: Wählen Sie die Zelle aus, die Sie für die bedingte Formatierung verwenden möchten, bevor Sie die Formel anwenden.

Wenn Sie eine bedingte Formatierung auf eine Zelle anwenden möchten, wählen Sie zuerst die Zelle aus, die Sie für die bedingte Formatierung verwenden möchten. Wählen Sie dann die Zelle aus, die Sie für die Formel verwenden möchten. Nachdem Sie diese Zelle ausgewählt haben, ändern Sie die Formel entsprechend Ihren Anforderungen.

Führen Sie dazu die folgenden Schritte aus, je nachdem, welche Version von Excel Sie ausführen.

Microsoft Office Excel 2007

  1. Starten Sie Excel, und öffnen Sie dann ein neues Excel-Arbeitsblatt.
  2. Wählen Sie im Excel-Arbeitsblatt Zelle B1 aus.
  3. Klicken Sie auf die Registerkarte Start .
  4. Klicken Sie in der Gruppe Formatvorlagen auf Bedingte Formatierung, und klicken Sie dann auf Neue Regel.
  5. Klicken Sie unter Regeltyp auswählen auf Formel verwenden, um zu bestimmen, welche Zellen formatiert werden sollen.
  6. Klicken Sie in das Feld Werte formatieren, bei denen diese Formel true ist . Wählen Sie dann die Zelle aus, die Sie für die bedingte Formatierung verwenden möchten.
  7. Ändern Sie den Wert in Schritt 6 in =$A$1=1.
  8. Klicken Sie auf Format.
  9. Klicken Sie im Dialogfeld Zellen formatieren auf die Registerkarte Füllung .
  10. Klicken Sie auf die Farbe "rot", und klicken Sie dann auf OK.
  11. Klicken Sie im Dialogfeld Neue Formatierungsregel auf OK.
  12. Geben Sie in Zelle A1 1 ein, und drücken Sie dann die EINGABETASTE.
  13. Überprüfen Sie, ob die Farbe der Zelle B1 in Rot geändert wurde.
  14. Schließen Sie das Excel-Arbeitsblatt.

Microsoft Office Excel 2003 und frühere Versionen von Excel

  1. Starten Sie Excel, und öffnen Sie dann ein neues Excel-Arbeitsblatt.
  2. Wählen Sie im Excel-Arbeitsblatt Zelle B1 aus.
  3. Klicken Sie im Menü Format auf Bedingte Formatierung.
  4. Klicken Sie unter Bedingung 1 in der Liste auf Formel ist .
  5. Klicken Sie in das Dateneingabefeld. Wählen Sie dann die Zelle aus, die Sie für die bedingte Formatierung verwenden möchten.
  6. Ändern Sie den Wert im Dateneingabefeld in =$A$1=1, und klicken Sie dann auf OK.
  7. Klicken Sie auf Format.
  8. Klicken Sie im Dialogfeld Zellen formatieren auf die Registerkarte Muster .
  9. Wählen Sie die Farbe "rot" aus, und klicken Sie dann auf OK.
  10. Klicken Sie im Dialogfeld Bedingte Formatierung auf OK.
  11. Geben Sie in Zelle A1 1 ein, und drücken Sie dann die EINGABETASTE.
  12. Überprüfen Sie, ob die Farbe der Zelle B1 in Rot geändert wurde.
  13. Schließen Sie das Excel-Arbeitsblatt.