1.2k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo und schönen Abend,

ich habe bereits Google bemüht und auch Ähnliche Fragestellungen dabei gefunden. Leider aber nichts, was mir weiter geholfen hat.

Bin Amatuer im Excel und hatte mir das folgende nicht so schwierig vorgestellt.

Ich möchte z.B. in Tabelle1 Zelle A2 eine Artikelnummer eingeben. Und dann in Zelle A4 das passende Bild dazu angezeigt bekommen. Welches in Tabelle2 z.B. auf A3 liegt. Oder wenn das besser geht, auch aus einem Ordner vom Server. Da es irgendwann recht viele Bilder sein werden.

Nun dachte ich etwas naiv, das ginge doch mit dem SVerweis mit dem ich auch etwas info text der Artikelnummer zu Ordne. Leider wohl Falsch gedacht.

Kann da jemand helfen? Am besten ausführlich und schritt für schritt erklärt?

Eine Artikelnummer könnte sein 270KB10 und darunter sollte dann das Bild dazu angezeigt werden. Und daneben ein Info text. Den text würde ich mit dem SVerweis machen. Aber Bilder?

Vielen Dank

11 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

wenn es nur ein paar Bilder sein sollen, dann schau dir mal das hier an: Bilder per Formel einfügen

Sollte das aber z.B. ein Katalog werden mit vielen Bildern, so kann man das auch per Makro lösen.

Kopiere den folgenden Code in ein Standardmodul deiner Excel-Tabelle.
Public Function ZeigeBild(ByVal strBildname As String, Bildhöhe As Long) As String

Dim strDatei As String
Dim Bildbreite As Double
Dim Bildhoehe As Double
Dim meinBild
Dim strZielzelle As String

strZielzelle = Application.Caller.Address

'Pfad in dem die Bilder liegen ggf. anpassen
strDatei = "C:\Test\" & strBildname & ".jpg"

If Dir(strDatei) <> "" Then
Set meinBild = LoadPicture(strDatei)
Bildbreite = meinBild.Width
Bildhoehe = meinBild.Height
'zur Umrechnung von Zentimetern in Punkte: 1 cm = 28,35 pt
ActiveSheet.Shapes.AddPicture strDatei, msoFalse, msoTrue, Range(strZielzelle).Left, Range(strZielzelle).Top, Bildhöhe * 28.35 * Bildbreite / Bildhoehe, Bildhöhe * 28.35
ZeigeBild = "Bild"
Else
ZeigeBild = "Bild nicht vorhanden"
End If

End Function


Den Pfad, in dem deine Bilder liegen, musst du natürlich entsprechend anpassen. Ich bin mal davon ausgegangen, dass die Bilder als .jpg-Datei vorliegen. Die Endung musst du ggf. auch noch anpassen.

Der Aufruf erfolgt dann durch die folgende Formel:
=ZeigeBild(A4;3)
A4 ist dabei die Zelle, in der der Bildname, hier deine Artikelnummer - ohne Endung - steht. Die Zahl hinter dem Semikolon gibt die Bildhöhe in cm an. Das Bild wird dann skaliert in die Zelle eingefügt, in der die Formel steht.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

vielen dank dafür. das hat mich schon weiter gebracht. Auch das endlich mal erklärt wird, wo man das "modul" findet um code rein zu kopieren.

Leider werden mir noch keine Bilder angezeigt. Ich erhalte aber immerhin schon die Meldung aus dem code " Bild nicht Vorhanden"
ich habe jetzt mit verschiedenen Bildnamen als jpg und verschiedenen quell pfaden versucht. Irgendwas mache ich noch falsch.

vielleicht noch einen Tipp?

Es ist auf excel 2010. Wie oben beschrieben eingefügt.

Danke.
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

überprüfe mal, ob die Bildnamen mit den Namen in deiner Tabelle übereinstimmen.
Überprüfe ob deine Pfadangabe mit einem \ endet (siehe oben im Code).
Die Zellangabe in der Formel ist auch richtig?
Kopiere einfach mal einen Bildnamen aus einem Verzeichnis und füge den Namen ohne Endung in eine Zelle ein.
Hast einen Windowsrechner oder einen MAC?

Gruß

M.O.
0 Punkte
Beantwortet von
Moin moin,

habe das nochmal probiert. und ein \ hinter den Pfad angefügt.

Bekomme jetzt auch nicht mehr "Bild nicht Vorhanden" angezeigt. sondern nur noch #Name? als Fehler.
auch wenn ich die Änderung zurück nehme.

--

Public Function ZeigeBild(ByVal strBildname As String, Bildhöhe As Long) As String

Dim strDatei As String
Dim Bildbreite As Double
Dim Bildhoehe As Double
Dim meinBild
Dim strZielzelle As String

strZielzelle = Application.Caller.Address


strDatei = "pfad zum Bild\" & strBildname & ".jpg"

If Dir(strDatei) <> "" Then
Set meinBild = LoadPicture(strDatei)
Bildbreite = meinBild.Width
Bildhoehe = meinBild.Height

ActiveSheet.Shapes.AddPicture strDatei, msoFalse, msoTrue, Range(strZielzelle).Left, Range(strZielzelle).Top, Bildhöhe * 28.35 * Bildbreite / Bildhoehe, Bildhöhe * 28.35
ZeigeBild = "Bild"
Else
ZeigeBild = "Bild nicht vorhanden"
End If

End Function
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

der Backslash am Ende des Pfades ist nowendig. Wie sieht denn deine Formel aus?

Gruß

M.O.
0 Punkte
Beantwortet von
Moin,


die Formel habe ich so gelassen. Und nur für den Aufruf geändert. Und den Pfad eingefügt.

Auch mit verschiedenen Pfaden Probiert.

------

=ZeigeBild(B4;3)

-------

Public Function ZeigeBild(ByVal strBildname As String, Bildhöhe As Long) As String

Dim strDatei As String
Dim Bildbreite As Double
Dim Bildhoehe As Double
Dim meinBild
Dim strZielzelle As String

strZielzelle = Application.Caller.Address


strDatei = "U:\\Pfad zum Bild Ordner\" & strBildname & ".jpg"

If Dir(strDatei) <> "" Then
Set meinBild = LoadPicture(strDatei)
Bildbreite = meinBild.Width
Bildhoehe = meinBild.Height

ActiveSheet.Shapes.AddPicture strDatei, msoFalse, msoTrue, Range(strZielzelle).Left, Range(strZielzelle).Top, Bildhöhe * 28.35 * Bildbreite / Bildhoehe, Bildhöhe * 28.35
ZeigeBild = "Bild"
Else
ZeigeBild = "Bild nicht vorhanden"
End If

End Function
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

der Fehler #Name? deutet eigentlich darauf hin, dass in der Formel irgendein Schreib- oder sonstiger Fehler vorhanden ist.
Beachte dass die Formel nur in der Arbeitsmappe funktioniert, in der das Makro gespeichert ist.

Gruß

M.O.
0 Punkte
Beantwortet von
Danke,

ja es gibt nur die eine Arbeitsmappe. gestern wurde ja immerhin "bild nicht Vorhanden" angezeigt. und da gab es keine Änderung. Versteh auch nicht was falsch geschrieben sein könnte. ich versuche es sonst nochmal komplett neu.



MfG
0 Punkte
Beantwortet von
Hi!

Wenn Du die Funktion wie in AW6 in Deiner Arbeitsmappe hast, dann lösche doch mal den 2. Backslash (\) hinter dem Laufwerksbuchstaben "U:".
2 Backslash gibt es nur wenn es sich um ein Netzlaufwerk handelt, dann steht aber kein Laufwerksbuchstabe an 1. Stelle, sondern die beiden Backslash.

Gruß,
coros
0 Punkte
Beantwortet von
Hallo und guten Morgen.


leider immer noch nichts. das zweite \ weglassen bringt keine veränderung mit sich.
Ich erhalte einfach kein bild angezeigt.
Vielleicht mag sich das mal jemand ansehen? ob es dort funktioniert.

Datei von filehorst.de laden
...