bijkomende voorwaardelijke opmaak op woensdag

Status
Niet open voor verdere reacties.

StephaanK

Gebruiker
Lid geworden
19 jun 2015
Berichten
34
ik wil in mijn bestand de voorwaardelijk opmaakregel wijzigen als het gaat om een woensdag. Op de andere dagen gelden andere parameters, nl deze (groen bij 11 of meer, oranje tussen 7 en 10 inclusief en rood bij 6 of minder)
Code:
Set rngknipperlichtschema = wswerkblad.Range("d4:D96")
       
    With rngknipperlichtschema
        With .FormatConditions
                .Delete
                .AddIconSetCondition
        End With
        'alle dagen behalve woensdag
        With .FormatConditions(1)
            .SetFirstPriority
            .ReverseOrder = False
            .ShowIconOnly = False
            .IconSet = ActiveWorkbook.IconSets(xl3TrafficLights2)
              With .IconCriteria(1)
                .Type = xlConditionValueNumber
                .Value = 6
                .Operator = 8
              End With
            
              With .IconCriteria(2)
                .Type = xlConditionValueNumber
                .Value = 9
                .Operator = 7
              End With
            
              With .IconCriteria(3)
                .Type = xlConditionValueNumber
                .Value = 11
                .Operator = 7
              End With
        End With
     End With
op woensdag geldt (groen bij 11 of meer, oranje bij 6 en rood bij minder dan 6)

Code:
With .IconCriteria(1)
                         .Type = xlConditionValueNumber
                         .Value = 6
                         .Operator = 8
                     End With
                     'oranje
                     With .IconCriteria(2)
                         .Type = xlConditionValueNumber
                         .Value = 6
                         .Operator = 7
                     End With
                     'rood
                     With .IconCriteria(3)
                         .Type = xlConditionValueNumber
                         .Value = 7
                         .Operator = 7
                     End With
ik heb al geprobeerd met het in een Als-dan structuur te steken en met aparte modules en met een expliciete applies to maar het blijft bij de eerste regels. ik heb ook de voorwaardelijke opmaak die er eerst instond (zonder vba te gebruiken) verwijderd. in de bijlage staat die als voorbeeld.

alle suggesties zijn welkom
S.
 

Bijlagen

Oei, verkeerd bestand geselecteerd. ik voeg het correcte toe.
bijkomend: taken 1 tot en met 8 zorgen voor niet-beschikbaarheid voor de andere taken (vanaf 9) waardoor de teller naar beneden gaat per persoon die zo'n taak moet uitvoeren. ik heb dat nu voor 1 woensdag al ingevuld en zoals te zien is, gaat de teller bij 8 al op oranje ipv bij 6
 

Bijlagen

Laatst bewerkt:
ik heb het op onderstaande manier kunnen oplossen . de oplossing lag in de formatconditions-benoeming . in beide moet Formatconditions(1) staan, en in de volgorde van de criteria (1e criterium moet voor rood zijn, dan oranje en dan groen). omgekeerd kan misschien ook maar het moet voor beide delen identiek zijn.
Code:
With rngknipperlichtschema
    With .FormatConditions
         .Delete
         .AddIconSetCondition
    End With
    With .FormatConditions(1)
         .SetFirstPriority
         .ReverseOrder = False
         .ShowIconOnly = False
         .IconSet = ActiveWorkbook.IconSets(xl3TrafficLights2)
         .StopIfTrue = False
           'rood
            With .IconCriteria(1)
                  .Type = xlConditionValueNumber
                  .Value = 5
                  .Operator = xlLessEqual
             End With
            ' oranje
            With .IconCriteria(2)
                   .Type = xlConditionValueNumber
                   .Value = 6
                   .Operator = xlEqual
            End With
            'groen
             With .IconCriteria(3)
                  .Type = xlConditionValueNumber
                  .Value = 7
                  .Operator = xlGreaterEqual
End with
    End With
End With

    For lngknipperlicht = 4 To 96

        If wswerkblad.Range("c" & lngknipperlicht) = "woensdag" Then
        With wswerkblad.Range("d" & lngknipperlicht & ":d" & lngknipperlicht + 1)
        With .FormatConditions
             .Delete
             .AddIconSetCondition
            End With
                '.Cells(lngknipperlicht, 4).FormatConditions.Delete
              With .FormatConditions(1)
                .SetFirstPriority
                .ReverseOrder = False
                .ShowIconOnly = False
                .IconSet = ActiveWorkbook.IconSets(xl3TrafficLights2)
                .StopIfTrue = False
                    'rood
                    With .IconCriteria(1)
                          .Type = xlConditionValueNumber
                          .Value = 5
                          .Operator = xlLessEqual
                     End With
                    ' oranje
                    With .IconCriteria(2)
                           .Type = xlConditionValueNumber
                           .Value = 6
                           .Operator = xlEqual
                    End With
                    'groen
                     With .IconCriteria(3)
                          .Type = xlConditionValueNumber
                          .Value = 7
                          .Operator = xlGreaterEqual
                     End With
                         End With
            End With
        
        End If
    Next lngknipperlicht
 
foutje in de voorwaarden bij de oplossing (zijn nl dezelfde als voor de uitzonder op woensdag, wat niet klopt)
volgende voorwaarden zijn van toepassing op eerste deel van de oplossing
Code:
 With .IconCriteria(1)
                  .Type = xlConditionValueNumber
                  .Value = 9
                  .Operator = xlLessEqual
             End With
            ' oranje
            With .IconCriteria(2)
                   .Type = xlConditionValueNumber
                   .Value = 9
                   .Operator = xlGreaterEqual
            End With
            'groen
             With .IconCriteria(3)
                  .Type = xlConditionValueNumber
                  .Value = 11
                  .Operator = xlGreaterEqual
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan