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

Status
Niet open voor verdere reacties.

jolyjump

Gebruiker
Lid geworden
29 mrt 2001
Berichten
129
Wie kan mij helpen ?
Voorwaardelijke opmaak is beperkt tot 3 mogelijkheden, en ik zou meer voorwaardes willen gebruiken, dus zoek ik een oplossing.

Is deze er, of blijf ik op mijn honger zitten ?

Kan ik eventueel voorwaardes plaatsen in een aparte tabel, en als dan de cel voldoet aan één van deze voorwaardes, dat hij dan de opmaak die in de cel ernaast staat, gebruikt ?
 
Als je meer dan 3 condities wilt gebruiken moet je uitwijken naar VBA oplossingen.

Bv zo iets.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

Bron: http://www.ozgrid.com/VBA/excel-conditional-formatting-limit.htm

Meer zoek resultaten
 
Hoe ga ik dan te werk indien de voorwaardes geen numerieke waardes zijn, maar tekstwaardes ?

De tekst die ingegeven wordt kan enkel maar bestaan uit:

leeg veld / V / C / A / BF / GF


Ik heb ook deze pagina eens bekeken, maar geraakte er ook niet wijs uit.
 
Dan wordt het dus zo iets;

Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer

'leeg veld / V / C / A / BF / GF

If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
Select Case Target
Case "V"
icolor = 6
Case "C"
icolor = 12
Case "A"
icolor = 7
Case "BF"
icolor = 53
Case "GF"
icolor = 15
Case Else
'Whatever
End Select

Target.Interior.ColorIndex = icolor
End If

End Sub

Kleuren kan je aanpassen door andere waarden bij icolor te gebruiken.
 
Hallo,

Toch nog 's even naar m'n website gaan (Je hebt de site zelf gevonden... zie uw eerste link)

Onderaan dit tekstbestand heb je opnieuw een link, naar een Excel bestand. Daar is voorwaardelijke opmaak toegepast met voorbeelden.

Luc
 
Bedankt voor de antwoorden/oplossingen.

Nu ben ik aan het kijken naar de methode om de tekstkleur ook te veranderen, en niet enkel de background color.


edit. font.colorindex juist gevonden.

Bedankt aan beide, ik wou eerst dit tewerkstelligen door niet gebruik te maken van VBA, doch denk dat het beter is om dit wel te doen. :thumb:
 
Laatst bewerkt:
Niets makelijker dan dat.

Ipv Target.Interior.ColorIndex = icolor

gebruik je Target.Font.colorindex = icolor

Wat meer info over te mogelijk kleuren en de code die daarbij horen kun je hier vinden.
 
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Not Intersect(Target, Range("B6:AF22")) Is Nothing Then

With Target

Select Case .Value
Case Is = "BF"
.Font.ColorIndex = 2
.Interior.ColorIndex = 3
Case Is = "GF"
.Font.ColorIndex = 2
.Interior.ColorIndex = 28
Case Else
.Offset(1, 0).Resize(2, 1).Interior.ColorIndex = xlNone
End Select

End With
End If

End Sub


Dit werkt goed, doch zit met één probleem.
Voorbeeld, ik vul ergens in de range B6:AF22 BF in, en hij maakt de cel mooi rood, met witte tekst in. Als ik nu die BF terug verwijder, blijft de rode achtergrond staan, en dat is niet de bedoeling.
 
Zo.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Not Intersect(Target, Range("B6:AF22")) Is Nothing Then

With Target

Select Case .Value
Case Is = "BF"
.Font.ColorIndex = 2
.Interior.ColorIndex = 3
Case Is = "GF"
.Font.ColorIndex = 2
.Interior.ColorIndex = 28
Case Is = "" 'cel leeg gemaakt
.Font.ColorIndex = 0
.Interior.ColorIndex = xlNone
Case Else
.Offset(1, 0).Resize(2, 1).Interior.ColorIndex = xlNone
End Select

End With
End If

End Sub
 
:o

Nu heb ik het volgende probleem: Indien ik meer dan een cel selecteer, en op DEL druk, crashed Visual basic

Fout 13 tijdens uitvoering:
Typen komen niet met elkaar overeen.
 

Bijlagen

Probeer dit eens :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim c As Range
For Each c In Target.Cells
With c
Select Case .Value
Case Is = "BF"
.Font.ColorIndex = 2
.Interior.ColorIndex = 3
Case Is = "GF"
.Font.ColorIndex = 2
.Interior.ColorIndex = 28
Case Is = "v"
.Interior.ColorIndex = 1
Case Is = "" 'cel leeg gemaakt
.Font.ColorIndex = 0
.Interior.ColorIndex = xlNone
Case Else
.Interior.ColorIndex = xlNone
End Select
End With
Next c
End Sub


Pierre
 
Heb de listing in ThisWorkbook gezet en nu werkt het wel (vraag me niet waarom, heb er geen verklaring voor)

Het voornaamste is dat het werkt niet waar?

Pierre
 
Laatst bewerkt:
Inderdaad, thats seems to do the trick.

En is zelfs beter zo, nu werkt het ook direct op elke sheet die ik heb :)


Dank aan Withaar, jpvs en Luc :thumb:


ps. Werkt dit ook als de voorwaardes via een formule wordt opgehaalt ?
Voorbeeld: In cel B5 staat: =VERT.ZOEKEN(B4;Blad1!$B3:$F368;5;ONWAAR) uitkomst is "M" , kan ik nu hier ook een kleur aan geven ?
 
Laatst bewerkt:
>ps. Werkt dit ook als de voorwaardes via een formule wordt opgehaalt ?
>Voorbeeld: In cel B5 staat: =VERT.ZOEKEN(B4;Blad1!$B3:$F368;5;ONWAAR) uitkomst is "M" , kan ik nu hier ook een kleur aan geven ?

Misschien met "Voorwaardelijke Opmaak" ?
Als in de cel een M staat een bepaalde kleur?


Welke inhoud staat er op Blad1?

Pierre
 
Geplaatst door jpvs
Welke inhoud staat er op Blad1?

=VERT.ZOEKEN(B4;Blad1!$B3:$F368;5;ONWAAR)

B4 = 2/01/2006

Blad1!$B3:$F368 is een lijst van datums + M / N / O / WE
Code:
[u]Kolom  B       C        D       E       F[/u]
2/01/2006      1        1       1       M


VERT.ZOEKEN(B4;Blad1!$B3:$F368;5;ONWAAR) geeft dus als uitkomst een M
 
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim c As Range
For Each c In ActiveSheet.[B5:AF5]
With c
Select Case .Value
Case Is = "M"
.Font.ColorIndex = 4
.Interior.ColorIndex = 38
Case Is = "WE"
.Font.ColorIndex = 1
.Interior.ColorIndex = 36
Case Is = "O"
.Font.ColorIndex = 36
.Interior.ColorIndex = 38
Case Is = "N"
.Font.ColorIndex = 42
.Interior.ColorIndex = 38
Case Is = "na"
.Font.ColorIndex = 1
.Interior.ColorIndex = 1
Case Else
.Font.ColorIndex = 1
.Interior.ColorIndex = 15
End Select
End With
Next c
End Sub


Kan ik het ook zo maken dat hij slechts voor bepaalde werkbladen werkt, en niet allemaal ?

Nu heb ik de code in elk werkblad apart geplaatst, anders begon hij ook de layout op de werkbladen te veranderen waarin dit niet nodig was.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan