Excel automatisch mit Bilder befuellen

...komplette Frage anzeigen

2 Antworten

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.

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?

Florian6547 05.09.2013, 20:54

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

0
Florian6547 05.09.2013, 21:11
@Florian6547

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?

0
ShitzOvran 06.09.2013, 13:37
@Florian6547

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"

1
Florian6547 10.09.2013, 12:51
@ShitzOvran

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 :)

1
ShitzOvran 11.09.2013, 10:25
@Florian6547

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
0
Florian6547 22.10.2013, 10:50
@Florian6547

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?

0

Was möchtest Du wissen?