two-ak-two
Goto Top

Einzelne Dateien in Dateiliste umbenennen durch neuen Wert (Namen) aus einer Zelle

Guten Tag,

ich möchte gerne in einer Mappe.xls, die folgendes beinhaltet (Anfang ab Zeile 5):

Z5S2=Name.pdf (der vorhandene Dateiname ist als Wert bekannt) Z5S6=X:\..\..\..\ (nur der Pfad zu Z5S2 ist als Wert bekannt) Z5S9=Namegeaendert.pdf (neuer Dateiname wird bestimmt)

-den vorhandenen Dateinamen auf der Festplatte durch den neuen Dateinamen der manuell in der Excell Liste in Zelle Z5S9 vergeben wird, ändern.

Das Script sollte ohne Fehler bis zur letzen Zeile abarbeiten auch wenn kein neuer Name manuell eingetragen wird.


Vielen Dank für die Tipps

Content-Key: 303762

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

Printed on: May 5, 2024 at 16:05 o'clock

Member: colinardo
Solution colinardo May 06, 2016 updated at 13:07:28 (UTC)
Goto Top
Hallo two-ak-two, Willkommen auf Administrator.de!

Das gewünschte erreichst du z.B. mit folgendem kommentierten Code.
Sub RenameFiles()
    'Variablen  
    Dim cell As Range, strCurrentFilePath As String, strNewFilePath As String, fso As Object
    'Objekte  
    Set fso = CreateObject("Scripting.FileSystemObject")  
    ' In aktuellem Sheet  
    With ActiveSheet
        'Ermittle belegte Zellen in Spalte B ab B5 und iteriere über sie  
        For Each cell In .Range("B5:B" & .Cells(Rows.Count, "B").End(xlUp).Row)  
            ' Ist der Dateiname nicht leer dann mach weiter  
            If cell.Value <> "" Then  
                'setze aktuellen Pfad mit Dateinamen zusammen Spalte 6 und 2  
                strCurrentFilePath = fso.BuildPath(cell.Offset(0, 4).Value, cell.Value)
                'setze neuen Pfad mit Dateinamen zusammen Spalte 6 und 9  
                strNewFilePath = fso.BuildPath(cell.Offset(0, 4).Value, cell.Offset(0, 7).Value)
                ' Wenn Datei existiert benenne sie um  
                If fso.FileExists(strCurrentFilePath) Then
                    On Error Resume Next
                    'Datei umbenennen  
                    fso.MoveFile strCurrentFilePath, strNewFilePath
                    'Im Fehlerfall Meldung ausgeben  
                    If Err.Number <> 0 Then
                        MsgBox "FEHLER:" & vbNewLine & "Quelle: " & strCurrentFilePath & vbNewLine & "Ziel: " & strNewFilePath & vbNewLine & Err.Description, vbExclamation, "Fehler beim umbenennen"  
                    End If
                End If
            End If
        Next
    End With
    Set fso = Nothing
End Sub
Grüße Uwe
Member: two-ak-two
two-ak-two May 06, 2016 at 14:29:37 (UTC)
Goto Top
Hallo,
Dankeschön für die Begrüßung.

Vielen Dank für das super Script und ich wünsche ein schönes Wochenende.
Ich erlaube mir das jetzt:
Einfach Laser, zack und fertig face-smile

Guten Tag