AW: Sehr viele Dateien umbenennen aus Zelle
04.06.2024 09:35:42
daniel
HI
nö, eigentlich sollte das funktionieren.
hast du mal weiter getestet?
sind die erzeugten Dateinamen (DateiNeu) korrekt?
betrifft der Fehler grundsätzlich alle Dateien (Fehler tritt schon beim ersten Schleifenumlauf auf) oder tritt er erst später auf?
funktioniert der Code, wenn du ihn mal in einem "einfachen" Verzeichnis, also auf deiner Festplatte (C:\Test}\... oder so ) ausführst?
könnte es sein, dass eine der Dateien von jemand anderem geöffnet ist und diese daher nicht umbenannt werden kann?
wenn du die alte Datei nochmal testen willst, ändere bitte diese Zeile noch so ab:
DateiNeu = Ordner & PNr & " " & Datei
zum testen im Einzelstep setzte bitte einen Haltepunkt nach dem GetOpenFilename
wenn das NAME das Problem ist, könntest du es auch so probieren:
wobei das vermutlich länger dauert, da jede Datei geöffnet wird und gespeichert wird.
Sub Umbenenen()
Dim Dateien
Dim DateiAlt
Dim DateiNeu As String
Dim Datei As String
Dim Ordner As String
Dim PNr As Variant
Dim wb as workbook
Dateien = Application.GetOpenFilename(MultiSelect:=True)
If VarType(Dateien) = vbBoolean Then Exit Sub 'abbruch
For Each DateiAlt In Dateien
If DateiAlt Like "*.xls?" Then
Ordner = Left(DateiAlt, InStrRev(DateiAlt, "\"))
Datei = Mid(DateiAlt, InStrRev(DateiAlt, "\") + 1)
Set wb = Workbooks.Open DateiAlt
PNr = wb.Sheets("Tabelle1").Range("H1").value
If Not IsError(PNr) Then 'prüfung, ob Evaluate den Wert ermitteln konnte (wenn nicht, anderer Blattname)
If PNr Like "?????" Then ' Prüfung Projektnummer korrekt (5stellig)
DateiNeu = Ordner & PNr & " " & Datei
wb.SaveCopyAs DateiNeu
wb.Close false
kill DateiAlt 'alte datei löschen
else
wb.Close false
End If
else
wb.Close false
End If
End If
Next
End Sub
Gruß Daniel