Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
608to612
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
608to612
608to612
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kürzen von Dateinamen

Kürzen von Dateinamen
07.05.2005 18:32:26
Dateinamen
Hallo,
in einem Verzeichnis stehen sehr viele Excel und Word- Dateien mit sehr langen Dateinamen. Ich möchte nun mittels VBA alle Dateinamen auf 8 Stellen kürzen.
Hat jemand eine Idee?
Gruß
Sonja

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mit Dos
07.05.2005 18:43:13
Reinhard
Hallo Sonja,
muss es vba sein? Mit Dos gehts schneller.
erstell dir in dem Verzeichnis eine Datei namens name.bat
in die schreibst du rein
rename *.xls ?.xls
rename *.doc ?.doc
Dann die name.bat ausführen, fertig
Gruß
Reinhard
AW: mit Dos
07.05.2005 19:00:26
Sonja
Für den Anfang hilft es mir, Danke für den Tipp!
Wenn ich das mit VBA machen könnte, hätte es den Vorteil, das ich dieses mit einem anderen VBA Script laufen lassen könnte. Ich würde diese dann einfach hintereinander hängen.
Gruß
Sonja
AW: mit Dos
07.05.2005 19:03:59
Reinhard
Hallo Sonja,

Sub kürzen()
Shell ("c:\excelword\name.bat")
End Sub

Gruß
Reinhard
Anzeige
bzw.
07.05.2005 19:06:33
Reinhard
Hallo Sonja

Sub kürzen()
Close
Open "c:\excelword\name.bat" For Output As #1
Print #1, "rename *.xls ?.xls"
Print #1, "rename *.doc ?.doc"
Close
Shell ("c:\excelword\name.bat")
End Sub

Gruß
Reinhard
AW: bzw.
07.05.2005 19:11:36
Ramses
Hallo Reinhard
... hast du das mal ausprobiert :-) ?
Gruss Rainer
AW: bzw.
08.05.2005 16:27:20
Reinhard
Hallo Rainer,
ja, die .bat hatte ich ausprobiert, hatte problemlos finktioniert, warum es jetzt da mit shell nicht klappt, k.A Dateiname falsch oder doppelt? Tja nu, Schulterzuck.
Mal schauen ob es mit
lfnfor on
for %%a in ( *.xls ) do rename %%a ?.xls
besser klappt.
Gruß
Reinhard
Anzeige
AW: bzw.
08.05.2005 16:57:58
Ramses
Hallo Reinhard
Ich weiss nicht unter welchem Betriebssystem du das probiert hast, unter XP funktioniert das weder aus einem BAT, noch aus der CMD-Box noch aus einer Shell.
Meiner Meinung nach kann das eigentlich auch nicht funktionieren, weil du mit "?.xls" das BS eigentlich anweist, die ersten 8 Buchstaben der jeweiligen zu kopierenden Datei zu verwenden, daher muss es eigentlich spätestens bei der zweiten zu kopierenden Datei zu einem Fehler kommen.
Gruss Rainer
AW: bzw.
08.05.2005 19:08:42
Reinhard
Hallo Rainer,
mit meinem Win98, da klappt es wunderbar mit der Batch, nur wenn ich die batch über Excelshell starte kommt es zu der Fehlermeldung , in etwa so: Fehlende Datei oder Datei nicht gefunden und es wird nichts "renamed"
Persönlich nutze ich Dos immer wenn ich z.B. schnell mal alle Exceldateien eines Verzeichnisses oder wie hier der gesamten Platte C brauche, dann nehm ich das da:
dir c:\*.xls /b/s/-p > tools.txt
Und bei Win XP klappt dieses auch nicht? Ich habe jett nur die Doshilfe zu 98 als Datei hier, nicht die von XP, kann also nichts nachvollziehen warum es dort nicht geht. Gruß Reinhard
Anzeige
AW: Kürzen von Dateinamen
07.05.2005 19:10:59
Dateinamen
Hallo
Probier mal das:
Option Explicit

Sub Rename_Files()
Dim tmpName As String, tarName As String, tarPath As String
Dim myFSO As Object, myFld As Object, myFldFiles As Object, myFile As Object
Dim docCounter As Integer, xlsCounter As Integer, renCounter As Integer
Dim i As Integer, fileCount As Integer
Dim myErr As Integer
On Error GoTo myErrorHandler
'Erstellen des FileSystemObjectes
Set myFSO = CreateObject("Scripting.FileSystemObject")
tarPath = InputBox("Bitte Verzeichnis angeben, indem die Daten umebeannt werden sollen", "Rename Action", "C:\DemoVerz")
If Not myFSO.folderexists(tarPath) Then
MsgBox "Der Ordner :"" " & tarPath & " "" existiert nicht.", vbCritical + vbOKOnly, "Abbruch"
Exit Sub
End If
docCounter = 0
xlsCounter = 0
renCounter = 0
myErr = 1
'Name schleife starten
Set myFld = myFSO.GetFolder(tarPath)
Set myFldFiles = myFld.Files
'Tage ab wann gelöscht werden soll
For Each myFile In myFldFiles
tmpName = myFile.Name
If Right(tmpName, 3) = "doc" Then
tarName = Left(tmpName, 8) & ".doc"
ElseIf Right(tmpName, 3) = "xls" Then
tarName = Left(tmpName, 8) & ".xls"
End If
NameRestart:
myFile.Name = tarName
renCounter = renCounter + 1
Next
MsgBox "Es wurden " & renCounter & " Dateien umbenannt"
'Fehlerbehandlung Ende
myErrorExit:
Exit Sub
'Fehlerbehandlung starten
myErrorHandler:
Select Case Err
Case 58
If Right(tmpName, 3) = "doc" Then
tarName = Left(tarName, 7) & docCounter & ".doc"
docCounter = docCounter + 1
ElseIf Right(tmpName, 3) = "xls" Then
tarName = Left(tarName, 7) & xlsCounter & ".xls"
xlsCounter = xlsCounter + 1
End If
Resume NameRestart
Case Else
MsgBox Err.Number & ": " & Err.Description, vbCritical + vbOKOnly, "Unerwarteter Fehler  >  Abbruch Rename Action"
Resume myErrorExit
End Select
End Sub

Gruss Rainer
Anzeige
AW: Kürzen von Dateinamen
07.05.2005 19:34:45
Dateinamen
Hallo Rainer,
vielen Dank für Dein Makro, es funktioniert leider nicht, es kommt der Fehler:
"5: Ungültiger Prozeduraufruf oder ungültiges Argument"
Gruß
Sonja
AW: Kürzen von Dateinamen
07.05.2005 19:38:19
Dateinamen
Hallo
In welcher Zeile
Gruss Rainer
AW: Kürzen von Dateinamen
07.05.2005 19:46:42
Dateinamen
Habe den Fehler gefunden. Die Excel-Dateiendungen waren in Großbuchstaben geschrieben. Jetzt funktioniert's, DANKE!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige