Mit VBA Dateien in einem Ordner umbenennen?

4 Antworten

Bei mir funktioniert es :-)

Sub abc()
 Shell "Explorer.exe C:\abc, vbNormalFocus"
  Set FS = CreateObject("Scripting.FileSystemObject")
  Set Folder = FS.GetFolder("C:\abc")
 
  Dim x As String
  x = ActiveCell
 
  For Each File In Folder.Files
    If File.Name Like "*.jpg" Then
      ActiveCell.Offset(1, 0).Select
      x = ActiveCell
      FS.MoveFile Folder.Path & "\" & File.Name, Folder.Path & "\" & x
      
    End If
  Next
End Sub


jhekjn1 
Fragesteller
 04.04.2018, 07:58

Danke für die schnelle Hilfe! mit deinem Code funktioniert es jetzt Safur :D was an meinem falsch war weiss ich allerdings immer noch nicht.

Hat jemand noch einen Tipp wie ich jetzt wieder die Dateiendung .jpg dranbekomm?

LG und danke vielmals!

0
safur  04.04.2018, 19:29
@jhekjn1

Was steht denn in deiner Excel-Tabelle? Nur ein Name?Dann machst du eben

FS.MoveFile Folder.Path & "\" & File.Name, Folder.Path & "\" & x & ".jpg"
0

Ich verwende immer "movefile" aus dem Scripting Object. Da man umbennen will kann der Pfad identisch bleiben, nur der Name mus sich ändern.
Außerdem kannst du im Scripting object auch "GetExtensionName" verwenden um nur die  Erweiterung zu erhalten.
Ggf muss in deinem Code "*.jpg" heißen anstatt nur ".jpg".
Ich verwende selten "like", daher nur eine Vermutung.   

Setz einen Haltepunkt und schau, ob in x der korrekte, vollständige Name steht. Dann probier einmal eine Direktzuweisung:

File.Name = x

Du musst vor der Ausführung des Codes sicherstellen, dass die richtige Zelle aktiv ist. Du setzt während des Ablaufs die aktive Zelle um und liest den Wert aus.

Du definierst x als Single. Single ist ein Zahltyp. Der Dateiname sollte aber ein String sein.

Woher ich das weiß:Berufserfahrung – Programmierer

Es gibt im übrigen das Umbennenungs Programm "BulkRename", dass als Freeware alle meine Umbennungsaufgaben bestens gemeistert hat.
Selbst ein Programm zu schreiben, welches dies alles kann wäre viel unnötige Arbeit.