• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Conditionele Opmaak

Status
Niet open voor verdere reacties.

madref

Gebruiker
Lid geworden
17 feb 2005
Berichten
220
Ik gebruik onderstaande code om kleurtjes te geven aan cellen
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim x As Range
'met volgende regel bepaal je de range voor de opmaak
  If Intersect(Target, [J3:J500]) Is Nothing Then Exit Sub
  For Each x In Target
    Select Case x
'Hier vorden de verschillende diensten een bepaalde kleur gegeven
'Blauw = 5
'Groen = 4
'Rood = 3
      Case "VALID": x.Interior.ColorIndex = 4
                 x.Font.ColorIndex = 1
      Case "EXPIRED": x.Interior.ColorIndex = 3
                 x.Font.ColorIndex = 1
      Case Else:    x.Interior.ColorIndex = xlNone
                    x.Font.ColorIndex = 1
    End Select
  Next
End Sub
Het probleem is dat ik kijk naar de J-kolom, maar dat de kleuren in de K-kolom moeten veranderen.
Met deze code red ik het niet.
Hoe moet ik dit oplossen?
 
Oftewel:
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim x As Range, kleur As Long
    [COLOR="#008000"]'met volgende regel bepaal je de range voor de opmaak[/COLOR]
    If Intersect(Target, [J3:J500]) Is Nothing Then Exit Sub
    For Each x In Target
        Select Case x
[COLOR="#008000"]            'Hier worden de verschillende diensten een bepaalde kleur gegeven
            'Blauw = 5
            'Groen = 4
            'Rood = 3[/COLOR]
             Case "VALID":   kleur = 4
             Case "EXPIRED": kleur = 3
             Case Else:      kleur = xlNone
        End Select
    
        With x.Offset(, 1)
            .Interior.ColorIndex = kleur
            .Font.ColorIndex = 1
        End With
    Next
End Sub
 
Laatst bewerkt:
Hmmm... is niet helemaal wat ik bedoel.
De J-kolom bevat een datum en in de K-kolom komt er dan VALID of EXPIRED te staan middels deze formule :
Code:
=ALS(J5="";"";ALS(J5>=VANDAAG();"VALID";"EXPIRED"))
Schermafbeelding 2016-02-29 om 17.59.46.png

Dus als de J-kolom veranderd, dan moet er gekeken worden naar de K-kolom en afhankelijk van die inhoud moet de kleur veranderen in rood of groen.
 
Zo staat dat niet in je eerste vraag en ook niet in je code. En dat is nu juist de reden dat we altijd zo om een voorbeeld document "zeuren". De code die ik plaatste in #3 kan je er natuurlijk wel simpel op aanpassen.
 
Laatst bewerkt:
Een vraag fatsoenlijk formuleren is zeer vaak lastiger dan een oplossing zoeken.
 
Ja ja ja .... dat weet ik ook wel. Maar dat hoef je niet in te wrijven. :(
 
Mee eens. Probeer deze eens:
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim x As Range, kleur As Long
    [COLOR="#008000"]'Met volgende regel bepaal je de range voor de opmaak[/COLOR]
    If Intersect(Target, [J3:J500]) Is Nothing Then Exit Sub
    For Each x In Target
       [COLOR="#FF0000"] Select Case x.Offset(, 1)[/COLOR]
[COLOR="#008000"]            'Hier worden de verschillende diensten een bepaalde kleur gegeven
            'Blauw = 5
            'Groen = 4
            'Rood = 3[/COLOR]
             Case "VALID":   kleur = 4
             Case "EXPIRED": kleur = 3
             Case Else:      kleur = xlNone
        End Select
    
        With x.Offset(, 1)
            .Interior.ColorIndex = kleur
            .Font.ColorIndex = 1
        End With
    Next
End Sub
 
Laatst bewerkt:
Ik heb de discussie maar even verwijderd aangezien dat de vraag wat makkelijker leesbaar maakt ;)

@madref
Een beetje respect voor de helpers mag wel hoor.
Maarliefst tweemaal komt er een antwoord binnen 15 minuten naar buiten.
Dat mag gewaardeerd worden ;)

@allen
Prettige dag verder :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan