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

Forumthread: Bild in Zelle? Per Formel prüfen (xl365)

Bild in Zelle? Per Formel prüfen (xl365)
31.07.2024 15:34:23
{Boris}
Hallo zusammen,

ich muss (möglichst zuverlässig) per Formel prüfen, ob sich in einer Zelle ein Bild befindet (also "Bild in Zelle").
VBA ist in diesem Fall absolut ausgeschlossen.

Beispieldatei anbei: https://www.herber.de/bbs/user/171378.xlsx

Es ist so, dass die "Bildzelle" - sofern ein Bild dort richtig eingebettet ist - {WERT!} zurückgibt. Man beachte: in {geschweiften Klammern}. =ISTFEHLER(DieseZelle) ergibt demnach FALSCH.

Daher habe ich bislang wie folgt formuliert:

=WENN(ISTFEHLER(LÄNGE(B2))*NICHT(ISTFEHLER(B2));"Perfekt!";"Bitte Bild in Zelle einbetten.")

Meine Frage: Hab ich was übersehen bzw. wie würdet ihr das abfragen?

Danke vorab und viele Grüße

Boris
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bild in Zelle? Per Formel prüfen (xl365)
31.07.2024 16:06:31
Onur
Frage: Was GENAU willst du denn jetzt?
Du hast doch schon eine Formel - dachte ich.
AW: Bild in Zelle? Per Formel prüfen (xl365)
31.07.2024 16:24:25
schauan
Hallo Boris,

ich glaube, ohne VBA geht das so nicht.
Per VBA kannst Du prüfen, ob für die vorgesehene Zelle ein TopLeft irgendeines Bildes dazu passt.

Dafür wüsste ich keine Formellösung. Zudem kann es passieren, wenn das Bild doch minimal verrutscht ist, dass es gar nicht in der entsprechenden Zelle erscheint sondern irgendwo darüber und / oder auch versetzt. VBA würde das in dem Fall ohne weitere Prüfungen nicht korrekt zuordnen können.

Wenn Du weißt, in welche Zellen ein Bild gehört, reicht doch die einfache Fallunterscheidung. Also, Bild drin, Perfekt, ansonsten einfügen.
Der Anwender muss sich ggf. erst ein Bild besorgen um es in die Zelle einzufügen. (in der Hoffnung, dass die "Meldung" nicht stört. Könnte ja sein, das Bild kommt erst in ein paar Wochen oder Monaten)


Anzeige
AW: Bild in Zelle? Per Formel prüfen (xl365)
31.07.2024 17:08:17
Onur
Hallo Boris,

Da alle Bilder offensichtlich eine Beschreibung haben, reicht auch das:
=ISTFEHLER(B2&"")

Gruß
Onur
AW: Bild in Zelle? Per Formel prüfen (xl365)
31.07.2024 18:51:06
{Boris}
Hi Onur,

das hast Du aber nicht in der Beispieldatei getestet ;-) (siehe Beispiel 2, 6 und 7)

VG, Boris
AW: Bild in Zelle? Per Formel prüfen (xl365)
31.07.2024 19:48:00
Onur
Verstehe ich nicht? Was genau ist denn jetzt dein Wunschergebnis?
Ausser Bild 1 ist da doch nix wirklich eingebettet (Bild in Zelle)
Anzeige
AW: Bild in Zelle? Per Formel prüfen (xl365)
01.08.2024 11:41:55
{Boris}
Hi Onur,

Ausser Bild 1 ist da doch nix wirklich eingebettet (Bild in Zelle)

Richtig.

Ich möchte am Ende nur eine möglichst wasserdichte Formel haben, die prüft, ob eben in der Zelle ein eingebettetes Bild ist. Dafür habe ich beispielhaft mal 7 Szenarien gezeigt.
Meine bisherige Lösung kennst Du ja - und meine Frage war nur, ob ihr noch schlauerer Ansätze habt :-) bzw. ob meine bisherige Formel diesbezüglich noch Lücken hat, die ich übersehen habe.

Und VBA ist eben in diesem Fall KEINE Option.

VG, Boris
Anzeige
AW: Bild in Zelle? Per Formel prüfen (xl365)
01.08.2024 11:56:19
Onur
Nöö, deine Formel passt schon.
AW: Bild in Zelle? Per Formel prüfen (xl365)
31.07.2024 16:27:03
schauan
reicht ggf die bisherige Fallunterscheidung.
So ist es (in xl365) nicht...
31.07.2024 18:48:36
{Boris}
Hi André,

in 365 kann man Fotos direkt in Zellen einbinden - über die neue Funktion "Bild in Zelle". Da gibt es dann keine TopLeftCell-Eigenschaft. Man kann diese Bilder dann auch mit Verweisfunktionen wieder auslesen. Ein sehr hübsches neues Feature! Das siehst Du in der Beispieldate in Zelle B2 (sofern Du 365 hast).

VG, Boris
Anzeige
AW: So ist es (in xl365) nicht...
31.07.2024 19:35:58
schauan
Hallo Boris,

das ist schon klar. Allerdings, wenn Du das Bild "entbindest" :-) also wieder aus der Zelle nimmst, hat es auch wieder TopLeft... usw.

Ich habe mich mal für die Ergebnisse in Zeile 7 und 8 mit einem VBA-Ansatz beschäftigt. Das könnte dann übrigens auch eine Lösung für Deine VBA - Frage zum Theme von vor einiger Zeit werden. Bei FALSCH und WAHR ist eins drin, bei 2x WAHR ist eins da, was rein kann, und bei 2xFALSCH ist keins da. Das wäre z.B. auch, wie ich schon geschrieben hatte, wenn ein Bild mit seiner linken oberen Ecke statt in F2 minimal in F1 oder E1 wäre.

Die Frage für mich wäre, was Du bei den letzten 3 Zellen haben willst. Soll da keine Meldung erscheinen, weil da noch kein Bild da ist oder willst Du im betreffenden Bereich der Zeile 2 immer die Aufforderung, wenn keins enthalten ist.

Ich bin nur gerade ziemlich offline und mach da erst später weiter. Allerdings geht das eben erst mal in Richtung VBA und noch nicht in Richtung Formel, da will ich mal nix versprechen.

 ABCDEFGH
2   #WERT! #WERT!Irgendein weiterer Text 
3        
4        
5Check:Perfekt!Bitte Bild in Zelle einbetten.Bitte Bild in Zelle einbetten.Bitte Bild in Zelle einbetten.Bitte Bild in Zelle einbetten.Bitte Bild in Zelle einbetten.Bitte Bild in Zelle einbetten.
6        
7 FALSCHWAHRWAHRWAHRFALSCHFALSCHFALSCH
8 WAHRWAHRWAHRWAHRFALSCHFALSCHFALSCH
Anzeige
AW: So ist es (in xl365) nicht...
31.07.2024 19:38:56
schauan
... ach so, jetzt war ich wieder zu schnell am Drücker :-(
Ich gehe davon aus, dass Du ab F keine Meldung willst, weil da kein Bild zum einbinden ist. Sonst wäre die Frage wohl nicht erforderlich ;-)
AW: So ist es (in xl365) nicht...
01.08.2024 09:18:08
schauan
Moin Boris,

also, mit dem ausgeschlossenen VBA hätte ich hier 3 Fälle zur Unterscheidung

0) weit und breit kein Bild da - zumindest nicht mit der betreffenden Ecke in der zu prüfenden Zelle als Voraussetzung für das Einbetten :-) (F2:H2)
1) das Bild ist eingebettet (B2) - mit Deiner Formel als Grundlage, aber etwas abgewandelt. Ob das besser geht hab ich jetzt nicht geprüft :-(
2) das Bild ist nicht eingebettet (C2:H2)

Bei der Funktion kannst Du natürlich statt Integer auch String zurückgeben, wenn Du statt der Zahlen Texte vorgibst. Bei Variante 0 sollte das Ergebnis in der Zelle dann nix erscheinen.
Geht so allerdings nicht per Formel, umzusetzen. :-( Zumindest könnte damit wohl Deine offene Frage
https://www.herber.de/forum/archiv/1968to1972/1969826_Excel_365_VBA_Befindet_sich_ein_Bild_IN_einer_Zelle.html
abgeschlossen werden.

Function HasPic(Cell As Range) As Integer

Dim Pict As Object
Dim rngPict As Range
'Application.Volatile
For Each Pict In Application.Caller.Parent.Pictures
Set rngPict = Range(Pict.TopLeftCell, Pict.BottomRightCell)
If Not Intersect(rngPict, Cell) Is Nothing Then
HasPic = 2
End If
Next Pict
If IsError(Application.Evaluate("[LEN(" & Cell.Address & ")]")) - Not IsError(Cell) * Cell.HasRichDataType Then
HasPic = 1
End If
End Function
Anzeige
AW: So ist es (in xl365) nicht...
01.08.2024 11:55:04
{Boris}
Hi André,

vielen Dank für Deine Antworten!

In diesem Fall ist es aber so, dass das definitiv ohne VBA geschehen muss.

Ich muss auch gar nicht wissen, ob da z.B. ein Bild vorhanden, aber nicht eingebettet ist.

Die einzige notwendige Info ist: Ist in der Zelle ein Bild eingebettet - ja oder nein. Das Ergebnis WAHR/FALSCH reicht völlig aus.

Und dafür habe ich ja eine Formel - wollte aber von Euch wissen, ob ich da vielleicht irgendwas übersehen habe :-)

Kurz zum Hintergrund: Es handelt sich um ein Formular, das von vielen Leuten bearbeitet wird. Diese Formular darf - aus verschiedensten Gründen - keinen VBA-Code enthalten. Ich möchte den Anwendern aber eine Vollständigkeitsprüfung anzeigen - und zwar mit Formeln:

Einerseits das Befüllen bestimmter Zellen, aber am Ende MUSS auch in der dafür vorgesehenen Zelle ein Bild eingebettet werden, weil das für meine Weiterverarbeitung halt zwingend erforderlich ist. Erst wenn alles korrekt erledigt ist, sieht der Anwender einen grünen Haken, womit er weiß, dass er die Datei so speichern kann.
Und zu dem "grünen Haken" gehört halt auch, dass sich in der entsprechenden Zelle ein eingebettetes Bild befindet.

Am Ende sind das ca. 200 Dateien, die ich automatisch weiterverarbeiten muss. Und natürlich überprüfe ich die dann später mittels VBA, ob in den entsprechenden Zellen Bilder eingebettet wurden - aber ich möchte die Fehlerquote halt von vornherein so klein wie möglich halten.

Ich hoffe, damit wurde mein Anliegen etwas klarer ;-)

Viele Grüße

Boris

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige