• 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.

Voorwaardelijke Opmaak met VBA

Status
Niet open voor verdere reacties.

Humadgen

Gebruiker
Lid geworden
16 aug 2006
Berichten
251
Hoi

Ik vond op het Forum een stukje code (destijds geplaatst door WIGI) om meer dan de gebruikelijke 3 Voorwaardelijke opmaak mogelijkheden te gebruiken

Code:
Sub Inkleuren()
    Application.ScreenUpdating = False
    'Eventueel de bladbeveliging uitschakelen om kleuren toe te voegen: ActiveSheet.Unprotect Password:="?"

    Dim cell_in_loop As Range
    For Each cell_in_loop In Range("af6:af81")
        With cell_in_loop
            Select Case .Value
                Case "1": .Interior.ColorIndex = 38
                Case "2": .Interior.ColorIndex = 40
                Case "3": .Interior.ColorIndex = 36
                Case "4": .Interior.ColorIndex = 37
                Case "5": .Interior.ColorIndex = 6
                Case "6": .Interior.ColorIndex = 35
                Case "7": .Interior.ColorIndex = 39
                Case "8": .Interior.ColorIndex = 3
                Case "9": .Interior.ColorIndex = 34
            End Select
        End With
    Next
    Application.ScreenUpdating = True
End Sub
DIt werkt heel goed als ik iedere waarde wil definieren, maar ik wil ranges aangeven, maar wat moet ik veranderen bijvoorbeeld bij Case "9" als ik alle waardes tussen "9 en 15" kleur 34 wil geven.

"9:15" werkt niet dus er zal nog wel iets tussen moeten.
Thanks
Humadgen
 
Code:
Case 9 To 15: .Interior.ColorIndex = 34
 
Ik vond op het Forum een stukje code om meer dan de gebruikelijke 3 Voorwaardelijke opmaak mogelijkheden te gebruiken
In de betekenis die Excel eraan toekent, is de door jou geplaatste code geen voorwaardelijke opmaak hoor, maar gewone opmaak.
 
Hoi Zapatr

Dat snap ik niet.
Middels de VBA code definieer ik dan toch een aantal voorwaarden?
Als er een bepaalde waarde in de cel staat krijgt die cel een bepaalde kleur.
Dan is het toch een voorwaardelijke opmaak?

Wat begrijp ik er niet aan?

ALvast bedankt voor de uitleg
Humadgen
 
Dat snap ik niet. Middels de VBA code definieer ik dan toch een aantal voorwaarden? Als er een bepaalde waarde in de cel staat krijgt die cel een bepaalde kleur. Dan is het toch een voorwaardelijke opmaak?
Ik begrijp je verwarring.
De code is wel voorw. opmaak in de betekenis van de Nederlandse taal, maar NIET (zoals ik schreef) in de betekenis die Excel er aan geeft.
Als je je macro hebt uitgevoerd, kijk dan via het menu maar eens bij voorw. opmaak. Je zult zien dat daar geen opmaak staat ingesteld. Dat is wel het geval als je de voorw. opmaak handmatig instelt of m.b.v. een macro, die er zo uit zou kunnen zien:
Code:
Sub Voorw_Opmaak()
With Range("af6:af81")
' De macro kan korter, maar voor het goede begrip is dat niet gebeurd
.FormatConditions.Delete
'
.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="1"
.FormatConditions(1).Interior.ColorIndex = 38
'
.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="2"
.FormatConditions(2).Interior.ColorIndex = 40
'
.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="3"
.FormatConditions(3).Interior.ColorIndex = 36
'
' enz.in Excel 2007/2010, in versies 97-2003 slechts 3 voorw. mogelijk
'
End With
End Sub
Als je de laatste macro hebt uitgevoerd en je kijkt via het menu naar de voorw. opmaak, dan zul je zien dat er voor de betreffende cellen wel wat staat ingesteld. Het onderscheid is van belang als je de cellen met (al dan niet voorwaardelijke) opmaak wil uitlezen.
 
Graag gedaan.
Markeer je de vraag nog even als "Opgelost" a.u.b. ?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan