shinduke
Goto Top

Script zum Umbennen einer JPG Datei aus Excel

Hallo,

ich habe folgendes Problem. Da ich eigentlich noch sehr sehr wenig bis gar nicht mit Scripten zu tun hatte und bei uns in der Firma auch keiner so wirklich ne Ahnung hat wollte ich meine Frage mal hier stellen und hoffe ihr könnt mir helfen. Ich habe zwar schon das Forum durchsucht, jedoch habe ich kein Script/Batch gefunden um mein Problem zu lösen.
Folgendes Szenario:

Ich habe eine einzige JPG (der Name solle egal sein) und eine Excel Tabelle die so aussieht

Spalte1
Name1
Name2
Name3
...

Ich brauche nun ein Script, dass die JPG nimmt, die in einem bestimmten Ordner (z.B. c:\test) liegt, und so oft in einen anderen Ordner kopiert wie ich Einträge in der Tabelle habe. Beim Kopieren soll die JPG umbenannt werden und es sollen dabei die Einträge aus der Excel Tabelle verwenden werden.

Das Ziel ist ein identische Bild zu haben mit unterschiedlichen Dateinamen.
Also:

Name1.jpg
Name2.jpg
Name3.jpg


Ich hoffe Ihr könnt mir helfen. Hab ca 25000 Bilder zum bearbeiten und ich weis nicht wie viele Bezeichnungen. Da wäre eine kleine Batch Datei extrem hilfreich face-smile
Kommentar vom Moderator Biber am Feb 27, 2014 um 16:20:11 Uhr
Script zum Umbennen einer JPG Datei aus Excel
set /a rgc+=1
#888
Tööröööö...*tusch*...
Das war jetzt die vorletzte abräumbare dreistellige running gag counter-Schnapszahl.
Und das pünktlich zur Weiber-Fassnacht. Konfetti!
Weiter so, Jungs und Mädelz!

Content-Key: 231214

Url: https://administrator.de/contentid/231214

Printed on: April 20, 2024 at 00:04 o'clock

Member: colinardo
colinardo Feb 27, 2014 updated at 14:53:22 (UTC)
Goto Top
Hallo shinduke, Willkommen im Forum!
Das gewünschte könntest du in deinem Excel-Sheet mit folgendem VBA-Makro machen:
(Zeile 3 und 4 legen die Pfade fest / Zeile 8 das Worksheet und Zeile 9 die erste Zelle in der die Namen stehen)
Sub copyImages()
    '------------  
    strImagePath = "C:\Quelle\deinBild.jpg"  
    strZielPfad = "C:\Ziel"  
    '------------  
    Set fso = CreateObject("Scripting.FileSystemObject")  
    ext = fso.GetExtensionName(strImagePath)
    Set ws = Worksheets(1)
    Set rngStart = ws.Range("A2")  
    Set rngEnd = rngStart.End(xlDown)
    For Each cell In ws.Range(rngStart, rngEnd)
        FileCopy strImagePath, strZielPfad & "\" & cell.Value & "." & ext  
    Next
End Sub
oder wenn es als VBS-Script außerhalb von Excel gestartet werden soll in dieser Art:
'------------  
strImagePath = "C:\Quelle\deinBild.jpg"  
strZielPfad = "C:\Ziel"  
strExcelFile = "C:\ExcelSheet.xlsm"  
'------------  
Set fso = CreateObject("Scripting.FileSystemObject")  
Set objExcel = CreateObject("Excel.Application")  
Set wb = objExcel.Workbooks.Open(strExcelFile)
objExcel.Visible = True
Set ws = wb.Worksheets(1)
Set rngStart = ws.Range("A2")  
Set rngEnd = rngStart.End(-4121)
ext = fso.GetExtensionName(strImagePath)
For Each cell In ws.Range(rngStart, rngEnd)
	fso.CopyFile strImagePath, strZielPfad & "\" & cell.Value & "." & ext  
Next
wb.Close False
objExcel.Quit
Grüße Uwe
Member: shinduke
shinduke Feb 27, 2014 at 14:55:35 (UTC)
Goto Top
Boah geil....vielen vielen Dank. Das Makro für Excel selber ist spitze. Hat super funktioniert.