De voorwaardelijke opmaak is mogelijk onjuist ingesteld wanneer u VBA in Excel gebruikt

Symptomen

Neem het volgende scenario:

  • U selecteert een cel in een werkblad in Microsoft Excel 2000 of in een latere versie van Excel.
  • U gebruikt Microsoft Visual Basic for Applications (VBA) om een programma voor voorwaardelijke opmaak op basis van formules te maken.
  • U gebruikt relatieve celverwijzingen in het VBA-programma voor voorwaardelijke opmaak.
  • U past de voorwaardelijke opmaak toe op een andere cel dan de geselecteerde cel.

Wanneer u de voorwaardelijke opmaak toepast, ziet u dat de voorwaardelijke opmaak niet correct is ingesteld.

U ondervindt dit probleem bijvoorbeeld wanneer u een programma gebruikt dat VBA-code bevat in een Excel-werkblad dat vergelijkbaar is met de volgende code:

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

Met deze code wordt de voorwaardelijke opmaak automatisch toegepast op cel B1 wanneer u '1' invoert in cel A1. Wanneer u '1' invoert in cel A1, verwacht u dat de kleur van cel B1 rood wordt. De kleur van de cel verandert echter niet. De kleur van cel B1 verandert alleen in rood als u '1' invoert in cel B1.

Daarnaast wordt in het dialoogvenster Voorwaardelijke opmaak de formule weergegeven als =B1=1 in plaats van =A1=1.

Tijdelijke oplossing

Om dit probleem te omzeilen, gebruikt u een van de volgende methodes.

Methode 1: Absolute celverwijzingen gebruiken

U kunt absolute celverwijzingen gebruiken om te verwijzen naar de cel met de formule in plaats van naar relatieve celverwijzingen.

U kunt bijvoorbeeld de tekstvermelding Formula1:="=A1=1" in de VBA-code wijzigen die in de sectie Symptomen wordt beschreven als Formule1:="=$A$1=1" zodat de code absolute celverwijzingen gebruikt. Deze gewijzigde versie van de VBA-code is als volgt:

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: Selecteer de cel die u wilt gebruiken voor voorwaardelijke opmaak voordat u de formule toepast

Als u voorwaardelijke opmaak wilt toepassen op een cel, selecteert u eerst de cel die u wilt gebruiken voor de voorwaardelijke opmaak. Selecteer vervolgens de cel die u wilt gebruiken voor de formule. Nadat u deze cel hebt geselecteerd, kunt u de formule aanpassen aan uw vereisten.

Volg hiervoor deze stappen, voor zover van toepassing op de versie van Excel die u gebruikt.

Microsoft Office Excel 2007

  1. Start Excel en open een nieuw Excel-werkblad.
  2. Selecteer cel B1 in het Excel-werkblad.
  3. Klik op het tabblad Start .
  4. Klik op Voorwaardelijke opmaak in de groep Stijlen en klik vervolgens op Nieuwe regel.
  5. Klik op Een formule gebruiken om te bepalen welke cellen moeten worden opgemaakt onder Een regeltype selecteren.
  6. Klik in het vak Waarden opmaken waar deze formule waar is . Selecteer vervolgens de cel die u wilt gebruiken voor de voorwaardelijke opmaak.
  7. Wijzig de waarde in stap 6 in =$A$1=1.
  8. Klik op Opmaak.
  9. Klik in het dialoogvenster Cellen opmaken op het tabblad Opvulling .
  10. Klik op de kleur 'rood' en klik vervolgens op OK.
  11. Klik in het dialoogvenster Nieuwe opmaakregel op OK.
  12. Typ 1 in cel A1 en druk op Enter.
  13. Controleer of de kleur van cel B1 is gewijzigd in rood.
  14. Sluit het Excel-werkblad.

Microsoft Office Excel 2003 en eerdere versies van Excel

  1. Start Excel en open een nieuw Excel-werkblad.
  2. Selecteer cel B1 in het Excel-werkblad.
  3. Klik in het menu Opmaak op Voorwaardelijke opmaak.
  4. Klik onder Voorwaarde 1 op Formule is in de lijst.
  5. Klik in het vak voor gegevensinvoer. Selecteer vervolgens de cel die u wilt gebruiken voor de voorwaardelijke opmaak.
  6. Wijzig de waarde in het gegevensinvoervak in =$A$1=1 en klik vervolgens op OK.
  7. Klik op Opmaak.
  8. Klik in het dialoogvenster Celeigenschappen op het tabblad Patronen .
  9. Selecteer de kleur 'rood' en klik op OK.
  10. Klik in het dialoogvenster Voorwaardelijke opmaak op OK.
  11. Typ 1 in cel A1 en druk op Enter.
  12. Controleer of de kleur van cel B1 is gewijzigd in rood.
  13. Sluit het Excel-werkblad.