https://www.herber.de/bbs/user/171342.png
in der beigefügten darstellung sind in der bedingten formatierung formeln hinterlegt.
kann das, als bedingte formatierung dargestellte, auch als vba umgesetzt werden? wenn ja, wie?
danke und glg gerlinde
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RNG1 As Range, RNG2 As Range, Z As Variant, Filling As String
Set RNG1 = Range("C6:C8")
Set RNG2 = Range("H6:AMA6")
If Not Intersect(Target, Union(RNG1, RNG2)) Is Nothing Then
For Each Z In RNG2
If Z = [C6] * 6 _
Then Filling = "Gr1"
If Z > [C6] * 6 _
Then Filling = "Gr2"
If Z > [C6] * 6 + [C7] * 6 _
Then Filling = "Gr3"
If Z > [C6] * 6 + [C7] * 6 + [C8] * 6 _
Then Filling = "Gr4"
'......usw
Select Case Filling
Case "Gr1"
Z.Interior.Color = 5296100
Case "Gr2"
Z.Interior.Color = 5296274
Case "Gr3"
Z.Interior.Color = 39423
Case "Gr4"
Z.Interior.Color = 16711935
Case "Or2"
With Z
.Interior.Color = 39423
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeRight).Weight = xlThin
End With
Case Else
'Nix
End Select
Next
End If
End Sub
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RNG As Range, Z As Variant, Filling As String
Set RNG = Range("H6:AMA6")
If Not Intersect(Target, RNG) Is Nothing Then
For Each Z In Target
If Z > [C7] * 6 _
Then Filling = "Gr1"
If Z > [C7] * 6 + [C6] * 6 _
Then Filling = "Gr2"
'......usw
If Z = [C6] * 6 _
Then Filling = "Gr1"
If Z > [C6] * 6 _
Then Filling = "Gr2"
If Z >= [C6] * 6 + [C10] * 10 _
Then Filling = "Or1"
'......usw
Select Case Filling
Case "Gr1"
Z.Interior.Color = 5296100
Case "Gr2"
Z.Interior.Color = 5296274
Case "Or1"
Z.Interior.Color = 39423
Case "Pi1"
Z.Interior.Color = 16711935
Case "Or2"
With Z
.Interior.Color = 39423
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeRight).Weight = xlThin
End With
Case Else
'Nix
End Select
Next
End If
End Sub