Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel mit Bilder befüllen

Excel mit Bilder befüllen
20.10.2013 14:31:49
Bobic
Hallo zusammen,
ich hab in einem Ordner unzählige Bilder nach Artikelnummer gespeichert z.B. 0815, 1111, ....
In der Spalte A trage ich die Artikelnummer ein z.B. 0815, 11111, ... Die Anzahl der Artikelnummern variiert zwischen 30 und 200 Stück. Ich würde also jedes mal gerne zwischen 30 und 200 Bilder passend zur Artikelnummer einfügen.
Das Bild soll dann in der gleichen Zeile stehen, wie die Artikelnummer:
Spalte A, Spalte B
0815.......Bild 0815
11111.....Bild 1111
33333.....Bild 3333
...................
Das Bild soll dann an automatisch an die Größe der Zeile angepasst werden.
Mein Lösungsansatz ist nun folgender:
Sub BilderEinfügen()
Dim Pfad As String
Dim Dateiname As String
Dim objShape As Object
Pfad = "C:\Users\..."
Dateiname = Range("A1")
Set objShape = Sheets("Tabelle1").Pictures.Insert( _
Pfad & "\" & Dateiname & ".jpg")
With objShape
.Left = Cells(lngRow + 2, 2).Left
.Top = Cells(lngRow + 1, 1).Top
.Height = Range("B1").Height
.Width = .Height * 3 / 4
End With
Set objShape = Nothing
Pfad = "C:\Users\..."
Dateiname = Range("A2")
Set objShape = Sheets("Tabelle1").Pictures.Insert( _
Pfad & "\" & Dateiname & ".jpg")
With objShape
.Left = Cells(lngRow + 2, 2).Left
.Top = Cells(lngRow + 2, 2).Top
.Height = Range("B1").Height
.Width = .Height * 3 / 4
End With
Set objShape = Nothing
End Sub

Das Makro funktioniert auch wunderbar, es hat nur zwei Probleme:
Aktuell fügt es mir nur zwei Bilder ein, ich müsste also ein Teil des Codes 200 mal kopiere und die Daten (Dateiname = Range("A2"))manuell anpassen. Das ist irgendwie sehr aufwendig.
Habe ich in einer Zelle keine Artikelnummer eingetragen, wird kein Bild eingetragen. Gut soweit, aber das Makro stoppt hier und macht nicht mit der nächsten Zeile weiter, welche wieder eine Artikelnummer hat.
Habt ihr vielleicht eine Lösung?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel mit Bilder befüllen
20.10.2013 15:08:30
Beni
Hallo Bobic
zähle die Zeilen mit einer Schleife hoch
Gruss Beni
Sub BilderEinfügen()
Dim Pfad As String
Dim Dateiname As String
Dim objShape As Object
Pfad = "C:\Users\..."
For a = 1 To Cells(Rows.Count, 1).End(xlUp).Row ' 1 bis letzte Zeile
Dateiname = Cells(a, 1)
Set objShape = Sheets("Tabelle1").Pictures.Insert( _
Pfad & "\" & Dateiname & ".jpg")
With objShape
.Left = Cells(lngRow + 2, 2).Left
.Top = Cells(lngRow + 1, 1).Top
.Height = Range("B1").Height
.Width = .Height * 3 / 4
End With
Set objShape = Nothing
Next a
End Sub

Anzeige
AW: Excel mit Bilder befüllen
20.10.2013 19:15:42
Bobic
Hi Beni,
danke für die Antwort.
Wenn ich deinen Code kopiere (und den Pfad anpasse), passiert bei mir gar nichts. Mach ich was falsch?
Cheers

AW: Excel mit Bilder befüllen
20.10.2013 22:54:36
Beni
Hallo Bobic
kann nicht fuktionieren, habe dein Code nicht näher betrachtet, aber vorher kommt das "lngRow"
Sheets("Tabelle1").Pictures.Insert( ,,,,keine Zellenangabe
Set objShape = Sheets("Tabelle1").Cells(a, 2).Pictures.Insert( mit Zellenangbe, "a" = Zeile 2 = Spalte
Gruss Beni
Sub BilderEinfügen()
Dim Pfad As String
Dim Dateiname As String
Dim objShape As Object
Pfad = "C:\Users\..."
For a = 1 To Cells(Rows.Count, 1).End(xlUp).Row ' 1 bis letzte Zeile
Dateiname = Cells(a, 1)
Set objShape = Sheets("Tabelle1").Cells(a, 2).Pictures.Insert( _
Pfad & "\" & Dateiname & ".jpg")
With objShape
.Left = Cells(a , 2).Left
.Top = Cells(a, 2).Top
.Height = Range("B1").Height'?
.Width = .Height * 3 / 4 '?
End With
Set objShape = Nothing
Next a
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige