Hier nochmal der ganze Code inkl. Farbwechsel... Man, ich verstehe überhaupt nicht wieso das nicht mehr funktioniert. Ein gesetzter Filter soll ja nicht entfernt werden, bloß, weil ich eine andere Form angeklickt habe. Das ist so ärgerlich, vor allem weil ich morgen hierzu eine Deadline habe. Ich hoffe, dass ihr mir helfen könnt. Vielen Dank!
Private myText As String
Sub RoundedRectangleSubcategory_Click()
'On click filter listed subcategories in "Risk Category Checklist" by the text in the rounded rectangles
Dim ws As Excel.Worksheet
Dim shp As Shape
Set ws = Worksheets("Risk Category Checklist")
Set shp = ActiveSheet.Shapes(Application.Caller)
ToggleShapeColor
Application.ScreenUpdating = False
With shp
If shp.Fill.ForeColor = RGB(255, 255, 153) Then
ws.Range("$A$5:$W$500").AutoFilter , Field:=7, Criteria1:=myText
Else
ws.Range("$A$5:$W$500").AutoFilter , Field:=7
End If
End With
End Sub
Private Sub ToggleShapeColor()
'Change shape color on click in sheet "Checklist Structure"
Dim shp As Shape
Set shp = ActiveSheet.Shapes(Application.Caller)
myText = shp.TextFrame2.TextRange.Characters.Text
With shp
If .Fill.ForeColor = RGB(255, 255, 255) Then
.Fill.ForeColor.RGB = RGB(255, 255, 153)
Else
.Fill.ForeColor.RGB = RGB(255, 255, 255)
End If
End With
End Sub
|