Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bild "In Zelle platzieren"

Forumthread: Bild "In Zelle platzieren"

Bild "In Zelle platzieren"
25.04.2024 09:31:31
Marco1981
Mal eher eine allgemeine Frage zu einer neuen Excel-Funktion:
seit dem letzten Update ist mir aufgefallen, dass ich beim Bilder einfügen jetzt 2 Optionen habe:
Entweder "Über Zellen einfügen", was im Grunde die selbe Funktion ist, die man vorher hatte, Bilder werden als Objekte eingefügt, haben Namen und können per VBA ganz normal angeprochen werden.
Es gibt aber jetzt auch noch die Option "In Zelle platzieren", welche das Bild exakt in die gewählte Zelle einpasst.
Und dazu jetzt meine Frage, zu der ich durch eigene Recherche noch keine Antwort gefunden habe (wahrscheinlich ist die Funktion noch zu neu):
kann ich dieses in die Zelle platzierte Bild irgendwie per VBA ansprechen? Ich würde es zB gerne nach Wunsch ein- und ausblenden, wie über die Zelllen platzierte Bilder auch, allerdings habe ich noch keine Möglichkeit gefunden, diese Bilder auch nur anzuklicken oder den Namen herauszufinden?
Nur um sicherzugehen, dass alle verstehen, wovon ich spreche:
im Menü unter "Einfügen" -> "Bilder" habe ich jetzt zwei Optionen zur Auswahl:
"In Zelle platzieren" und "Über Zellen einfügen"
wobei ich "in Zelle platzierte" Bilder gerne per VBA ansprechen würde (zB ein- und ausblenden)
Danke schonmal!
Anzeige

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild "In Zelle platzieren"
25.04.2024 09:37:57
schauan
Hallöchen,

also, man bekommt da über Makro aufzeichen schon mal einen Ansatz:

    Range("S11").Select

Selection.PlacePictureOverCells
ActiveSheet.Shapes.Range(Array("Picture 3")).Select
ActiveSheet.Shapes.Range(Array("Picture 3")).Select
ActiveSheet.Shapes("Picture 3").PlacePictureInCell
Anzeige
AW: Bild "In Zelle platzieren"
25.04.2024 13:13:01
Uduuh
Hallo,
imho kannst du das nicht direkt ansprechen.
Teste mal:
Sub PicAn()

Call PicAnAus(Range("A1"), True)
End Sub

Sub PicAus()
Call PicAnAus(Range("A1"), False)
End Sub

Sub PicAnAus(r As Range, bolVisible As Boolean)
With r
.PlacePictureOverCells
With .Parent
With .Shapes(.Shapes.Count)
.Visible = bolVisible
If .Visible Then .Select
.PlacePictureInCell
End With
End With
End With
End Sub

Gruß aus'm Pott
Udo
Anzeige
AW: Bild "In Zelle platzieren"
25.04.2024 10:09:23
Marco1981
Danke für den Tip, aber bei "Selection.PlacePictureOverCells" kommt immer Laufzeitfehler 1004: und er sagt mir, dass der Befehl nicht für ein geschütztes Blatt verwendet werden kann - das Blatt ist definitiv nicht geschützt ...
AW: Bild "In Zelle platzieren"
25.04.2024 10:34:45
{Boris}
Hi,

da muss bei Dir irgendein Schutz aktiv sein, denn das funktioniert so.

VG, Boris
Anzeige
AW: Bild "In Zelle platzieren"
25.04.2024 10:43:01
Marco1981
ich habe eine Beispieldatei hochgeladen:
https://www.herber.de/bbs/user/169013.xlsm
die Bilder in den Zellen E5 und S11 wurden mit "In Zelle platzieren" eingefügt, das größere Bild in der Mitte "über der Zelle"
Also ich hab das Symbol...
25.04.2024 10:49:59
{Boris}
Hi,

Userbild

VG, Boris
Anzeige
AW: Also ich hab das Symbol...
25.04.2024 10:52:16
Marco1981
interessant! Ich habe dieses Symbol nicht - eventuell irgendeine Einstellung, die bei mir nicht aktiviert ist ...
AW: Also ich hab das Symbol...
25.04.2024 10:57:46
{Boris}
Hi,

aber beim Rechtsklick solltest Du doch zumindest das Kontextmenü "Bild in Zelle" haben?!
Ich nutze xl365 in der Insider Beta Version - vielleicht liegt es daran.

VG, Boris
Anzeige
AW: Also ich hab das Symbol...
25.04.2024 11:06:13
Marco1981
nein, ich habe weder das Symbol, noch das entsprechende Kontextmenü:
Userbild
Ich habe 365 Enterprise, sollte also eigentlich am laufenden Stand sein ...
scheint mir eher ein Bug zu sein mittlerweile ehrlich gesagt - vielleicht geht's ja nach dem nächsten Update ...
Anzeige
Das ist in der Tat merkwürdig...
25.04.2024 11:10:11
{Boris}
Hi,

...eine echte Erklärung habe ich dafür nicht. Das nächste Update wird es hoffentlich richten ;-)

VG, Boris
AW: Das ist in der Tat merkwürdig...
25.04.2024 11:11:18
Marco1981
ja, hoffen wir's ;)
danke jedenfalls für deine Mühe! :) zumindest weiß ich jetzt wie es funktionieren sollte ...
AW: Das ist in der Tat merkwürdig...
25.04.2024 12:02:56
schauan
Hallöchen,
1)
also, ich habe das "normale" 365 im aktuellen Updatestand und es reicht hier, die Zelle anzuklicken, damit das Expand-Symbol erscheint.
2)
Dein code weicht etwas von meinem ab. So geht es z.B.

    Range("E5").Select

Selection.PlacePictureOverCells
ActiveSheet.Shapes.Range(Array("Picture 4")).Select
ActiveSheet.Shapes("Picture 4").PlacePictureInCell


Zumindest ein mal.

Es gibt da aber ein anderes Problem. Bei jedem expandieren erhält die Grafik einen anderen Namen - der Index wird hochgezählt oder aus GugelHupf wird Grafik xx :-(

Da die Grafik nach dem Erweitern per VBA nicht aktiv/selektiert ist - im Gegensatz zur manuellen Aktion, kann man sie unmittelbar keinem Objekt zuweisen und damit weiter arbeiten. Man könnte aber ggf. per Schleife über alle Bilder des Blattes schauen, welches die Zelle als TopLeftCell hat...
Anzeige
AW: Das ist in der Tat merkwürdig...
25.04.2024 12:04:42
{Boris}
Hi André,

Bei jedem expandieren erhält die Grafik einen anderen Namen - der Index wird hochgezählt oder aus GugelHupf wird Grafik xx :-(

Ja - ist mir auch aufgefallen. Doofes Verhalten ;-)

VG, Boris
wenn man das Bild expandiert, ....
25.04.2024 15:04:23
Uduuh
Hallo,
... ist es immer das letzte.
Shapes(Shapes.Count)

Gruß aus'm Pott
Udo
Anzeige
Ja, das passt...
25.04.2024 15:19:41
{Boris}
Hi Udo,

...aber ist dennoch irgendwie blöd, dass sich der Name stets ändert. Dieses InCell / OverCell scheint irgendwie noch nicht ganz ausgereift. Speziell Onur weiß ein Lied davon zu singen ;-)

VG, Boris
AW: Ja, das passt...
25.04.2024 15:34:41
Uduuh
man muss aber aufpassen, dass man meinen Code nicht auf eine Zelle ohne Bild anwendet. Sonst wird ein evtl. vorhandenes "freies" Bild in eine Zelle eingefügt. Oder rennt in einen Fehler. Kann man aber ausbauen.

Gruß aus'm Pott
Udo
Anzeige
Ich sag ja...
25.04.2024 15:36:43
{Boris}
Dieses InCell / OverCell scheint irgendwie noch nicht ganz ausgereift.

;-)

VG, Boris
AW: Ich sag ja...
25.04.2024 16:28:16
schauan
... jupp, so ist es. Genauso sollte man nix ohne entsprechende Vorkehrungen durcheinander machen ;-)


Ansonsten, hier noch der Link zur kürzlichen Diskussion ;-)
https://www.herber.de/forum/archiv/1968to1972/1969826_Excel_365_VBA_Befindet_sich_ein_Bild_IN_einer_Zelle.html
Mal noch zum anderen Thread:
Wenn man ein Bild über die Zwischenablage einfügt, und platziert es dann in der Zelle, steht nur Bild in der Zelle
Fügt man es manuell direkt per Menü ein, steht nur Bild in der Zelle
Beim Archivbild dann, wie im anderen Thread erklärt, der Alternativtext
Bei einem Bild aus dem Netz wieder nur Bild
...
Macht man es per VBA, dann Pfad+Dateiname
Selection.InsertPictureInCell ( _
"C:\Test\191905.png")



Anzeige
AW: Bild "In Zelle platzieren"
25.04.2024 10:11:30
Marco1981
andere Frage, weil du das über Makro aufzeichnen bekommen hast: wie bekommst du das Bild aus der Zelle über die Zelle? Welchen Vorgang hast du da genau aufgezeichnet? Ich habe ja noch nichteinmal herausgefunden, wie ich das Bild regulär aus der Zelle rausbekomme ...
AW: Bild "In Zelle platzieren"
25.04.2024 10:26:35
{Boris}
Hi,

Ich habe ja noch nichteinmal herausgefunden, wie ich das Bild regulär aus der Zelle rausbekomme ...

Bildzelle selektieren, Rechtsklick, Bild in Zelle - Platzieren über Zellen

Zudem wird Dir - wenn Du so eine Bildzelle selektierst, rechts oben am Zellrand das Bild-Symbol angezeigt. Klick drauf, und das Bild kommt wieder aus der Zelle raus.

VG, Boris
Anzeige
AW: Bild "In Zelle platzieren"
25.04.2024 10:37:32
Marco1981
Also bei direkt in die Zellle eingefügte Bilder habe ich weder den Rechtsklick-Kontext-Menüpunkt "Bild in Zelle", noch erscheint (wie bei Auswahl von über der Zelle eingefügter Bilder) das "Bildformat"-Menü oben rechts.
Reden wir hier wirklich vom selben Vorgang? Hast du das Bild über "Einfügen" - "Bilder" - "In Zelle platzieren" eingefügt?
Anzeige
AW: Bild "In Zelle platzieren"
25.04.2024 10:46:20
{Boris}
Hi,

ja, habe ich. Lad doch mal Deine Beispielmappe hoch (muss auch nur dieses eine Bild enthalten).

VG, Boris
Beispielmappe hab ich erst jetzt gesehen...oT
25.04.2024 10:46:56
{Boris}
VG, Boris
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Bilder in Zellen platzieren und per VBA steuern


Schritt-für-Schritt-Anleitung

Um ein Bild in einer Excel-Zelle zu platzieren, gehe folgendermaßen vor:

  1. Öffne Excel und gehe zum Reiter "Einfügen".
  2. Wähle "Bilder" aus und klicke auf "In Zelle platzieren".
  3. Wähle die Zelle aus, in der das Bild eingefügt werden soll.
  4. Um das Bild per VBA zu steuern, kannst du den folgenden Code verwenden:
Sub PicAn()
    Call PicAnAus(Range("A1"), True)
End Sub

Sub PicAus()
    Call PicAnAus(Range("A1"), False)
End Sub

Sub PicAnAus(r As Range, bolVisible As Boolean)
    With r
        .PlacePictureOverCells
        With .Parent
            With .Shapes(.Shapes.Count)
                .Visible = bolVisible
                If .Visible Then .Select
                .PlacePictureInCell
            End With
        End With
    End With
End Sub

Dieser Code platziert ein Bild in die Zelle A1 und ermöglicht das Ein- und Ausblenden.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Wenn du beim Ausführen eines VBA-Befehls den Fehler 1004 erhältst, könnte das an einem aktiven Blattschutz liegen. Überprüfe, ob das Blatt tatsächlich nicht geschützt ist.

  • Bild nicht sichtbar: Wenn das Bild nicht sichtbar ist, stelle sicher, dass die Sichtbarkeit des Bildes im VBA-Code korrekt gesetzt ist. Verwende bolVisible = True für sichtbare Bilder.


Alternative Methoden

Falls du alternative Ansätze zur Platzierung von Bildern in Excel benötigst, kannst du die Methode Selection.InsertPictureInCell verwenden. Hier ist ein Beispiel:

Selection.InsertPictureInCell "C:\Test\191905.png"

Diese Methode fügt das Bild direkt in die Zelle ein und ermöglicht eine einfache Handhabung.


Praktische Beispiele

Beispiel 1: Bild in Zelle einfügen Du kannst ein Bild direkt in die Zelle E5 einfügen:

Range("E5").Select
Selection.PlacePictureOverCells
ActiveSheet.Shapes.Range(Array("Picture 1")).Select
ActiveSheet.Shapes("Picture 1").PlacePictureInCell

Beispiel 2: Bild aus Zelle entfernen Um ein Bild wieder aus der Zelle zu entfernen, kannst du den folgenden Code verwenden:

ActiveSheet.Shapes("Picture 1").Delete

Tipps für Profis

  • Namenskonventionen: Achte darauf, dass die Bilder beim Einfügen konsistent benannt werden. Excel vergibt oft automatisch neue Namen, die das Nachverfolgen erschweren können.
  • Zelle anpassen: Nutze die Funktion excel bild an zelle anpassen, um sicherzustellen, dass das Bild immer korrekt in der Zelle angezeigt wird, auch wenn die Zellengröße geändert wird.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungen in deinem VBA-Code, um unerwartete Abstürze zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das Bild immer in der Zelle bleibt? Durch die Verwendung der Methode PlacePictureInCell wird garantieren, dass das Bild immer in der Zelle bleibt, unabhängig von Zelländerungen.

2. Gibt es Einschränkungen beim Einfügen von Bildern in Zellen? Ja, die Funktionalität kann je nach Excel-Version variieren. Achte darauf, dass du die neueste Version von Excel verwendest, um alle Funktionen nutzen zu können.

3. Wie kann ich mehrere Bilder gleichzeitig in Zellen platzieren? Du kannst eine Schleife verwenden, um mehrere Bilder nacheinander in verschiedenen Zellen zu platzieren. Achte jedoch darauf, dass die Zellen bereits vorbereitet und frei von anderen Inhalten sind.

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