Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1616to1620
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
Bilder automatisch per Button einfügen
29.03.2018 09:55:25
arek
Hallo zusammen,
da meine letzte Erklärung leider nicht genau genug war, versuche ich es nochmal...
Ich würde gerne ein Macro erstellen, dass mir Bilder, die in einem Ordner sind per Knopfruck in die Excel Datei reinkopiert...Ich stelle mir das so vor, dass wenn ich das Jahr (Benennung Ordner, der auf dem Desktop liegt: Jahresangabe) und die Seriennummer (Benennung Unterordner, der auch auf dem Desktop liegt: Seriennummer) eingebe (in A:A und B:B gebe ich jeweils eine Liste mit mehreren Zeilen ein) und den Button drücke, sämtliche Bilder in eine neuen Reiter (alle Bilder nebeneinander in ein Tabellenblatt) kopiert werden. Die Bilder haben ein JPEG-Format und neben den Bildern befinden sich im jeweiligen Verzeichnis keine anderen Dateien...Ich hoffe, ich konnte einigermaßen verständlich mein Anliegen erklären. Vielen Dank!!
Hier wäre eine Beispielsdatei:
https://www.herber.de/bbs/user/120522.xlsm

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder automatisch per Button einfügen
29.03.2018 10:30:42
Hajo_Zi
sehe ich es richtig, es sind keine Angaben da?
Zu Bild einfügen bei Eingabe schaue hier
http://www.hajo-excel.de/inhalt_vba_bild.htm

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: Bilder automatisch per Button einfügen
29.03.2018 10:44:23
arek
Hi Hajo,
vielen Dank für deine Antwort! Es sind schon Angaben vorhanden. Diese trage ich per Hand entsprechend ein, siehe Beispielsdatei hier:
https://www.herber.de/bbs/user/120758.xlsm
AW: Bilder automatisch per Button einfügen
29.03.2018 11:15:08
arek
Hi Hajo,
nochmal danke für deinen Hinweis...Bei mir ist es allerdings so, dass ich nicht den konkreten Bildnamen eingeben möchte bzw. Teile davon, sondern dass alle Bilder aus dem Ordner bzw. dem Unterordner dann in das Tabellenblatt übertragen werden soll...
Ist meine Erklärung verständlich?
Viele Grüße
Anzeige
AW: Bilder automatisch per Button einfügen
29.03.2018 11:29:11
Robert
Hallo arek,
nachstehender Code auf den schon eingefügten Button gelegt, durchsucht alle von Dir angegebenen Ordner (Jahr) und deren Unterordner (SerienNr) auf dem Desktop und fügt die Bilder in ein neues Tabellenblatt ein.
Dort erhalten alle Bilder eine einheitliche Breite, sofern sie nicht schmaler sind.
Gruß
Robert
Private Sub CommandButton1_Click()
Dim strVerz As String, strDatei As String, pic As Picture
Dim iBreite As Integer, iAnz As Integer, lAnz As Long, lZ As Long
Dim WSH As Object 'Windows Scripting Host
Dim wksBilder As Worksheet, wksDaten As Worksheet
Set WSH = CreateObject("WScript.Shell")
Set wksDaten = ActiveSheet
'Bilder-Breite
iBreite = 300
'Anzahl der Bilder-Verzeichnisse
lAnz = Range("A" & Rows.Count).End(xlUp).Row
'Tabellenblatt für Bilder erstellen
Sheets.Add After:=Sheets(Sheets.Count)
Set wksBilder = ActiveSheet
'Verzeichnisse durchlaufen
For lZ = 2 To lAnz
'Bild-Dateinamen ermitteln
strVerz = WSH.SpecialFolders("Desktop") & "\" & wksDaten.Cells(lZ, 1) & "\" & wksDaten. _
Cells(lZ, 2) & "\"
strDatei = Dir(strVerz & "*.jpg")
'Bilder einfügen
Do While strDatei  ""
iAnz = iAnz + 1
Set pic = ActiveSheet.Pictures.Insert(strVerz & "\" & strDatei)
If pic.Width > iBreite Then pic.Width = iBreite
pic.Left = (iAnz - 1) * (iBreite + 10)
pic.Top = 1
strDatei = Dir    ' Nächsten Eintrag abrufen.
Loop
Next
'Aufräumen
Set pic = Nothing
Set wksBilder = Nothing
Set wksDaten = Nothing
End Sub

Anzeige
AW: Bilder automatisch per Button einfügen
29.03.2018 11:42:33
arek
Hi Robert,
vielen Dank für deinen Code! Dies hilft mir schon sehr weiter...
Eine Frage hätte ich noch: Ich möchte, dass die Bilder nicht nebeneinander sind, sondern in zweier Reihen untereinander...Wie muss ich hier den Codeverändern?
AW: Bilder automatisch per Button einfügen
29.03.2018 12:42:43
Robert
Hallo arek,
wenn Du nur 3 Bilder pro Zeile haben willst, müsste folgender Code funktionieren:
Private Sub CommandButton1_Click()
Dim strVerz As String, strDatei As String, pic As Picture
Dim iBreite As Integer, iAnz As Integer, lAnz As Long, lZ As Long
Dim WSH As Object 'Windows Scripting Host
Dim wksBilder As Worksheet, wksDaten As Worksheet
Dim lHoehe As Long, lBildHoehe As Integer
Application.ScreenUpdating = False
Set WSH = CreateObject("WScript.Shell")
Set wksDaten = ActiveSheet
'Bilder-Breite
iBreite = 300
'Anzahl der Bilder-Verzeichnisse
lAnz = Range("A" & Rows.Count).End(xlUp).Row
'Tabellenblatt für Bilder erstellen
Sheets.Add After:=Sheets(Sheets.Count)
Set wksBilder = ActiveSheet
'Verzeichnisse durchlaufen
For lZ = 2 To lAnz
'Bild-Dateinamen ermitteln
strVerz = WSH.SpecialFolders("Desktop") & "\" & wksDaten.Cells(lZ, 1) & "\" & wksDaten. _
Cells(lZ, 2) & "\"
strDatei = Dir(strVerz & "*.jpg")
'Bilder einfügen
Do While strDatei  ""
For iAnz = 1 To 3 '3 Bilder pro Zeile
If iAnz = 1 Then lHoehe = lHoehe + lBildHoehe + 10
Set pic = ActiveSheet.Pictures.Insert(strVerz & "\" & strDatei)
If pic.Width > iBreite Then pic.Width = iBreite
pic.Left = (iAnz - 1) * (iBreite + 10)
pic.Top = lHoehe
If iAnz > 1 Or lBildHoehe 
Gruß
Robert
Anzeige
AW: Bilder automatisch per Button einfügen
29.03.2018 13:06:19
arek
Hi Werner,
danke für die Antwort! Eine Frage hätte ich noch: Angenommen die Ordner liegen nicht auf dem Desktop,
sondern unter dem Pfad I:\ABDF\D&E\03_Proje\test_pics
Wie müsste dann der Code ausschauen?
AW: Bilder automatisch per Button einfügen
29.03.2018 13:41:59
Robert
Hallo,
dann müsste die Zeile
strVerz = WSH.SpecialFolders("Desktop") & "\" & wksDaten.Cells(lZ, 1) & "\" & wksDaten.Cells(lZ, 2) & "\"

geändert werden in
strVerz = "I:\ABDF\D&E\03_Proje\test_pics\" & wksDaten.Cells(lZ, 1) & "\" & wksDaten.Cells(lZ, 2) & "\"
Außerdem könnten folgende Zeilen entfallen:
...
Dim WSH As Object 'Windows Scripting Host
Set WSH = CreateObject("WScript.Shell")
...
Gruß
Robert
Anzeige
AW: Bilder automatisch per Button einfügen
03.04.2018 23:38:03
arek
Hi Werner,
danke für deine Antwort!
Eine Frage hätte ich noch: Ich würde gerne noch die Spalte C dazunehmen und wenn hier etwas eingetragen wird, z.B. "AK" und dies im Dateinamen der Bilder vorkommt, sollen genau diese Bilder im neuen Tabellenblatt zu sehen sein...Wie muss hierzu mein Code umschreiben?
Viele Grüße
AW: Bilder automatisch per Button einfügen
04.04.2018 17:14:48
Robert
Hallo,
versuche mal den For-Block wie folgt zu ergänzen:
For iAnz = 1 To 3
If InStr(strDatei, wksDaten.Cells(lZ, 3)) > 0 Then
If iAnz = 1 Then lHoehe = lHoehe + lBildHoehe + 10
Set pic = ActiveSheet.Pictures.Insert(strVerz & "\" & strDatei)
If pic.Width > iBreite Then pic.Width = iBreite
pic.Left = (iAnz - 1) * (iBreite + 10)
pic.Top = lHoehe
If iAnz > 1 Or lBildHoehe 
Gruß
Robert
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige