Hi! Ich bin absoluter Beginner in VBA - entschuldigt die (teilweise verzweifelten) Ansätze ;-)
Jeweils orange hinterlegt (Zelle A1 und A4) sind Mainhazards, die jeweils zB. 2 untergeordnete Teilhazards besitzen (in gelb). Jeder Hazard besitzt 4 Indikatoren.
Ziel ist es, die orange Zelle eines Mainhazards anwählen zu können und das Makro markiert allfällige Indikatorenunterschiede bei den Teilhazards farblich. Wenn ich also A1 anwähle, sollen der Bereich B1:E1 mit den Bereichen F2:I2 und F3:I3 verglichen werden und allfällige Unterschiede in F2:I3 markiert werden.
Ich denke ich habe es geschafft, dass das Conditional Formatting nur bei den Teilhazards greift (nicht grösser als 10) und dass es merkt, wo das Conditional Formatting anzusetzen ist.
- Ich krieg es aber nicht hin, dass VBA diese beiden Bereiche (wie =NOT(B$1=F2) aber anhand ActiveCell.Offset) vergleicht.
- Ich krieg es auch nicht hin, dass der ActiveCell.Offset mit dem Loop arbeitet und die Zeilen je nach i angepasst wird (weil zB. ActiveCell.Offset(i,1) nicht funktioniert)
Das war mein letzter Versuch:
Sub ChangeMarker()
Dim Mainhazard As String
Mainhazard = ActiveCell.Value
Mainhazard = Right(ActiveCell.Value, 3)
Dim Subhazard As String
Subhazard = ActiveCell.Offset(i, 0).Value
Subhazard = Right(ActiveCell.Offset(i, 0).Value, 3)
'This should activate the Loop?
For i = 1 To Rows.Count
Next i
'Check if Subhazard is belonging to the Mainhazard
If Mainhazard - Subhazard < 10 Then
'Select the range where the conditional formatting should apply
Range(ActiveCell.Offset(1, 5), ActiveCell.Offset(1, 8)).Select
'This compares the hazard indicators of the mainhazard (ex. B1:E1) to the hazard indicators of the subhazard (ex.F2:I2)
'Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NOT(B$1=F2)"
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NOT(ActiveCell.Offset(0, 1).Range(ActiveCell, ActiveCell.Offset(0,3))=ActiveCell.Offset(1,5).Range(ActiveCell, ActiveCell.Offset(0,3))"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End If
End Sub
Sorry für die Umstände & Tausend Dank für allfällige Hilfe
Gruss!
|