05.07.2017, 11:29
(Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2017, 11:29 von M.Wichmann.)
Hallo,
ich möchte für ein Projekt gerne Autoformen als Ampel und Schaltfläche nutzen.
Ich habe das auch alles soweit hinbekommen, allerdings reagiert die Farbumschaltung nur, wenn ich in der entsprechenden Zelle die Zahl manuell eingebe. Was müßte ich ändern, das die Umschaltung auch auf eine Änderung der Zelle durch Berechnung funktioniert?
Hier der Code:
ich möchte für ein Projekt gerne Autoformen als Ampel und Schaltfläche nutzen.
Ich habe das auch alles soweit hinbekommen, allerdings reagiert die Farbumschaltung nur, wenn ich in der entsprechenden Zelle die Zahl manuell eingebe. Was müßte ich ändern, das die Umschaltung auch auf eine Änderung der Zelle durch Berechnung funktioniert?
Hier der Code:
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("A21") Then 'Wert steht in A1
ActiveSheet.Shapes("Rechteck 4").Select 'Rechteck 4 ist der Name der Freihandform
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = fctFarbe(Target.Value)
End With
Target.Select
End If
' Hier für eine weitere Form
If Target = Range("A22") Then 'Wert steht in A2
ActiveSheet.Shapes("Rechteck 5").Select 'Freeform 2 ist der Name der Freihandform
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = fctFarbe(Target.Value)
End With
Target.Select
End If
If Target = Range("A23") Then 'Wert steht in A2
ActiveSheet.Shapes("Rechteck 6").Select 'Freeform 2 ist der Name der Freihandform
With Selection
.ShapeRange.Fill.ForeColor.SchemeColor = fctFarbe(Target.Value)
End With
Target.Select
End If
End Sub
Private Function fctFarbe(dblWert As Double) As Byte
Select Case dblWert
Case Is >= 5 'Werte und Relationen anpassen
fctFarbe = 10 'Farbwerte entsprechend ändern
Case Is >= 4
fctFarbe = 11
Case Is >= 2
fctFarbe = 5
Case Else
fctFarbe = 9
End Select
End Function