Mithilfe eines Makros in VBA erstelle ich ein Rechteck an einer bestimmten Stelle, was wiederum dann beim nächsten Öffnen der Datei an einer anderen Stelle erstellt wird. Dass dann nicht nach einer gewissen Zeit das Blatt voll ist mit Rechtecken, würde ich gerne bei bei Start eine Range nach diesem Rechteck durchsuchen und löschen, bisher mache ich das so:
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Name = "HeuteRechteck" Then
shp.Delete
End If
Next
Hier bekomme ich allerdings "Objekt unterstützt diese Eigenschaft oder Methode nicht", was womöglich an der Benennung liegt. Benennen u.a. tue ich das Rechteck so:
ActiveSheet.Shapes.AddShape(msoShapeRectangle, ActiveCell.Left, ActiveCell.Top, 12, 795).Select
Selection.ShapeRange.Line.Visible = msoFalse
With Selection.ShapeRange.Fill.Shapes(1)
.Visible = msoTrue
.ForeColor.RGB = RGB(146, 208, 80)
.Transparency = 0.5
.Name = "HeuteRechteck"
Mach ich beim Benennen was falsch?
Habt ihr irgendwelche Ideen oder Ansätze?