Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Bild löschen

Betrifft: VBA Bild löschen von: Shayev
Geschrieben am: 28.07.2014 09:14:04

Hallo zusammen,
ich habe in einer Tabelle ein Bild eingefügt, dieses möchte ich per VBA löschen, das Bild erstreckt sich von A102:M145, mein Code schaut wie folgt aus:

Sub deletespasta()
Dim shaShape As Shape
  For Each shaShape In ActiveSheet.Shapes
      If shaShape.TopLeftCell.Address = "A102" Then
         shaShape.Delete
         Exit For
      End If
      Next shaShape
End Sub

Funktioniert aber leider nicht! Hat jemand einen Tip? Danke im Voraus!

Gruß Shayev

  

Betrifft: AW: VBA Bild löschen von: Nepumuk
Geschrieben am: 28.07.2014 09:21:31

Hallo,

so:

"$A$102"

Wobei die obere linke Ecke des Bildes in A102 liegen muss. Und das nicht nur ungefähr sondern genau.

Gruß
Nepumuk


  

Betrifft: AW: VBA Bild löschen von: Shayev
Geschrieben am: 28.07.2014 09:34:37

Hallo Nepumuk,

danke für den Tip, leider funktioniert es trotzdem nicht, ich bekomme folgende Fehlermeldung:

Der angegebene Wert ist außerhalb des gültigen Bereichs.

Und ja die linke obere Ecke liegt genau in A102, das Bild habe ich auch mit VBA eingefügt!


  

Betrifft: AW: VBA Bild löschen von: Nepumuk
Geschrieben am: 28.07.2014 09:38:03

Hallo,

in der Zeile in der du die Adresse abfragst? Frag mal vor dieser Zeile vorsichtshalber die Type-Eigenschaft des Shapes ab ob es überhaupt ein Bild ist.

Gruß
Nepumuk


  

Betrifft: AW: VBA Bild löschen von: Shayev
Geschrieben am: 28.07.2014 09:58:29

Hallo Nepmuk,

wie fragt man sowas ab? Danke

Gruß Shayev


  

Betrifft: AW: VBA Bild löschen von: Nepumuk
Geschrieben am: 28.07.2014 10:03:49

Hallo,

einfach so:

If shaShape.Type = msoPicture Then

Gruß
Nepumuk


  

Betrifft: AW: VBA Bild löschen von: Shayev
Geschrieben am: 28.07.2014 10:25:21

Ich kann dir nicht ganz folgen, wo soll ich es im Code einbauen?


  

Betrifft: AW: VBA Bild löschen von: Nepumuk
Geschrieben am: 28.07.2014 10:30:46

Hallo,

na vor der Address-Abfrage.

Gruß
Nepumuk


  

Betrifft: AW: VBA Bild löschen von: Shayev
Geschrieben am: 28.07.2014 10:58:18

Ich habe das jetzt mal so gemacht:

Sub deletespasta()
Dim shaShape As Shape
Dim rng As Range

Set rng = ActiveSheet.Range("A102:M145")

 For Each shaShape In rng
      If shaShape.Type = msoPicture Then
         shaShape.Delete
         Exit For
      End If
      Next shaShape
      
End Sub

Ich bekomme folgende Fehlermeldung: Typen unverträglich!


  

Betrifft: AW: VBA Bild löschen von: Nepumuk
Geschrieben am: 28.07.2014 11:02:47

Hallo,

klar, ein Shape ist eine Eigenschaft einer Tabelle und nicht eines Ranges.

Versuch's mal so:

Public Sub Test()
    Dim objShape As Shape
    For Each objShape In ActiveSheet.Shapes
        With objShape
            If .Type = msoPicture Then
                If .TopLeftCell.Address = "$A$102" Then
                    .Delete
                    Exit For
                End If
            End If
        End With
    Next
End Sub

Gruß
Nepumuk


  

Betrifft: AW: VBA Bild löschen von: Shayev
Geschrieben am: 28.07.2014 11:21:54

Super vielen dank,

jetzt habe ich ein folgendes Problem, dieser Code funktioniert nur wenn ich ein Bild eingefügt habe?? Wenn ich aber zwei Bilder in der Tabelle einfügt habe, dann wird das Bild in A102 nicht gelöscht und ich bekomme folgende Fehlermeldung: Der angegebene Bereich ist außerhalb des gültigen Bereichs!

Das zweite Bild füge ich ich in S102 ein, dass möchte ich auch bei Bedarf löschen!
Im Endeffekt würde ich gerne zwei Schaltflächen haben, immer für das jeweilige Bild, welches gelöscht werden soll!


  

Betrifft: AW: VBA Bild löschen von: Nepumuk
Geschrieben am: 28.07.2014 11:27:40

Hallo,

wenn ich ein Bild in der Tabelle habe dessen linke obere Ecke in Zelle A102 liegt, wird das Bild gelöscht, gibt es in A102 kein Bild dann läuft der Code durch ohne eine Aktion auszuführen. Eine Fehlermeldung erhalte ich nicht, bzw. ist diese Fehlermeldung mit meinem Code gar nicht möglich.

Gruß
Nepumuk


  

Betrifft: AW: VBA Bild löschen von: Shayev
Geschrieben am: 28.07.2014 11:46:37

Sorry, war mein Fehler, ich habe den Blattschutz drin gehabt!! Das hatte ich vergessen, danke für die Geduld und den Tip!

Gruß Shayev


 

Beiträge aus den Excel-Beispielen zum Thema "VBA Bild löschen"