Ich wollte ein Makro machen, das eine Bedingte Formatierung erstellt und dabei die Formel für die Bedingte Fomatierung mit einer Variable zuweist. Nun habe ich das Problem, dass immer die Gänsefüsschen in der Formel enthalten sind und ich nicht weiss, wie ich diese rausbringe.
Hier mein Makro:
ActiveCell.Range("A1:A4").Select
Dim n As String
Dim f As String
n = ActiveCell.Range("A1").Address
f = Left(n, InStrRev(n, "$")) + CStr(ActiveCell.Range("A1").Row - 7) + "=1"
Selection.FormatConditions.Add Type:=xlExpression, Formula1:=f
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 192
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Wenn ich nur über das Menü in die Bedingte Formatierung gehe, steht dort unter Formel so etwas:
="$A$1=1"
Im String sind aber diese Gänsefüsschen gar nicht enthalten. Ich habe versucht sie mit Left und Right zu entfernen aber sie sind nicht da.
Wenn ich nun die Formel so zuweise:
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="$A$1=1"
Dann steht im Menü der Bedingten Formatierung folgendes:
=$A$1=1
Also so wie es sein sollte.
Der einzige Unterschied ist also, das ich den String nicht direkt zuweise sondern das ich eine Variable zuweise, die den String enthält.
Ich kenne mich zwar mit VBA nicht gut aus aber ich habe gute Kentnisse in anderen Programmiersprachen und in denen macht es keinen Unterschied ob ich eine Stringvariable oder einen String zuweise.
Verhält sich das in VBA anders? Und wie kann ich nun verhindern, das die Gänsefüsschen eingefügt werden?
Vielen Dank für eure Hilfe!