Vanuit een Access VBA project genereer ik een excelsheet (xSht) waarvan sommige cellen een voorwaardelijke opmaak moeten hebben, afhankelijk van de waarde in dezelfde cel op worksheet ‘beoordeling’. Uitvoering van deze code leidt iedere keer tot een foutmelding (“ongeldig argument of procedure”) bij de waarde “formula1” (regel 5). Als ik cfExpression extra dubbele aanhalingstekens meegeef, geeft de code geen foutmelding, maar in de excelsheet ziet hij dan de voorwaardelijk opmaak als een string ipv een formule (wat je ook zou verwachten). Wat doe ik fout? Er zijn op internet genoeg voorbeelden te vinden, maar deze code werkt allemaal binnen Excel zelf (zou niet uit moeten maken) en is nooit afhankelijk van een andere sheet… handmatig typen in Excel levert het gewenste resultaat op (qua effect)
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| With xSht.Cells(y, x) cfExpression = "=Beoordeling!" & .Address & "<0" .Interior.Pattern = xlNone .FormatConditions.Add Type:=xlExpression, Formula1:=cfExpression FormatConditions(.FormatConditions.Count).SetFirstPriority With .FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 End With .FormatConditions(1).StopIfTrue = False End With |