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

Status
Niet open voor verdere reacties.

schuurma

Gebruiker
Lid geworden
15 feb 2002
Berichten
101
Als je voorwaardelijke opmaak gebruikt, kan je maar 3 opties maken. Nu wil ik het verfijnen naar 6 opties.
Nu heb ik gehoord dat je in VB ze onbeperkt kan uitbreiden.
Dus ik heb een makro gemaakt van 2x een voorwaardelijke opmaak met dus 6 kleuren. Deze heb ik in VB aan elkaar geplakt maar na de 3e stop hij ermee.
Weet iemand hoe je dat kan omzeilen.
 
Dit is wat in VB staat.
Ik heb dus een veld geselecteerd met diverse blokjes die een andere kleur moet krijgen als de waarde uit een andere lijst veranderd.




Code:
ActiveWindow.ScrollRow = 1
    Range("A1:M59").Select
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="0", Formula2:="19"
    Selection.FormatConditions(1).Font.ColorIndex = 4
    Selection.FormatConditions(1).Interior.ColorIndex = 4
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
       Formula1:="20", Formula2:="39"
    Selection.FormatConditions(2).Font.ColorIndex = 6
    Selection.FormatConditions(2).Interior.ColorIndex = 6
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="40", Formula2:="59"
    Selection.FormatConditions(3).Font.ColorIndex = 8
    Selection.FormatConditions(3).Interior.ColorIndex = 8
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="60", Formula2:="79"
    Selection.FormatConditions(4).Font.ColorIndex = 45
    Selection.FormatConditions(4).Interior.ColorIndex = 45
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="80", Formula2:="100"
    Selection.FormatConditions(5).Font.ColorIndex = 3
    Selection.FormatConditions(5).Interior.ColorIndex = 3
End Sub
 
Laatst bewerkt door een moderator:
Ik weet niet of dit gaat werken.... probeer deze code eens:

Code:
If Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="0", Formula2:="19" Then
Selection.FormatConditions(1).Font.ColorIndex = 4 
Selection.FormatConditions(1).Interior.ColorIndex = 4 

If Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="20", Formula2:="39" Then
Selection.FormatConditions(2).Font.ColorIndex = 6 
Selection.FormatConditions(2).Interior.ColorIndex = 6 

If Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="40", Formula2:="59" 
Selection.FormatConditions(3).Font.ColorIndex = 8 
Selection.FormatConditions(3).Interior.ColorIndex = 8 

If Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="60", Formula2:="79" 
Selection.FormatConditions(4).Font.ColorIndex = 45 
Selection.FormatConditions(4).Interior.ColorIndex = 45 

If Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:="80", Formula2:="100"  Then
Selection.FormatConditions(5).Font.ColorIndex = 3 
Selection.FormatConditions(5).Interior.ColorIndex = 3 
End If
End If
End If
End If
End If
 
Laatst bewerkt door een moderator:
Maak van de laatste 4 If >> ElseIf van en verwijder 4 >> End If

Lukt het nu?
 
VB vindt dit niet goed.
Hij wil een andere afsluiting hebben.
En verder is de eerste regel al gelijk rood getoond.
 
Ik heb inderdaad de volgende link gezien.http://personal-computer-tutor.com/abc2/v18/chad18.htm

Maar weet iemand hoe ik dit ook kan laten werken op tekst? Ik krijg het nu alleen voor elkaar op cijfers. Maar ik wil dus een agenda maken dat ik op bepaalde dagen "xx" kan plaatsen en dat hij dan automatisch rood word. (en zo nog een paar meer)

Wie kan mij hierbij helpen?

Alvast bedankt!
 
Stel dit is de code je nu hebt.

Code:
    For Each cel In Range("D1:D10").Cells
        If IsNumeric(cel.Value) And cel.Value <> "" Then
            If cel.Value < 0 Then
                cel.Font.ColorIndex = 3
                cel.Interior.ColorIndex = 0
            ElseIf cel.Value < 100 Then
                cel.Font.ColorIndex = 2
                cel.Interior.ColorIndex = 1
            ElseIf cel.Value < 500 Then
                cel.Font.ColorIndex = 1
                cel.Interior.ColorIndex = 4
            ElseIf cel.Value < 1000 Then
                cel.Font.ColorIndex = 4
                cel.Interior.ColorIndex = 1
            Else '>=1000
                cel.Font.ColorIndex = 1
                cel.Interior.ColorIndex = 3
            End If
        Else
            cel.Font.ColorIndex = 1
            cel.Interior.ColorIndex = 0
        End If
    Next

Maak er zo iets van;

Code:
   For Each cel In Range("D1:D10").Cells
        If IsNumeric(cel.Value) And cel.Value <> "" Then
            If cel.Value "xx" Then
                cel.Font.ColorIndex = 3
                cel.Interior.ColorIndex = 0
            ElseIf cel.Value "yy" Then
                cel.Font.ColorIndex = 2
                cel.Interior.ColorIndex = 1
            ElseIf cel.Value "o" Then
                cel.Font.ColorIndex = 1
                cel.Interior.ColorIndex = 4
            ElseIf cel.Value "x" Then
                cel.Font.ColorIndex = 4
                cel.Interior.ColorIndex = 1
            Else 
                cel.Font.ColorIndex = 1
                cel.Interior.ColorIndex = 3
            End If
        Else
            cel.Font.ColorIndex = 1
            cel.Interior.ColorIndex = 0
        End If
    Next

Verder uit te breiden naar wens uiteraard...

Overigens is net niet zo netjes om verder te gaan op zo'n oude vraag (uit 2004)
Beter is in dat geval zelf een nieuwe beginnen en naar deze vraag verwijzen.

Succes er mee.
 
Ten eerste mijn excuses voor het reageren in een oude topic. Ik kwam deze tegen op google en dacht dat mensen die het zelfde probleem hadden als mij hier mischien ook wat aan hebben.

Ten tweede bedankt voor je reactie withaar. Ik heb dit onderstaande ook op deze manier geprobeerd maar dan krijg ik: "Complieerfout: syntaxisfout".

Kan iemand mij helpen met wat ik verkeerd doe?

Alex
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan