Excel automatisch mit Bilder befuellen
Hallo zusammen,
Vielleicht kann mir jemand bei folgendem Problem helfen:
Ich muss oefters an Kunden Daten in einem Excel Dokument schicken. Es werden z.B. folgende Daten benoetigt:
Artikelnummer z.B. 0815 Bezeichnung z.B. Adidass Tshirt Farbe z.B. rot Gewicht z.B. 5kg …
Je nachdem, um welche Artikelnummer es sich handelt, aendern sich die anderen Daten - dies funktioniert mit eine Verknuepfung (sverweis, summewenn, ...) auf eine Excel Datenbank. Ist es die Artikelnummer 6542 ist die Bezeichnung Nike Hose, die Farbe ist Lila, …
Jetzt moechte der Kunde noch ein Bild in der Excel Datei haben. Dazu gehe ich bisher aufs Laufwerk, suche in einem Ordner unter der Artikelnummer das Bild (Bilder sind unter der Artikelnummer abgespiechert z.B. 0815.jpg) und kopiere es in die Excel-Tabelle.
Gibt e seine Moeglichkeit, dass diese Bilder ebenfalls automatisch in Excel eingefuegt werden? Je nachdem, welche Artikelnummer ich auswaehle, soll es mir das passende Bild anzeigen. Oder muss ich das immer haendisch machen?
Gruesse!
3 Antworten
Erstelle eine Schaltfläche in deinem Excelsheet. und weise dieser ein Makro zu.
Makro:
Sub Makro1()
Dim Pfad As String
Dim Dateiname As String
Pfad = "C:\Bilder"
Dateiname = Range("A1")
ActiveSheet.Pictures.Insert( _
Pfad & "\" & Dateiname & ".jpg").Select
End Sub
Den Pfad musst du natürlich anpassen statt "C:\Bilder" kommt denn der Pfad des Ordners wo alle Bilder enthalten sind.
Und statt
Dateiname = Range("A1")
schreibst du nicht A1 sondern die Zelle wo sich deine Artikelnummer befindet.
Wenn du jetzt deine Schaltfläche klickst, sollte das richtige Bild eingefügt werden
Was für eine Office-Version benutzt du?
Vergiss meine Frage - habe den Code gefunden und es funktioniert wunderbar :) Danke!
Noch ne andere Frage: Ich geben alle Artikelnummern im 1. Register bzw. Tabellenblatt ein z.B.
0815 0315 2222
Register "zwei" enthaelt die Daten wie Länge, Breite, Höhe, Farbe, ... von 0815, Register "drei" Länge, Breite, Höhe, Farbe, ... drei 0315, ....
Was muss ich denn machen, dass es mir automatisch durch druecken des Knopfes die Bilder auf das passende Register einfuegt?
Statt
ActiveSheet.Pictures.Insert( _
gibts du an in welchem Sheet das Bild eingefügt werden soll...
also:
Sheets("Tabelle2").Pictures.Insert( _
In diesem Fall das Sheet mit dem namen "Tabelle2"
Kann ich dich nochmals was fragen?
Was muss ich denn in dem Makro aendern, wenn ich folgendes haben will:
Immer wenn im Feld A1 eine Artikelnummer eingegeben wurde, soll es mir automatisch im Feld F6 das passende Bild einfuegen?
Mein Wissen hat schon lange aufgehoert :)
Dafür musst du das ganze Statement noch einmal ein bisschen anpassen...
Sub Makro1()
Dim Pfad As String
Dim Dateiname As String
Dim objShape As Object
Pfad = "C:\Bilder"
Dateiname = Range("A1")
Set objShape = Sheets("Tabelle1").Pictures.Insert( _
Pfad & "\" & Dateiname & ".jpg")
With objShape
.Left = Cells(lngRow + 6, 6).Left
.Top = Cells(lngRow + 6, 6).Top
End With
Set objShape = Nothing
End Sub
Traumhaft, genau das wollte ich - vielen Dank!
Hi ShitzOvran,
schon wieder ich!
Ich hab auf dem Laufwerk unzählige Bilder nach Artikelnummer gespeichert z.B. 0815, 1111, ....
In der Spalte A (Excel) trage ich die Artikelnummer ein z.B. 0815, ... Passend zu dieser Artikelnummer soll es mir das Bild in Spalte B einfuegen ... Die Anzahl der Artikel varrieirt, manchmal sind es nur 10 Artikel bzw. Bilder, manchmal sind es 100 Artikel bzw. Bilder.
Spalte A, Spalte B 0815.......Bild 0815 11111.....Bild 1111 33333.....Bild 3333 ...................
Das Bild soll dann noch automatisch an die Größe der Zelle angepasst werden.
Ich hatte jetzt folgenden Ansatz:
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, ich habe nur folgende Probleme:
Aktuell fügt es mir nur zwei Bilder ein, ich müsste also ein Teil des Codes 200 mal oder mehr kopiere und die Daten (Dateiname = Range("A2"))manuell anpassen. Das ist irgendwie, naja, sehr umstaendlich.
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.
Hast du vielleicht eine Lösung?
mit Access geht es auf jedenfall eindeutig besser.....
Die ganzen gezeigten Makros berücksichtigen aber nicht eventuelle unterschiedliche Größen der Bilder, so dass alles verzerrt eingefügt wird. Da gibt es ein fertiges Tool, was das alles kann: Wenn man automatisch Bilder in Excel einfügen will, kann man auch IMAGE-XLS verwenden. Mit dem Tool können beliebig viele Bilder oder Kommentare oder auch PDF in Excel Dateien importiert bzw. eingefügt werden. Die Bilder sind dann auch mit sortierbar und der Filter funktioniert auch mit den Bildern.
Wo kann ich denn den "Pfad" eines Makros sehen? Ich kann zwar ein einfachs Makro machen, aber wo kann ich das so sehen wie deine Beschreibung von oben?
Ich habe XP