Voorwaardelijke opmaak in Excel VBA

In Excel hebben we allemaal voorwaardelijke opmaak gebruikt om dubbele waarden te markeren. Voornamelijk voorwaardelijke opmaak wordt gebruikt om dubbele waarden te krijgen. We kunnen dubbele waarden op vele manieren markeren. We kunnen de dubbele waarden markeren, bereikspecifieke waarden en ook de regel definiëren om de opmaakcriteria te voltooien. Hieronder staan ​​de variabele functies die beschikbaar zijn onder Voorwaardelijke opmaak.

Maar wat als we dit proces van het markeren van dubbele of andere waarden volgens onze eis kunnen automatiseren. De criteria die we kunnen definiëren met behulp van voorwaardelijke opmaak in Excel kunnen ook worden gedaan in VBA. Voor het toepassen van voorwaardelijke opmaak kunnen we elke cel, het beschikbare bereik in Excel-werkblad kiezen. Voorwaardelijke opmaak werkt alleen als de gedefinieerde criteria aan de vereiste voldoen. Anders zal het geen kleurverandering vertonen. Met behulp van voorwaardelijke opmaak in VBA kunnen we de kleur van elke cel of celinhoud wijzigen, de celkleur verwijderen of ook de kleur verwijderen. Naast het wijzigen van de kleur van de cel, kunnen we de celinhoud wijzigen in vetgedrukte of cursieve tekst. Als u klaar bent, kunnen we ook alle wijzigingen ongedaan maken.

Voorwaardelijke opmaak gebruiken in Excel VBA?

Hieronder staan ​​de verschillende voorbeelden om de functie Voorwaardelijke opmaak in Excel te gebruiken met behulp van VBA-code.

U kunt deze VBA voorwaardelijke opmaak Excel-sjabloon hier downloaden - VBA voorwaardelijke opmaak Excel-sjabloon

Voorwaardelijke opmaak VBA - Voorbeeld # 1

We hebben gegevens van enkele getallen en tekst zoals hieronder weergegeven in kolom A en B. Nu hebben we al de kleur gecategoriseerd die we moeten geven aan nummer en tekst in cel D2. We hebben de gele kleur geïdentificeerd voor nummer 1 en alfabet A en de groene kleur voor nummer 2 en alfabet B.

Hoewel VBA voorwaardelijke opmaak in de module kan worden geïmplementeerd, zal het schrijven van de code voor voorwaardelijke opmaak in Blad alleen werken in dat blad. Klik hiertoe in plaats van naar de optie Module te gaan op het tabblad Invoegen om een ​​module in te voegen.

Stap 1: Selecteer nu vanaf de eerste vervolgkeuzelijst Werkblad dat standaard Algemeen zal zijn en uit de vervolgkeuzelijst selecteert het automatisch de optie SelectionChange zoals hieronder getoond.

Stap 2: Zodra we dat doen, wordt de privé-subcategorie automatisch geactiveerd en zou de doelcel als bereik zijn.

Code:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) End Sub 

Stap 3: Schrijf nu de code en definieer eerst een variabele MyRange als bereik . Of u kunt een andere naam kiezen in plaats van MyRange volgens uw keuze.

Code:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range End Sub 

Stap 4: Gebruik Set en kies het gedefinieerde bereik zoals hieronder getoond.

Code:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = End Sub 

Stap 5: Selecteer daarna het werkblad waarop we de voorwaardelijke opmaak willen toepassen. Hier is ons blad Sheet1. We kunnen de reeks ook als 1 plaatsen in plaats van Sheet1 te schrijven. En selecteer vervolgens het bereik van die cellen die we moeten opmaken. Hier is ons bereik van cel A1 tot B8.

Code:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") End Sub 

Stap 6: Open nu een For Each-Next loop zoals hieronder getoond. En begin dat met het selecteren van de door de cel gedefinieerde variabele MyRange .

Code:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") voor elke cel in MyRange Next End Sub 

Stap 7: Open nu opnieuw een If-Else-lus.

Code:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Voor elke cel in MyRange If End If Next End Sub 

Dit is de regio waar we de kleuren zouden toewijzen aan alle cijfers en alfabetten die beschikbaar zijn in ons assortiment.

Stap 8: Schrijf de code, als de celwaarde 1 is dan -Interne kleur is de geselecteerde bereikcel van A1 tot B8 groen. En voor groen hebben we kleurcode toegewezen als 6.

Code:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Voor elke cel in MyRange If Cell.Value Like "1" en vervolgens Cell.Interior.ColorIndex = 6 Einde Als volgende einde Sub 

Stap 9: Nu voor celwaarde nummer 2. Als de celwaarde van een cel uit het geselecteerde bereik 2 is, is de binnenkleur van die cel Geel. En voor geel hebben we kleurcode toegewezen als 4.

Code:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Voor elke cel in MyRange If Cell.Value Like "1" en vervolgens Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Vervolgens Cell.Interior.ColorIndex = 4 Einde Als volgende Einde Sub 

Voor elke kleur hebben we verschillende kleurcodes toegewezen die beginnen bij 1 tot 56. Terwijl nummercode 1 wordt toegewezen aan de zwarte kleur en nummer 56 wordt toegewezen aan de donkergrijze kleur. Tussendoor hebben we verschillende andere kleurtinten die we kunnen vinden in Microsoft Documents.

Stap 10: Als een van de bovenstaande stappen

voorwaarde is ONWAAR, dan hebben we nog een Else als voorwaarde waarbij als de celwaarde A is, de binnenkleur van de cel Geel is. En voor geel opnieuw zullen we code toewijzen als 6.

Code:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Voor elke cel in MyRange If Cell.Value Like "1" en vervolgens Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Vervolgens Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Dan Cell.Interior.ColorIndex = 6 End If Next End Sub 

Stap 11: Doe hetzelfde voor celwaarde B, met kleurcode 4 als Groen.

Code:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Voor elke cel in MyRange If Cell.Value Like "1" en vervolgens Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Dan Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Dan Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B" Dan Cell.Interior.ColorIndex = 4 Einde Als volgende Einde Sub 

Stap 12: Als een van de voorwaarden niet WAAR is, zullen we voor Else liever de kleurcode als Geen selecteren .

Code:

 Private Sub Worksheet_SelectionChange (ByVal Target As Range) Dim MyRange As Range Set MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Voor elke cel in MyRange If Cell.Value Like "1" en vervolgens Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Dan Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Dan Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "B" Dan Cell.Interior.ColorIndex = 4 Else Cell.Ineterios.ColorIndex = xl Geen einde als volgende einde Sub 

Stap 13: Omdat de code groot is, drukt u op de functietoets F8 om elke stap van de code te compileren. Als er geen fout wordt gevonden, klikt u op de afspeelknop om de hele code in één keer uit te voeren. We zullen zien, volgens de voorwaardelijke opmaakregel die in VBA-code is gedefinieerd, de kleur van de cellen is gewijzigd in geselecteerde kleurcodes, zoals hieronder wordt weergegeven.

Stap 14: Deze opmaak is nu opgelost. Als we de kleurveranderingen willen zien, laten we voor test de waarde van een cel wijzigen, overweeg A1 van 1 naar 2. We zullen zien dat de kleur van cel A1 is gewijzigd in Groen.

Dit komt omdat we hebben verklaard dat in het bereik A1 tot B8 elke cel met nummers 1 en 2 en alfabetten A en B wordt opgemaakt als een gele en groene kleur, zoals weergegeven in cel D2 tot en met E3.

Voors en tegens

  • Het geeft direct uitvoer als we enorme gegevens hebben. Terwijl als we hetzelfde toepassen vanuit de Excel-menu-optie, het tijd kost om de opmaak voor big data-set te wissen.
  • We kunnen ook alle soorten functies uitvoeren die beschikbaar zijn in Excel voor voorwaardelijke opmaak in VBA.
  • Het wordt niet aanbevolen om VBA-voorwaardelijke opmaak toe te passen voor een kleine set gegevens.

Dingen om te onthouden

  • Er zijn veel andere functies, behalve het markeren van duplicaten en cellen met dezelfde waarde. We kunnen het formaat van de cel op elke manier wijzigen, zoals vetgedrukte, cursieve tekst, de lettertypekleur wijzigen, de achtergrondkleur wijzigen, de waarden tussen een specifiek bereik markeren.
  • Nadat de voorwaardelijke opmaak is toegepast, kunnen we de regel wijzigen. We kunnen de opmaakvoorwaarden ook verwijderen. Zodat onze gegevens weer normaal zijn.
  • We kunnen meer dan één voorwaarde toepassen in één macro.

Aanbevolen artikelen

Dit is een handleiding voor voorwaardelijke opmaak van VBA. Hier bespreken we hoe u de Excel VBA-functie voorwaardelijke opmaak kunt gebruiken, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. Kopieer en plak functie in VBA
  2. Substring Excel-functie
  3. VBA-subscript buiten bereik
  4. Excel ISNUMBER Formula
  5. Voorwaardelijke opmaak voor datums in Excel

Categorie: