![]() |
Bilder die mit PlacePictureInCell integriert wurden, finden - Druckversion +- Office-Fragen.de (https://office-fragen.de) +-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html) +--- Forum: Excel (https://office-fragen.de/forum-2.html) +--- Thema: Bilder die mit PlacePictureInCell integriert wurden, finden (/thread-29228.html) |
Bilder die mit PlacePictureInCell integriert wurden, finden - Caldolan - 21.02.2025 Hi Zusammen, ich hab eine Exceldatei bei der in Spalte A in machen zellen ein Bild eingefügt wurde mit Code: PlacePictureInCell die anderen Zellen sind leer. Es gibt auch keine Bilder die anders integriert wurden. Nun möchte ich eine Schleife Programmieren, der die Zellen in Spalte A durchgeht und wenn diese ein Bild enthält soll eine MSGBox mit einer meldung geben. Kennt da jemand eine Möglichkeit? RE: Bilder die mit PlacePictureInCell integriert wurden, finden - Flotter Feger - 21.02.2025 Hallo, ist mir ein wenig zu wenig Information, was du da gibst. Ich kann mir nicht vorstellen, das die MsgBox der Wahrheit letzter Schluss sein soll ... Wie die Schleife aufgebaut ist, hängt immer ein wenig davon ab, was genau passieren soll. RE: Bilder die mit PlacePictureInCell integriert wurden, finden - {Boris} - 21.02.2025 Hi, ist zwar nicht 100%, aber idR reicht die Prüfung auf HasRichDataType. Für C übergibst Du die Zelle, die überprüft werden soll. Code: Function BildInZelle(C As Range) VG, Boris RE: Bilder die mit PlacePictureInCell integriert wurden, finden - Caldolan - 24.02.2025 (21.02.2025, 16:13)Flotter Feger schrieb: Hallo, Hintergrund ist, dass ich eine Excelliste mit Artikelnummern habe in welche fehlenden Bilder integriert werden sollen. Da viele mit unterschiedlichen Kenntnisstand in dem Excel arbeiten, sind einige Bilder mit "PlacePictureInCell" und andere mit .AddPicture integriert. Meine Aufgabe ist es nun die fehlenden Bilder zu integrieren. D. h. ich muss wissen ob in einer Zelle bereits ein Bild vorhanden ist. Daher nein - die MSGBox ist nicht das Ende. Es ist nur der Platzhalter für weitere Auswertungen, die ich dann machen muss. RE: Bilder die mit PlacePictureInCell integriert wurden, finden - Caldolan - 24.02.2025 @ Boris Dank deines Hinweises hab ich nun dein anderen Post bei herber.de gefunden. Sehr interessant. C.HasRichDataType empfinde ich als "unbefriedigende" Lösung, da diese darauf beruht das wahrscheinlich keiner in einer Bilderliste Aktien, Geodaten oder andere Verknüpfungen integriert hat. Ich werde, sollte nicht noch eine andere Idee kommen, vermutlich es so lösen, das ich in einer Schleife die "Shapes"-Namen auslese und in einem Array (AltArray) speichern. Dann werde ich in einer zweiten Schleife auf alle Zellen das PlacePictureOverCells anwenden. Und dann in einer 3. Schleife schauen, welche "Shapes"-Namen neu dazugekommen sind, und speichere die in einem anderen Array (NeuArray) ab. Und nach meinen restlichen Bearbeitungen werde ich dann die Bilder die im "NeuArray" stehen mit einer 3. Schleife wieder mit PlacePictureInCell in die Zellen „zurück“integrieren. Grüße RE: Bilder die mit PlacePictureInCell integriert wurden, finden - {Boris} - 24.02.2025 Hi, bevor Du das machst, würde ich es erstmal mit HasRichDataType versuchen. Für mich hat das voll und ganz ausgereicht. RE: Bilder die mit PlacePictureInCell integriert wurden, finden - Caldolan - 26.02.2025 Oder ein Mix. Ich hab mal ein Beispielcode geschrieben der aus dem Blatt alle Bilder löschen soll. Ob Integriert mit InsertPictureInCell bzw. PlacePictureInCell oder eben nicht (AddPicture/Pictures.Insert) ist dabei egal: Code: Sub PiXremove() Darauf werde ich den rest dann aufbauen. Hab auch mal die Zeit gestoppt. Wenn man den HasRichDataType abfrägt wenn man ein Tabellenblat Scannt (wo die meisten Zellen keine Bilder enthalten) dann ist der Code etwas schneller als wenn man einfach auf alle Zellen nur das PlacePictureOverCells anwendet. RE: Bilder die mit PlacePictureInCell integriert wurden, finden - Caldolan - 26.02.2025 Noch etwas, falls jemand dasselbe Problem hat... Ich hab in einer Schleife Mehrere Bilder die schon in einem Excelfile sind mit ActiveSheet.Shapes(Selection.Name).PlacePictureInCell in die Zellen einbetten wollen. Der Code lief und machte alles richtig solang der Editor auf war. War der Editor geschlossen stürzte Excel ab. Die Lösung war es in eine .HasRichDataType Abfrage zu packen. Code: If Cells(zaEhler, bildSpalte).HasRichDataType Then Dann lief der Code auch ohne offenen Editor. RE: Bilder die mit PlacePictureInCell integriert wurden, finden - Caldolan - 27.02.2025 Um die Dokumentation abzuschließen: Ohne das Code: If Cells(Zeile, Spalte).HasRichDataType Then drumrum gebaut wird, führt bei eienem vorher Selektierten Bild ActiveSheet.Shapes(Selection.Name).PlacePictureInCell zu einem Absturz und Selection.PlacePictureInCell oder Selection.ShapeRange.PlacePictureInCell zu einem Laufzeitfehler 438. |