Anzeige
Archiv - Navigation
1956to1960
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
Inhaltsverzeichnis

Dateinamen in Pfad ändern inkl. SVerweis

Dateinamen in Pfad ändern inkl. SVerweis
13.12.2023 20:52:00
Parker
Hallo zusammen,

ich habe mir ein Video angeschaut, in dem Dateinamen mit einem Makro geändert werden. Dabei ging es in dem Video nur um einen Teil des Namens, der immer wiederkehrend ist, ziemlich einschränkend ist. Ich benötige mehr Variabilität. Ich habe Musik/Video-Titel, die fortlaufende Nummern haben und möchte sie gerne in den korrekten Namen umbenennen.

Dazu habe ich:

Pfad in A1 kopiert
Alle Dateinamen in Spalte D2:D292 eingetragen und in Spalte E2:E292 alle neuen Namen zur Umbenennung
Das Makro soll nun (in Schleife) jeden Namen (mittels SVerweis, wenn jemand eine andere Lösung hat, geht das auch) im Pfad (nacheinander) mit den Dateinamen in Spalte D abgleichen, wenn der passende gefunden ist, ihn mit dem Namen daneben in Spalte E ersetzen.

Sub Ordner_Auslesen()

'Bibliothek aktivieren

'Variablen dimensionieren
Dim fso As Object
Dim rng As Range
Dim sPfad As String
Dim Dateiliste As Variant
Dim Datei As Variant

'Pfad auslesen
sPfad = ActiveSheet.Range("A1").Value
Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FolderExists(sPfad) Then

'Alle Dateien des Ordners einlesen
Set Dateiliste = fso.GetFolder(sPfad).Files

'Schleife über alle Dateien des Ordners
For Each Datei In Dateiliste

'Datei Ausgeben
Debug.Print Datei.Name

Set rng = ActiveSheet.Range("D2:D292").Find(what:=Datei.Name, LookIn:=xlValues, LookAt:=xlWhole)
If Not rng Is Nothing Then
Datei.Name = Replace(Datei.Name, rng.Value, rng.Offset(, 1).Value)
End If

Next Datei

Else

MsgBox "Dieser Ordner existiert nicht."

End If

End Sub


Das Makro läuft gut durch, er gibt mir auch im Direktbereich alle gefundenen Daten aus, aber er ersetzt nichts. Wo ist der Fehler?

Vielen Dank für eure Unterstützung!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateinamen in Pfad ändern inkl. SVerweis
13.12.2023 21:41:21
Yal
Hallo Parker,

verwende lieber den Early binding, also die Anbindung der Bibliothek über "Extras", "Verweise..."

Eigentlich sollte dein Code funktionieren (nur kosmetische Anpassungen):
Sub Ordner_Auslesen()

'Unter Anbindung der Bibliothek (Menü "Extras", "Verweise...")
'Microsoft Scripting Runtime
Dim fso As New FileSystemObject
Dim Treffer As Range
Dim Verzeichnis As Folder
Dim Datei As File

'Pfad auslesen
On Error Resume Next
Set Verzeichnis = fso.GetFolder(ActiveSheet.Range("A1").Value)
If Verzeichnis Is Nothing Then
MsgBox "Pfad in A1 nicht gültig."
Exit Sub
End If
'Alle Dateien des Ordners durchgehen
For Each Datei In Verzeichnis.Files
Set Treffer = Nothing
Set Treffer = ActiveSheet.Range("D2:D292").Find(what:=Datei.Name, LookIn:=xlValues, LookAt:=xlWhole)
If Treffer Is Nothing Then
Debug.Print Datei.Name & " in der Liste nicht gefunden."
Else
Debug.Print Datei.Name,
Datei.Name = Replace(Datei.Name, Treffer.Value, Treffer.Offset(, 1).Value)
Debug.Print "ist durch " & Datei.Name & "ersetzt worden"
End If
Next Datei
End Sub


VG
Yal
Anzeige
AW: Dateinamen in Pfad ändern inkl. SVerweis
14.12.2023 09:07:36
Parker
Hallo Yal ,

VIELEN DANK für deinen Code! Das wichtigste daran war wohl der Debug.Print. Damit konnte ich nämlich feststellen, dass in meiner Excel-Liste 1 Buchstabe nicht mit denen im Ordner übereingestimmt hat und der Code deshalb nichts gefunden hat. -.-

Danke nochmals für die Unterstützung!

VG

Parker

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige