anderer Ansatz
14.02.2008 10:19:00
Rudi
Hallo,
in den Code der Tabelle:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 Then
Dim myCBX As Object
If Target "" Then
Set myCBX = ActiveSheet.CheckBoxes.Add(1, 1, 1, 1)
With myCBX
.Top = Target.Top
.Left = Target.Offset(0, 3).Left
.Height = Target.RowHeight
.Width = Target.Offset(0, 3).Width
.OnAction = "prcCBX"
.Characters.Text = "offen"
.ShapeRange.Fill.Solid
.ShapeRange.Fill.ForeColor.SchemeColor = 10
End With
Else
For Each myCBX In ActiveSheet.Shapes
If myCBX.OLEFormat.Object.TopLeftCell.Address = Target.Offset(0, 3).Address Then myCBX. _
Delete
Next
End If
End If
End Sub
in ein Modul:
Sub prcCBX()
Dim myCBX As Object
Set myCBX = ActiveSheet.Shapes(Application.Caller)
With myCBX.OLEFormat.Object
Select Case .Value
Case 1
.Interior.Color = RGB(0, 255, 0)
.Caption = "erledigt"
Case -4146
.Interior.Color = RGB(255, 0, 0)
.Caption = "offen"
End Select
End With
End Sub
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe