Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Bilder in Bereich löschen

VBA: Bilder in Bereich löschen
20.08.2021 10:18:19
Fritz_W
Hallo VBA-Experten,
habe folgenden Code gefunden, mit dem ich im Tabellenblatt "Bilder" (Tabelle4) alle Bilder im Zellbereich H2:H26 löschen kann.
Ich würde jedoch gerne nur die Bilder in den Zellen des angegebenen Zellbereichs löschen, wenn in der Spalte G der jeweiligen Zeile ein "x" steht.
Beispiel: Ein "x" steht in den Zellen G5, G9 und G13. In diesem Fall sollten nur die Bilder in den Zellen H5, H9 und H13 gelöscht werden.
Für eure Unterstützung danke ich im Voraus.
mfg
Fritz
Hier mein bisheriger Code:

Sub BilderLoeschen()
Dim shp As Object
Dim sh As Worksheet
Dim rngBereich As Range
Set sh = Tabelle4   ' ggf. anpassen
Set rngBereich = sh.Range("H2:H26")  ' ggf. anpassen
For Each shp In sh.Shapes
Debug.Print shp.Name
If shp.Type = 13 Then
If Not Intersect(shp.TopLeftCell, rngBereich) Is Nothing Then shp.Delete
End If
Next
End Sub
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Bilder in Bereich löschen
20.08.2021 11:03:51
Nepumuk
Hallo Fritz,
teste mal:

Sub BilderLoeschen()
Dim shp As Shape
Dim sh As Worksheet
Dim rngBereich As Range
Set sh = Tabelle4   ' ggf. anpassen
Set rngBereich = sh.Range("H2:H26")  ' ggf. anpassen
For Each shp In sh.Shapes
Debug.Print shp.Name
If shp.Type = msoPicture Then
If Not Intersect(shp.TopLeftCell, rngBereich) Is Nothing Then
If sh.Cells(shp.TopLeftCell.Row, 7).Value  "x" Then shp.Delete
End If
End If
Next
End Sub
Gruß
Nepumuk
Anzeige
AW: VBA: Bilder in Bereich löschen
20.08.2021 11:35:21
Fritz_W
Hallo Nepumuk,
Ich habe den Code eben getestet, dabei wurden alle Bilder im relevanten Zellbereich gelöscht, in deren Zeile in der Spalte G kein 'x' stand.
Ich wollte, dass das umgekehrt funktioniert, wenn aber die Anpassung mit großem Aufwand verbunden ist, kann ich auch mit dem jetzigen Makro auskommen,
ich würde dann die Formeln in den Zellen G2:G26 entsprechend anpassen. Dir auf jeden Fall an dieser Stelle noch einmal ein großes Dankeschön.
mfg
Fritz
Anzeige
AW: VBA: Bilder in Bereich löschen
20.08.2021 11:37:34
UweD
Hallo
ungetestet.
aus

If sh.Cells(shp.TopLeftCell.Row, 7).Value  "x" Then shp.Delete
mache

If sh.Cells(shp.TopLeftCell.Row, 7).Value = "x" Then shp.Delete
LG UweD
AW: VBA: Bilder in Bereich löschen
20.08.2021 11:42:02
Fritz_W
Hallo Uwe,
vielen Dank, so funktioniert es.
Habe den Nepumuks Code eben doch etwas genauer angeschaut, was ich besser gleich getan habe und eben diese Umstellung bereits vorgenommen.
Ihr Beiden habt mir sehr geholfen.
mfg
Fritz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bilder im Excel-Bereich mit VBA löschen


Schritt-für-Schritt-Anleitung

Um Bilder in einem bestimmten Bereich in Excel zu löschen, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Rechtsklicke im Projektfenster auf VBAProject (deineArbeitsmappe).
    • Wähle Einfügen > Modul.
  3. Kopiere und füge den folgenden Code ein:

    Sub BilderLoeschen()
       Dim shp As Shape
       Dim sh As Worksheet
       Dim rngBereich As Range
    
       Set sh = Tabelle4  ' Passe den Namen des Arbeitsblattes an
       Set rngBereich = sh.Range("H2:H26")  ' Passe den Zellbereich an
    
       For Each shp In sh.Shapes
           If shp.Type = msoPicture Then
               If Not Intersect(shp.TopLeftCell, rngBereich) Is Nothing Then
                   If sh.Cells(shp.TopLeftCell.Row, 7).Value = "x" Then
                       shp.Delete
                   End If
               End If
           End If
       Next
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus:

    • Drücke ALT + F8, wähle BilderLoeschen und klicke auf Ausführen.

Dieser Code löscht alle Bilder in dem definierten Bereich H2:H26, wenn in der entsprechenden Zeile der Spalte G ein "x" steht.


Häufige Fehler und Lösungen

  • Problem: Alle Bilder werden gelöscht, auch wenn kein "x" in Spalte G steht.

    • Lösung: Stelle sicher, dass die Bedingung in der If-Anweisung korrekt ist: If sh.Cells(shp.TopLeftCell.Row, 7).Value = "x" Then.
  • Problem: Der Code funktioniert nicht.

    • Lösung: Überprüfe, ob das Arbeitsblatt korrekt benannt ist und dass der Zellbereich richtig definiert ist.

Alternative Methoden

Wenn du keine VBA verwenden möchtest, kannst du auch manuell vorgehen:

  1. Bilder auswählen und löschen:

    • Halte die STRG-Taste gedrückt und klicke auf die Bilder, die du löschen möchtest.
    • Drücke die Entf-Taste, um die ausgewählten Bilder zu entfernen.
  2. Alle Bilder auf einmal löschen:

    • Gehe zu Start > Suchen und Auswählen > Objekte auswählen.
    • Wähle die Bilder aus und drücke Entf.

Diese Methoden sind jedoch weniger flexibel als das Löschen durch VBA.


Praktische Beispiele

Beispiel 1: Um alle Bilder aus einem bestimmten Bereich zu entfernen, kannst du den Code anpassen:

Sub AlleBilderLoeschen()
    Dim shp As Shape
    Dim sh As Worksheet

    Set sh = Tabelle4  ' Arbeitsblatt anpassen

    For Each shp In sh.Shapes
        If shp.Type = msoPicture Then
            shp.Delete
        End If
    Next
End Sub

Beispiel 2: Um alle Grafiken in einem bestimmten Bereich zu entfernen, ändere den Zellbereich:

Set rngBereich = sh.Range("A1:B10")  ' Beispielbereich anpassen

Tipps für Profis

  • Nutze Fehlermeldungen: Füge On Error Resume Next am Anfang des Codes hinzu, um Fehler zu ignorieren.
  • Verwende Kommentare: Kommentiere deinen Code, um ihn besser verständlich zu machen.
  • Teste in einer Kopie der Datei: Vermeide Datenverlust, indem du deine Änderungen in einer Kopie der Excel-Datei testest.

FAQ: Häufige Fragen

1. Wie kann ich alle Bilder aus Excel entfernen?
Verwende den VBA-Code, um alle Bilder in einem bestimmten Bereich zu löschen, wie im Schritt 1 beschrieben.

2. Funktioniert dieser Code in allen Excel-Versionen?
Der Code sollte in den meisten modernen Excel-Versionen funktionieren, solange VBA unterstützt wird.

3. Was ist, wenn ich nur Grafiken löschen möchte?
Du kannst den Code anpassen, um nur Grafiken zu löschen, indem du die Type-Bedingung entsprechend änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige