[Excel] Bilder in Arbeitsmappe einfürgen durch Abgleich der Warennummer

F

Flex123

Hallo,

ich bin in Sachen VBA noch ein totaler Anfänger, deswegen bräuchte ich mal eure Hilfe.

Ich hab 2 Excelmappen. Die erste Mappe ist sozusagen ein Konfigurator, wo ich in der Zelle A15 die Warennummer eingebe. Jetzt soll er mir aus einem Ordner die dazugehörigen Bilder in die 2te Excelmappe einfügen. Falls mehrere Bilder Vorhanden sind, soll er mir sie untereinander einfügen..
Der Dateiname der Bilder soll unter den Bildern eingefügt werden.
Der Dateiname der Bilder fängt mit der 10stelligen Warennummer an und geht dann mit der Bezeichnung weiter.

Ich hab hier schon mal einen Ansatz komm jetzt aber nicht wirklich weiter.

Danke schon mal für eure Hilfe!

Sub DateienSuchen()
Dim arr As Variant
Dim iCounter As Integer, iFile As Integer
arr = Array(Zelle & "_" & "var_bildzaehler" & "*.gif", Zelle & "_" & " var_bildzaehler" & "*.jpg")
For iCounter = LBound(arr) To UBound(arr)
With Application.FileSearch
.NewSearch
.LookIn = "P:\Bilder"
.Filename = arr(iCounter)
.MatchTextExactly = True
.SearchSubFolders = False
.Execute


For iFile = 1 To .FoundFiles.Count
Cells(iFile, 1).Value = .FoundFiles(iFile)



Next iFile
End With
Next iCounter
End Sub
 
Ich denke mal das das Problem das Array "arr" ist bzw. wie du hier die Dateinamen bildest.

Lass dir mal den Inhalt des Arrays am Bildschirm oder sonst wo ausgeben und vergleiche mal ob es das auch wirklich sein soll.

Gruß Thomas

NACHTRAG:

So sofern ich das mit den Dateinamen richtig verstanden habe, sollte es so funktionieren:

Code:
Dim iCounter As Integer, iFile As Integer
Dim zeile As Integer
Zelle = Range("A15")
'Suche für JPG Dateien
With Application.FileSearch
    .NewSearch
    .LookIn = "P:\Bilder"
    .Filename = Zelle & "*.jpg"
    .SearchSubFolders = False
    .Execute
    For iFile = 1 To .FoundFiles.Count
        Cells(iFile, 1).Value = .FoundFiles(iFile)
    Next iFile
    
    zeile = .FoundFiles.Count
End With
'Suche für GIF Dateien
With Application.FileSearch
    .NewSearch
    .LookIn = "P:\Bilder"
    .Filename = Zelle & "*.gif"
    .SearchSubFolders = False
    .Execute
    For iFile = 1 To .FoundFiles.Count
        Cells(iFile + zeile, 1).Value = .FoundFiles(iFile)
    Next iFile
End With
 
Zuletzt bearbeitet:
Hi,

danke, dass klappt schon mal ganz gut.

Jetzt hab ich nur folgendes Problem:

Er zeigt den Pfad in der gleichen Arbeitsmappe an, dass soll er ja nicht. Er soll die Bilder in der 2ten Arbeitsmappe einfügen, und dann darunter den Dateinamen anzeigen.
Vielleicht hast du dazu auch eine Idee, ich komm da nämlich nicht weiter.

Danke schon mal im

Gruß
Flex
 
Also wenn du von Arbeitsmappe redest verstehe ich das so das es in der Excel Datei eine "Tabelle 1" und eine "Tabelle 2" gibt. In "Tabelle 1" gibst du die Warennummer ein und in "Tabelle 2" sollen die Daten angezeigt werden!!

Dann ändere einfach die Zeile:

Code:
Cells(iFile + zeile, 1).Value = .FoundFiles(iFile)

so ab:

Code:
Tabelle2.Cells(iFile + zeile, 1).Value = .FoundFiles(iFile)

Gruß Thomas
 
Danke,
das hilft mir schon mal sehr viel weiter!

Aber kann VBA auch anstatt der Pfadangabe die Bilder einfügen und dadrunter den Dateinamen setzten.

Gruß
 
Schau mal ob du damit weiterkommst:

Code:
For anzahl = 1 To Tabelle2.Range("A65536").End(xlUp).Row
    Tabelle2.Cells(Wiederholungen, 1).Activate
    Tabelle2.Pictures.Insert(Tabelle2.Cells(Wiederholungen, 1)).Select
Next

Oder schau mal hier: http://www.office-loesung.de/ftopic52795_0_0_asc.php da hat/hette jemand das gleiche Problem.
 
Zuletzt bearbeitet:
Danke für die schnelle Hilfe.

Ich werd es damit erst einmal versuchen.

Gruß
Flex
 
Hi,

ist egal wie ich es versuche die Formel einzusetzten. Er zeigt mir immer einen Fehler an meisten 1004. Weißt du woran es liegen kann?

Der Link hilft mir leider nicht. Wenn ich es so umsetze passiert nichts.

Danke

Gruß
 
Ups, war wohl mein Fehler.
Im dem Makro gabe es eine komische Variable "Wiederholungen" die habe ich bei mir zum Testen so belassen und erst als ich es hier reinkpoiert habe geändert. Allerdings habe ich Trottel sie nur an einer Stelle umbenannt und die anderen 2 einfach so belassen.

Code:
For anzahl = 1 To Tabelle2.Range("A65536").End(xlUp).Row
    Tabelle2.Cells(anzahl, 1).Activate
    Tabelle2.Pictures.Insert(Tabelle2.Cells(anzahl, 1)).Select
Next

Ändere es mal so wie oben ab, dann läuft es. Habe es bei mir gerade probiert der Fehler 1004 entsteht dadurch.

Sorry Thomas
 

Neue Beiträge

Zurück