Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel 365 VBA: Befindet sich ein Bild IN einer Zelle?

Excel 365 VBA: Befindet sich ein Bild IN einer Zelle?
16.03.2024 14:48:14
{Boris}
Hallo zusammen,

ich möchte per VBA herausfinden, ob sich in einer bestimmten Zelle ein Bild befindet (das geht ja seit Excel 365 - Bild in Zelle einfügen).

ChatGPT hat aber mal wieder das Inder-Syndrom und erklärt mir wie selbstverständlich, dass ich die Eigenschaft HasPicture verwenden soll. Aber natürlich gibt es die nicht ;-)

Wie prüfe ich also, ob sich z.B. in Zelle A1 ein Bild befindet? Die Antwort True / False reicht mir völlig aus.

Danke vorab für Euren Input!

Viele Grüße

Boris

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel 365 VBA: Befindet sich ein Bild IN einer Zelle?
16.03.2024 15:19:25
ralf_b
der copilot im Egde meint dazu Folgendes.

Sub BildInZellePrüfen()

Dim ZielZelle As Range
Dim Bild As Picture
Dim BildBereich As Range
Dim BildGefunden As Boolean

' Setzen Sie die Zielzelle, in der Sie das Bild überprüfen möchten
Set ZielZelle = ActiveSheet.Range("A1")

' Durchsuchen Sie alle Bilder auf dem aktiven Blatt
For Each Bild In ActiveSheet.Pictures
' Erstellen Sie einen Bereich, der das Bild umfasst
Set BildBereich = Range(Bild.TopLeftCell, Bild.BottomRightCell)
' Überprüfen Sie, ob die Zielzelle Teil des Bildbereichs ist
If Not Intersect(BildBereich, ZielZelle) Is Nothing Then
BildGefunden = True
Exit For
End If
Next Bild

' Zeigen Sie eine Meldung basierend auf dem Ergebnis an
If BildGefunden Then
MsgBox "In der Zelle " & ZielZelle.Address & " wurde ein Bild gefunden."
Else
MsgBox "In der Zelle " & ZielZelle.Address & " wurde kein Bild gefunden."
End If
End Sub
Anzeige
AW: Excel 365 VBA: Befindet sich ein Bild IN einer Zelle?
17.03.2024 06:18:43
Onur
DAS war eine schwere Geburt.
Die PlacePictureInCell-Funktionen sind weder ausgereift noch irgendwo dokumentiert.
Nach hundert Versuchen, wobei meistens Excel komplett abgestürzt ist (das tut es sehr gerne bei diesen Funktionen), hat es geklappt.
Der Makrorecorder war zwar etwas nützlich (da man selbst über Microsoft nicht herauskriegt, welche Befehle man benutzen muss), aber man kann das Makro nicht wirklich ein zweites mal zum Laufen bringen, da bei jedem Durchlauf die Bilder wieder einen anderen Namen bekommen (Wie wenn man ein Blatt löscht und sofort wieder ein Blatt hinzufügt - der neue Name ist nicht der gelöschte Name).
Das Bild (die Bilder) werden aus der Zelle (den Zellen) rausgelöst und wieder eingebunden. Zuvor wurden alle Bilder des Bereiches in eine Dictionary aufgelistet.
Nach dem Auslösen der Bilder wird geschaut, ob und welche Bilder NICHT auf der Liste stehen. Diese müssen die ausgelösten Bilder sein.
Bitte nicht über die vermeintlich überflüssigen Select wundern, Nach hunderten von Versuchen musste ich festsstellen, dass ich an bestimmten Stellen entweder einen Stop oder ein Select einbauen musste, da sonst Excel abstürzt (!). Seltsam, dass der Code mit Haltepunkt oder Stop-Befehl läuft (nach Klick auf "WEITER"), aber ohne das abstürzt.

https://www.herber.de/bbs/user/168063.xlsm
Anzeige
Irre!
17.03.2024 17:23:26
{Boris}
Hi Onur,

...das ist ja mal wirklich ein schwere Geburt - auf diesen Ansatz wäre ich im Leben (und auch nicht danach) gekommen!

Großes Kino - danke Dir sehr!

Das war offensichtlich ja mal ne Aufgabe, die es so noch nicht gab ;-)

Viele Grüße

Boris
Dann hat Edge auch das Inder-Syndrom ;-)
16.03.2024 15:36:54
{Boris}
Hi Ralf,

danke Dir - aber es geht so leider auch nicht - siehe Beispieldatei...

https://www.herber.de/bbs/user/168052.xlsm

Noch ne Idee?

Viele Grüße

Boris
hab grad leider kein 365. owt
16.03.2024 15:48:09
ralf_b
AW: Dann hat Edge auch das Inder-Syndrom ;-)
16.03.2024 15:58:18
Luschi
Hallo {Boris},

Debug.Print ZielZelle.Formula liefert als Ergebnis "Bild"
Um welches Bild es sich handelt, konnte ich noch nicht ermitteln.

Gruß von Luschi
aus klein-Paris


Anzeige
Das passt doch!
16.03.2024 16:08:18
{Boris}
Hi Luschi,

...es kann so einfach sein :-)
Das Bild selbst brauche ich auch nicht - muss nur wissen, ob da eins drin ist.
Da ich vermute, dass englisches Excel nicht "Bild" sondern "Picture" liefert, werde ich so abfragen:

If Zelle.Formula = "Bild" Or Zelle.Formula = "Picture" Then ...

Liefert zwar auch True, wenn der "echte" Text "Bild" drin steht, aber das kann ich ausschließen.

Danke Dir!

VG, Boris
AW: Das passt doch!
16.03.2024 16:14:23
Luschi
Hallo {Boris},

ich würde so abfragen: If ZielZelle.Formula = "Bild" And ZielZelle.HasRichDataType Then

Gruß von Luschi
aus klein-Paris

Anzeige
Guter zusätzlicher Hinweis...
16.03.2024 16:27:20
{Boris}
Hi Luschi,

...mehr für das Archiv postet ich jetzt noch meine finale Function:

Function BildInZelle(C As Range)

'Prüft, ob sich in der Zelle ein Bild befindet
If C.Formula = "Bild" Or C.Formula = "Picture" And C.HasRichDataType Then
BildInZelle = True
End If
End Function


Danke!

VG, Boris
Kommando zurück...
16.03.2024 17:24:35
{Boris}
Hi Luschi,

...hab jetzt mal ein anderes Bild eingefügt - und da ergibt Zelle.Formula den Text "Ein Bild, das Beige, Im Haus, Stoff, Hellbraun enthält". (woher genau der Text kommt, weiß ich nicht). Habe es jetzt bei der Prüfung auf HasRichDataType belassen. Könnte natürlich auch noch mit InStr auf "*Bild*" oder "*Picture*" prüfen - weiß aber nicht, ob die Wörter immer vorkommen.

VG, Boris
Anzeige
AW: Kommando zurück...
16.03.2024 18:01:08
Onur
"...hab jetzt mal ein anderes Bild eingefügt - und da ergibt Zelle.Formula den Text "Ein Bild, das Beige, Im Haus, Stoff, Hellbraun enthält". (woher genau der Text kommt, weiß ich nicht)."
Vermutlich hast du ein Archivbild (von Excel geliefert) ausgewählt.
Jemand hat sich im Archiv die Mühe gemacht, eine Kurzbeschreibung jedes Bildes unter "Alternativtext" des Bildes zu hinterlegen.
Formula nimmt immer Alternativtext, wenn vorhanden, sonst "Bild" bzw "Picture".
Danke für die Erklärung...
16.03.2024 20:45:52
{Boris}
Hi Onur,

...das hilft mir, es zu verstehen. Leider kann ich aber nicht ausschließend, dass dieser Alternativtext manuell bearbeitet wird / wurde,
Hast Du evtl. eine Idee, wie ich das umgehen / sicher prüfen kann?

VG, Boris
Anzeige
Kein Problem - Frage ist noch offen...oT
16.03.2024 15:56:34
{Boris}
VG, Boris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige