ich erstelle gerade ein etwas aufwendigeres Excelblatt.
Mein Problem ist, dass ich die bedingte Hintergrundformatierung auf eine Diagonale übertragen möchte, was ich bisher nicht mit Arrays oder dem manuellen Auslesen und Übertragen der Farbwerte geschafft habe.
Eine selbst gewählte Hintergrundfarbe kann ich folgendermaßen auf die Diagonale übertragen:
Sub Farbe()
' Einfärben der Zellen
Dim x As Integer
Worksheets(A).Activate
Range("AP62:AP96").Copy
Range("AT62").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
'Bedingte Formatierung der einzelnen Abschnitte (hier nur beispielhaft einer)
Selection.FormatConditions.AddTop10
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1)
.TopBottom = xlTop10Top
.Rank = 3
.Percent = False
End With
'[und so weiter...]
'Farbformatierung übertragen
Dim i As Integer
Worksheets(A).Activate
For i = 1 To 35
Worksheets(A).Activate
a = Cells(61 + i, 46).Interior.Color
Worksheets(T).Activate
Cells(7 + i, 2 + i).Interior.Color = a
Next i
End Sub
Wenn ich aber versuche, die bedingte Formatierung "auszulesen" und die Schleife folgendermaßen abändere [...]:For i = 1 To 35
With Range(Cells(61 + i, 46)).FormatConditions(1)
iFormula = .Formula1
iColorA = .Font.ColorIndex
iColorB = Range(Cells(61 + i, 46)).Font.ColorIndex
End With
Worksheets(A).Activate
a = Cells(61 + i, 46).Interior.Color
Worksheets(T).Activate
Cells(7 + i, 2 + i).Interior.Color = a
Next i
[...] wird in der zweiten Code-Zeile der Schleife akut die Meldung "Die Methode range für das objekt _global ist fehlgeschlagen" angezeigt.Danke für jeden neuen Anhaltspunkt.
Beste Grüße,
Frohe_Ostern