in einem anderen Forum tauchte die Frage auf, wie man beim Löschen von Shapes in einem Sheet Fehlermeldungen/Codeabbruch vermeiden kann, falls ein namentlich benanntes Shape nicht vorhanden ist. Als gängige Lösung hätte ich schnell eine Schleife mit On Error Resume Next vorgeschlagen.
Besser ist diese Lösung: Man steuert die Schleife mit Select Case Shape.Name, baut einen Case mit der Reihe der möglichen Namen und schon werden die Shapes abgefragt, sind sie da, werden sie gelöscht, falls nicht, passiert auch nichts. Etwas überarbeitet, könnte das dann so ausshen:
Code: Alles auswählen
Sub Test()
Dim shp As Shape, aShapes, i As Integer
aShapes = Array("Tpz 1", "Tpz 2", "Tpz 3")
With ThisWorkbook.ActiveSheet
For i = 0 To UBound(aShapes)
For Each shp In .Shapes
Select Case shp.Name
Case aShapes(i)
shp.Delete
End Select
Next
Next i
End With
End Sub
Viel Spaß damit!