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

VBA - Prüfen ob Zelle ein Bild / Grafik enthält

Forumthread: VBA - Prüfen ob Zelle ein Bild / Grafik enthält

VBA - Prüfen ob Zelle ein Bild / Grafik enthält
22.06.2014 16:27:20
Sören

Hallo Zusammen,
meine Internetrecherchen haben leider bisher nichts zu dem Thema ergeben.
Ich suche einen VBA-Code um zu prüfen, ob eine Zelle eine Grafik bzw. ein Bild enthält oder nicht. Ich will also folgendes Programmieren:
Wenn Range("xy") eine Grafik /ein Bild enthält, dann...
Zum Hintergrund:
Ich Werte eine Liste mit mehreren tausend Zeilen aus. In einigen Zellen sind kleine Bilder eingefügt, wenn ein bestimmtes Kriterium vorhanden ist.
Hat evtl. jemand eine Idee, wie man dies in VBA realisieren kann?
Vielen Dank im Voraus.

Anzeige

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

Betreff
Datum
Anwender
Anzeige
VBA - Prüfen ob Zelle ein Bild / Grafik enthält
22.06.2014 16:37:58
Hajo_Zi
benutze doch die Bedingung zum Einfügen des Bildes.

AW: VBA - Prüfen ob Zelle ein Bild / Grafik enthält
22.06.2014 16:47:02
Daniel
Hi
das funktioniert meines Wissens nach nur andersrum.
du kannst mit einer Schleife über die Bilder laufen und prüfen, ob die in der zu prüfenden Zelle liegen oder nicht.
hier mal ein Codebeispiel, das ganze ist als eigenständige Funktion angelegt:

Function ZelleEnthältBild(Zelle As Range) As Boolean
Dim obj As Object
For Each obj In Zelle.Worksheet.DrawingObjects
If Not Intersect(Zelle, Range(obj.TopLeftCell, obj.BottomRightCell)) Is Nothing Then
ZelleEnthältBild = True
Exit Function
End If
Next
End Function
Im Hauptmakro verwendest du dass dann so
If ZelleEnthältBild(Range("A1")) Then
ich habs jetzt so Programmiert, dass wen das Bild grösser ist als eine Zelle die Funktion WAHR wird, wenn das Bild die Zelle ganz oder teilweise überdeckt.
Gruß Daniel

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

Infobox / Tutorial

VBA zur Überprüfung von Bildern in Zellen


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob eine Zelle ein Bild oder eine Grafik enthält, kannst du eine benutzerdefinierte VBA-Funktion erstellen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle im Menü Einfügen die Option Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Function ZelleEnthältBild(Zelle As Range) As Boolean
       Dim obj As Object
       For Each obj In Zelle.Worksheet.DrawingObjects
           If Not Intersect(Zelle, Range(obj.TopLeftCell, obj.BottomRightCell)) Is Nothing Then
               ZelleEnthältBild = True
               Exit Function
           End If
       Next
       ZelleEnthältBild = False
    End Function
  4. Schließe den VBA-Editor und kehre zu deinem Excel-Dokument zurück.

  5. Du kannst die Funktion jetzt in einer Zelle verwenden, z.B. =ZelleEnthältBild(A1).


Häufige Fehler und Lösungen

  • Fehler: Die Funktion gibt immer FALSCH zurück.

    • Lösung: Stelle sicher, dass die Zelle, die du überprüfst, tatsächlich ein Bild enthält und dass das Bild die Zelle überdeckt.
  • Fehler: VBA gibt einen Kompilierungsfehler aus.

    • Lösung: Überprüfe, ob der Code korrekt kopiert wurde und keine Syntaxfehler enthält.

Alternative Methoden

Eine alternative Methode zur Überprüfung von Bildern in Zellen ist die Verwendung von Excel-Formeln in Kombination mit VBA. Du könntest eine Schleife erstellen, die alle Bilder auf dem Arbeitsblatt durchläuft und prüft, ob sie in der Zielzelle liegen. Diese Methode ist jedoch weniger effizient bei großen Datenmengen.


Praktische Beispiele

Wenn du die Funktion ZelleEnthältBild in einem größeren Kontext nutzen möchtest, kannst du sie in einem Hauptmakro verwenden. Hier ein einfaches Beispiel:

Sub PrüfeBilder()
    Dim Zelle As Range
    For Each Zelle In Range("A1:A10")
        If ZelleEnthältBild(Zelle) Then
            Zelle.Offset(0, 1).Value = "Bild vorhanden"
        Else
            Zelle.Offset(0, 1).Value = "Kein Bild"
        End If
    Next Zelle
End Sub

In diesem Beispiel wird in die Zelle neben dem überprüften Bereich geschrieben, ob ein Bild vorhanden ist oder nicht.


Tipps für Profis

  • Verwende die Funktion in Kombination mit bedingter Formatierung, um die Zellen visuell hervorzuheben, die Bilder enthalten.
  • Optimiere deinen Code, indem du nur die relevantesten Zellen überprüfst, anstatt das gesamte Arbeitsblatt zu scannen.
  • Halte den VBA-Code gut kommentiert, um die Wartbarkeit zu verbessern.

FAQ: Häufige Fragen

1. Kann ich diese Funktion auch in Excel Online verwenden? Leider wird VBA in Excel Online nicht unterstützt. Diese Funktion ist nur in Desktop-Versionen von Excel verfügbar.

2. Gibt es eine Möglichkeit, mehrere Zellen gleichzeitig zu prüfen? Ja, du kannst eine Schleife verwenden, um über eine gesamte Range zu iterieren, wie im praktischen Beispiel gezeigt.

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