534 Aufrufe
Gefragt in Textverarbeitung von
Hallo Zusammen,
Ich bin schier am verzweifeln.
Ich habe mich jetzt auch schon ein paar Stunden mit der Suche in dem Forum beschäftigt und versucht die angebotenen Lösungen umzuwandeln aber irgendwo passt was nicht.
Eigentlich ganz simple, dachte ich.

Ich habe eine Excel-Tabelle mit mehreren Artikel in der ich bis jetzt immer von Hand die Produktbilder als Grafik eingebunden habe. Dies ist sehr mühsam. Aber ich muss mit einem Klick sehen können was für ein Produkt dahinter steckt.

Also dachte ich mir mit einem Makro müsste dies ja funktionieren das so abzugleichen.
Diesen Code habe ich gefunden und probiert. Doch bis auf die Fehlermeldung bekomme ich nichts angezeigt.

Meine Artikelnummer steht übrigens in Spalte D und mein Bild sollte in Spalte G abgebildet werden. Vielleicht steckt da der Wurm ja drinn. Oder meine Bilder sind zu groß, kann das Sein?


Sub Bilder_einfügen()
Dim Pfad As String
Dim strDatnam As String
Dim Wiederholungen As Long

'Pfad anpassen
Pfad = "C:\Bilder\"
'Spalte B ab Zeile 2 durchlaufen
For Wiederholungen = 2 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
'Namen der Bilder stehen in Spalte B - ohne Endung; Einlesen in Variable mit Pfadangaben
strDatnam = Pfad & Cells(Wiederholungen, 4).Value & ".jpg"
'Prüfen, ob Bilddatei im Verzeichnis existiert
If Dir(strDatnam) <> "" Then
'falls ja: Bilder werden in Spalte A eingefügt, Größe 3 x 3 cm
ActiveSheet.Shapes.AddPicture strDatnam, msoFalse, msoTrue, Cells(Wiederholungen, 7).Left, Cells(Wiederholungen, 3).Top, 85, 85
Else
'falls nein, wird in Spalte A eine Fehlermeldung geschrieben
ActiveSheet.Cells(Wiederholungen, 1) = "Bild nicht gefunden"
End If
Next

End Sub

Sieht jemand was ich falsch mache?

Danke für Eure Hilfe. Ach ja mein Excel ist 2016. Liegt es evtl. an der Version?

2 Antworten

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

liegen deine Bilder denn im Verzeichnis C:\Bilder\ ? Wenn nicht musst du natürlich den Pfad anpassen.

Außerdem solltest du noch die folgenden Zeilen anpassen:
ActiveSheet.Shapes.AddPicture strDatnam, msoFalse, msoTrue, Cells(Wiederholungen, 7).Left, Cells(Wiederholungen, 7).Top, 85, 85

und
ActiveSheet.Cells(Wiederholungen, 7) = "Bild nicht gefunden"


Gruß

M.O.
0 Punkte
Beantwortet von
Hallo Community

Noch ergänzend!
'Spalte B ab Zeile 2 durchlaufen
Der Index 4 der folgenden Zeile zielt auf Spalte D,B wäre Index 2
For Wiederholungen = 2 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row

Gruss Nighty
...