Hallo,
Du solltest in jedem Fall Uwes Tipp mit der Bedingten Formatierung beherzigen. In den allermeisten Fällen sparst du dir so die VBA-Codierung. Es gibt aber auch Fälle, wo die Bedingte Formatierung versagt. z.B. weil deine Daten so umfangreich sind, dass Excel ewig für die Berechnung braucht. Auch wird dann grafisch nicht immer alles angezeigt. Das passiert aber erst wenn du zigtausend Datenzeilen hast. In diesem Fall ist eine VBA-Lösung besser.
Ja das geht auch ohne Buttonklick. Schau dir mal das Worksheet_Change-Ereignis an. Das löst aus, sobald du eine Eingabe in eine beliebige Zelle machst. In welche Zelle du die Eingabe gemacht hast wird im Parameter Target übergeben. Um Zeit bei der Bearbeitung zu sparen, solltest du die Prüfung und Färbung nur für diese eine Target-Zelle machen.
Ungetestet könnte der Code etwa so aussehen. Dieser Code gehört in das Tabellenmodul, welches die Daten enthält.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 9 Then 'Eingabe in Spalte I
sngAbweichung = (Target.Value - Target.Offset(0, -2).Value) / Target.Offset(0, -2).Value * 100
If Abs(sngAbweichung) >= 10 Then Target.Font.Color = vbRed
ElseIf Target.Column = 7 Then 'Eingabe in Spalte G
sngAbweichung = (Target.Offset(0, 2).Value - Target.Value) / Target.Value * 100
If Abs(sngAbweichung) >= 10 Then Target.Offset(0, 2).Font.Color = vbRed
End If
End Sub
Gruß Mr. K.
|