Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

löschen vpn shapes

Forumthread: löschen vpn shapes

löschen vpn shapes
10.03.2008 08:36:00
helmut.em
hallo,
ich habe in einem blatt u. anderem ausgefüllte kleine kreise (=sie sind punkte in einem koordinatensystem und linien, die in abhängigkeit von der lage der punkte entstehen (für statistiker: es geht um die regressionsanalyse).
nach eingabe neuer messwerte sollen andere punkte und linien entstehen. um die alten zu löschen, habe ich
mich nach der vba-hilfe "Arbeiten mit Formen (Zeichnungsobjekten)" gerichtet:
For Each sh In ActiveSheet.Shapes
If sh.Type = msoOval Then sh.Select
If sh.Type = msoLine Then sh.Select
Selection.Delete
Next
während die linien gelöscht werden, gehen die kreise nicht weg.
was ist falsch?
Shapes.SelectAll kann ich nicht anwenden, weil dann auch meine commandbuttons und die die drehfelder verschwinden.
danke im voraus
helmut

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: löschen vpn shapes
10.03.2008 08:41:44
Kawensmann
Hallo,
die Selection wechselt halt bei jedem Aufruf. Werden die Linien selektiert, werden die Kreise deselektiert.
Lass es einfach weg:

For Each sh In ActiveSheet.Shapes
If sh.Type = msoOval Then sh.Delete
If sh.Type = msoLine Then sh.Delete
Next


Gruß
Kawensmann

Anzeige
AW: löschen vpn shapes
10.03.2008 08:45:00
Kawensmann
oder besser:

For Each sh In ActiveSheet.Shapes
If sh.Type = msoOval Or sh.Type = msoLine Then
sh.Delete
End If
Next


AW: löschen vpn shapes
10.03.2008 08:42:00
Renee
Hi Helmut,
Falsch ist, dass du .Select benzutzt. Zuerst ein Oval, dann ein Linie, womit das Oval nicht mehr selektiert ist. Machs lieber so:

For Each sh In ActiveSheet.Shapes
If sh.Type = msoOval Then sh.Delete
If sh.Type = msoLine Then sh.Delete
Next


GreetZ Renée

Anzeige
AW: löschen vpn shapes
10.03.2008 08:56:00
helmut.em
das direkte löschen ohne select hatte ich auch versucht, der erfolg ist leider derselbe.
ich geb euch mal an, wie ich die kreise erzeuge, vielleicht steckt da noch irgendeine ungereimtheit.
hier ein fixbeispiel mit 100 und 120, in wirklichkeit sind die koordinaten variabel:
ActiveSheet.Shapes.AddShape(msoShapeOval, 100, 120, 4#, 4#).Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 8
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
gruß helmut

Anzeige
AW: löschen vpn shapes
10.03.2008 09:03:10
Beverly
Hi Helmut,
bei mir (Excel2003) läuft der Code bei Verwendung von "msoOval" auf einen Fehler. Als Typ wird angezeigt msoAutoShape.


AW: löschen vpn shapes
10.03.2008 09:54:13
Renee
Hi Helmut,
Versuch's mal so (alles ausser Controls löschen):

Sub DeleteWithoutControls()
Dim sh As Object
For Each sh In ActiveSheet.Shapes
If Not (sh.Type = 12) Then sh.Delete
Next
End Sub


GreetZ Renée

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige