[Beginner] Voorwaardelijke opmaak

Status
Niet open voor verdere reacties.

motas142

Gebruiker
Lid geworden
30 dec 2011
Berichten
8
Beste,


Ik heb een Excelbestandje waarin ik gegevens bij hou van een zaalvoetbalploeg. Hierbij worden de uitslagen in het groen weergegeven bij winst, rood bij verlies, en oranje bij gelijkspel. In plaats van na elke match zelf de kleur te bepalen, leek het mij leuk om dit automatisch te laten gebeuren door in elke cel voorwaardelijke opmaken toe te voegen. Het probleem is dat dit ook tijdrovend is als dit manueel moet gebeuren (per cel zijn er 3 voorwaardelijke opmaken, per wedstrijd 6). Ter illustratie:

___________ C 1 ______|C2|C3
R1 | Wij - Tegenstander | 3 | 1
R2 | Wij - Tegenstander | 2 | 4

Opm: wij staan steeds als thuisploeg

Voorwaardelijke opmaak R1C2 (onze doelpunten):

  • >R1C3 --> Groen
  • <R1C3 --> Rood
  • =R1C3 --> Oranje

Voorwaardelijke opmaak R1C3 (doelpunten tegenstander):

  • >R1C2 --> Rood
  • <R1C2 --> Groen
  • =R1C2 --> Oranje

Dit was de aanleiding om VBA van dichterbij te bekijken. Voor alle duidelijkheid, ik ben een complete leek. Ook zou het nut van deze macro beperkt zijn, maar het leek me een leuke denkoefening om wat vertrouwt te raken met VBA. Door gebruik te maken van de recorder en zelf wat te prutsen in de code, kreeg ik een macro die voor onze doelpunten de juiste opmaak toepaste (onze doelpunten vergelijken met de rechtercel):

Sub Macro1()


Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:=ActiveCell.Offset(0, 1)
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Color = -1489280
.TintAndShade = 0
End With​


Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:=ActiveCell.Offset(0, 1)
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Color = 115009280
.TintAndShade = 0
End With​


Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:=ActiveCell.Offset(0, 1)
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Color = -0
.TintAndShade = 0
End With​

Selection.FormatConditions(1).StopIfTrue = False
End Sub

Ten eerste weet ik niet of dit een goede werkwijze is. Eerlijk, ik begrijp de helft van de formules niet in deze macro...
Ten tweede, wanneer ik de uitslag aanpas, wordt de opmaak niet automatisch aangepast. Bij manuele invoer van de voorwaardelijke opmaak zou dit wel gebeuren. Is het mogelijk om dit toe te voegen? Mijn macro voert blijkbaar een statische opmaak in ipv een dynamisch...

Kunnen jullie me uitleggen hoe ik dit probleem beter kon aanpakken? Of hoe de macro kan aangepast worden?
 
Maak eens een klein voorbeeld-bestandje hoe het er uit ziet.
Mischien kan het gewoon met 'interior.colorindex'.
 
Kan toch vrij simpel, zonder macros enzo? Kijk maar ns naar dit bestandje.
mvg, eeopd
 

Bijlagen

Zoals @eeopd al vermelde: geen Vba, maar gewoon VW opmaak.
Kijk eens of het zo voldoet.
 

Bijlagen

Dat is niet wat ik wil. Ik wil dit:
http://www.mediafire.com/file/2mv8vkmt1lb14nb/Voorbeeld2.xlsx

Als je de score verandert, verandert ook de opmaak. Als wij winnen, staat de hele uitslag in het groen. Als we verliezen staat de hele uitslag in het rood. Bij gelijkspel kleurt alles oranje.
Dit kan je inderdaad perfect bereiken door te sleutelen aan de voorwaardelijke opmaakregels (zoals ook gedaan is in Voorbeeld2.xlsx). Alleen is dit arbeidsintensief wanneer je dit voor 30 wedstrijden moet doen ipv voor drie wedstrijden. Per wedstrijd moet je immers 6 opmaakregels ingeven (drie per cel, nl. >, < en =). Daarom vroeg ik me af of het niet mogelijk was om hier een VBA tool voor te maken.
 
Een fractie van nog geen twee tellen.

Je selecteerd B3:C3 en doet de VW opmaak voor drie kleuren (drie formules erin gezet).
Pakt de vulgreep (+ {plusje} rechterbenedenhoek ), en sleept zover als nodig naar beneden.
Onder bij het vierkantje kies je voor optie: ALLEEN OPMAAK DOORVOEREN.
Klaar.
 

Bijlagen

Ok, dit werkte niet bij mij omdat ik de regels van voorwaardelijke opmaak op een andere manier had ingegeven... Bedankt :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan