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

Bild aus aktiver Zelle löschen

Forumthread: Bild aus aktiver Zelle löschen

Bild aus aktiver Zelle löschen
23.10.2023 12:41:58
nightcab
Mit dem Code kann ich eine Zeile löschen. Nun möchte ich aber auch ein Bild in der Zeile mitlöschen.



Sub ZeilenLöschen()

Dim strZelle As String
Dim arrSheets, varSheet

strZelle = Selection.Address

arrSheets = Array(ActiveSheet.Name)

For Each varSheet In arrSheets
Worksheets(varSheet).Range(strZelle).EntireRow.Delete
ActiveCell.Pictures.Delete
Next
End Sub

Mit ActiveCell.Pictures.Delete bekomme ich das bild nicht gelöscht.

Bitte um Hilfe!
Gruß nightcab
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild aus aktiver Zelle löschen
23.10.2023 13:37:22
daniel
HI

die Bilder sind zwar dem Blatt zugeordnet, aber meines Wissen nach nicht den Zellen.
Dh es gibt keinen Funktion, die dir alle Bilder eine Zelle zurückgibt.
Du musst daher für alle Bilder auf dem Blatt prüfen, ob diese von der Löschung betroffen sind oder nicht.
Dazu musst du linke obere und rechte untere Zelle von jedem Bild ermitteln (das geht) und damit überprüfen, ob das Bild im im zu löschenden Bereich liegt oder nicht.

schau dir mal das Makro an.
Das Makro löscht alle Bilder, die vollständig innerhalb des markierten Bereichs liegen.
Die Ansprache des Blattes habe ich etwas vereinfacht, wenn du nur auf dem sichtbaren Blatt löschen willst, braucht man die Schleife über die Blätter nicht.

Sub ZeilenUndBilderLöschen()

Dim x As Shape
Dim rngBild As Range
Dim rngLösch As Range

Set rngLösch = Selection.EntireRow

For Each x In ActiveSheet.Shapes
If x.TopLeftCell.Row >= Selection.Row Then
If x.BottomRightCell.Row (Selection.Row + Selection.Rows.Count) Then
x.Delete
End If
End If
Next

Selection.EntireRow.Delete

End Sub


Anzeige
AW: Bild aus aktiver Zelle löschen
25.10.2023 19:47:40
bigmayo
Moin,

Um Bilder zusammen mit den Zeilen zu löschen, könnte folgender Ansatz verwendet werden:

Sub ZeilenUndBilderLöschen()

Dim rngDelete As Range
Dim pic As Picture

' Bestimme die Zeilen, die gelöscht werden sollen
Set rngDelete = Selection.EntireRow

' Durchlaufe alle Bilder in der aktiven Arbeitsmappe
For Each pic In ActiveSheet.Pictures
' Überprüfe, ob das Bild sich in den zu löschenden Zeilen befindet
If Not Intersect(pic.TopLeftCell, rngDelete) Is Nothing Then
pic.Delete
End If
Next pic

' Lösche die Zeilen
rngDelete.Delete
End Sub


Dieser Code durchläuft alle Bilder in der aktiven Arbeitsmappe und überprüft, ob sich jedes Bild in den zu löschenden Zeilen (ausgewählt durch die Auswahl) befindet. Wenn ja, wird das Bild gelöscht, bevor die ausgewählten Zeilen gelöscht werden.

Stelle sicher, dass du die gewünschten Zeilen auswählst, bevor du das Makro ausführst. Beachte auch, dass dieses Makro nur auf das aktive Blatt in der aktiven Arbeitsmappe wirkt. Wenn du Zeilen auf mehreren Blättern löschen und die zugehörigen Bilder entfernen möchtest, müsstest du den Code anpassen, um alle gewünschten Blätter zu durchlaufen.

Gruß
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bilder aus aktiven Zellen löschen in Excel


Schritt-für-Schritt-Anleitung

Um Bilder aus aktiven Zellen zu löschen, kannst du ein VBA-Makro 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. Einfügen eines neuen Moduls: Klicke im Menü auf Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub ZeilenUndBilderLöschen()
       Dim rngDelete As Range
       Dim pic As Picture
    
       ' Bestimme die Zeilen, die gelöscht werden sollen
       Set rngDelete = Selection.EntireRow
    
       ' Durchlaufe alle Bilder in der aktiven Arbeitsmappe
       For Each pic In ActiveSheet.Pictures
           ' Überprüfe, ob das Bild sich in den zu löschenden Zeilen befindet
           If Not Intersect(pic.TopLeftCell, rngDelete) Is Nothing Then
               pic.Delete
           End If
       Next pic
    
       ' Lösche die Zeilen
       rngDelete.Delete
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu deinem Arbeitsblatt.

  5. Wähle die Zeilen aus, die du löschen möchtest.

  6. Führe das Makro aus: Drücke ALT + F8, wähle ZeilenUndBilderLöschen und klicke auf Ausführen.

Das Makro entfernt nun alle Bilder aus Excel, die sich in den ausgewählten Zeilen befinden, bevor es die Zeilen selbst löscht.


Häufige Fehler und Lösungen

  • Fehler: Bilder werden nicht gelöscht.
    Lösung: Stelle sicher, dass die Bilder wirklich in den ausgewählten Zeilen liegen. Das Makro löscht nur Bilder, die sich innerhalb der markierten Zeilen befinden.

  • Fehler: Das Makro läuft nicht.
    Lösung: Überprüfe, ob du das Makro korrekt eingefügt hast und ob du die richtigen Zeilen ausgewählt hast, bevor du das Makro ausführst.


Alternative Methoden

Wenn du alle Bilder aus Excel entfernen möchtest, kannst du auch die folgende Methode verwenden:

  1. Drücke CTRL + A, um alle Zellen auszuwählen.
  2. Gehe zu dem Tab Start und wähle Suchen & Auswählen > Objekte auswählen.
  3. Drücke die Entf-Taste, um alle Bilder auf einmal zu löschen.

Diese Methode ist nützlich, wenn du alle Bilder aus Excel entfernen möchtest, ohne spezifische Zeilen zu löschen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du das Makro anpassen kannst:

  • Um nur bestimmte Bilder zu löschen: Du kannst eine Bedingung hinzufügen, um nur Bilder mit einem bestimmten Namen oder einer bestimmten Größe zu löschen.
  • Um Bilder aus mehreren Blättern zu entfernen: Du kannst eine Schleife über alle Blätter implementieren, um die Bilder aus allen gewünschten Blättern zu löschen.

Tipps für Profis

  • Makros sichern: Stelle sicher, dass du eine Sicherungskopie deiner Daten hast, bevor du Makros ausführst, insbesondere wenn du alle Bilder löschen möchtest.
  • Verwendung von Shortcuts: Lerne die Tastenkombinationen für schnelle Zugriffe auf VBA und das Ausführen von Makros, um deine Effizienz zu steigern.

FAQ: Häufige Fragen

1. Wie kann ich alle Bilder aus Excel entfernen, ohne ein Makro zu verwenden?
Du kannst alle Bilder auswählen, indem du CTRL + A drückst und dann Suchen & Auswählen > Objekte auswählen wählst, gefolgt von Entf.

2. Funktioniert dieses Makro in allen Excel-Versionen?
Ja, das Makro sollte in Excel-Versionen ab Excel 2010 funktionieren. Überprüfe jedoch, ob du die richtige Berechtigung für die Ausführung von Makros hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige