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):
Voorwaardelijke opmaak R1C3 (doelpunten tegenstander):
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):
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?
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
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:=ActiveCell.Offset(0, 1)
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:=ActiveCell.Offset(0, 1)
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).StopIfTrue = False
End Sub
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
.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
.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
.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?