Anzeige
Archiv - Navigation
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Shapes löschen

Shapes löschen
28.09.2007 10:49:30
Benni
Hallo Forum,
ich habe ein kleines Problem. Ich möchte, wenn meine Arbeitsmappe geschlossen wird, dass alle Shapes auf einem bestimmten Arbeitsblatt gelöscht werden bis auf die, die ich explizit ausnehme. Habe dazu folgenden Code geschrieben:

Sub Workbook_Open()
If ActiveSheet.Name = "First Step" Then
ActiveSheet.Unprotect
Dim shp As Shape
Dim shps As Shapes
Set shps = ActiveSheet.Shapes
For Each shp In shps
On Error Resume Next
Select Case shp.Name
Case "Ellipse 70"
Case "Ellipse 71"
Case "Ellipse 72"
Case "Ellipse 73"
Case "Bild 8"
Case "Rechteck 112"
Case "Rechteck 82"
Case "Rechteck 87"
Case "Rechteck 102"
Case "Linie 78"
Case "Bild 15"
Case "Bild 17"
Case "Bild 16"
Case "Rechteck 26"
Case "Autoform 322"
Case "Autoform 23"
Case "Autoform 22"
Case "Autoform 20"
Case "Autoform 19"
Case Else
shp.Delete
End Select
Next
End If
End Sub


Wenn ich das Workbook aber jetzt schließe, dann löscht er mir einfach alle Shapes, ohne Ausnahme. Was mache ich falsch?
Vielen Dank im Voraus,
Gruß, Benni.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Shapes löschen
28.09.2007 10:53:53
Hajo_Zi
Hallo Benni,
man könnte vermuten die haben andere Namen. Ich kann das aber nicht sehen.

AW: Shapes löschen
28.09.2007 11:09:00
haw
Hallo Benni,
in VBA heißt der Name nicht mehr "Autoform 25" sondern "AutoShape 25", den du aber in deiner Liste nicht angegeben hast.
Daher werden alle gelöscht.
Vergib selber entsprechende Namen, dann funktioniert es bestimmt.
Gruß
Heinz

Anzeige
AW: Shapes löschen
28.09.2007 11:13:34
Benni
hi haw,
auch wenn ich sie umbenenne in "AutoShape ..." klappt es nicht. :(
Kann es an was andrem liegen?
Gruß, Benni.

AW: Shapes löschen
28.09.2007 11:31:00
haw
Hallo Benni,
so funktionierts:

Sub rausdamit()
Dim shp As Shape
Dim shps As Shapes
Set shps = ActiveSheet.Shapes
For Each shp In ActiveSheet.Shapes
On Error Resume Next
Select Case shp.Name
Case Is = "Ellipse 70", "Ellipse 71", "Ellipse 72", "Ellipse 73"
Case Is = "Autoform 322"
Case Is = "Autoform 33", "Autoform 35", "AutoShape 37"
Case Else
shp.Delete
End Select
Next shp
End Sub


Du musst also im Makro Das Wort AutoShape verwenden, dann geht es. Hier wird also AutoForm 37 nicht gelöscht, alle anderen AutoFormen sehr wohl!
Die Zuweisung zu Case muss mit dem =-Zeichen erfolgen, das Is fügt der Editor selber hinzu.
Du kannst mehrere Bedingungen hintereinander schreiben.
Gruß
Heinz

Anzeige
AW: Shapes löschen
28.09.2007 12:16:00
Benni
Hallo Heinz,
super, funzt einwandfrei. Danke für die Hilfe!
Gruß, Benni.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige