Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datei umbenennen

Datei umbenennen
13.01.2003 12:49:26
Evolution100
Hi,

ich hätte da eine Frage, ob man das mit Excel und vb realisieren kann!

Ein Job speichert mir jede stunde 2 Dateien zur exakt gleichen zeit ab, wobei hierbei sich der Dateiname ändert!
z.b.

datei1von1201.xls gespeichert um 12:01
datei2.pdf gespeichert um 12:01

nun soll er die Datei2.pdf automatisch in datei1von1201.pdf umbenennen... also in den dateinamen von datei 1 und die erweiterung wie gehabt! gibts da ne einfache möglichkeit?

Danke euch für jeden Tip

Evo

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Klarnamen?
13.01.2003 12:56:17
Michael Scjeffler
Hallo,

bitte Klarnamen!

Gruß

Micha

Re: Datei umbenennen
13.01.2003 12:58:21
Steffen D
Hi,

Beispiel:
wenn du test.xls in meintest.xls umbenennen willst, dann funktioniert es so:

Name ("C:\test\test.xls") As ("C:\test\meintest.xls")

Gruß
Steffen D

Re: Klarnamen?
13.01.2003 13:06:00
Markus
Sorry, (hier is Evo...)

Danke für den umbenenn tip.. aber leider reicht mir das nicht!
der zweite dateiname kann sich ändern!
zb heist er einmal

datei2.pdf
oder
datei3.pdf usw..

er muss die uhrzeit nutzten, wann gespeichert wurde!

Vielleicht weiss noch jemand was

Danke euch

Markus (Evo)

Anzeige
Re: Datei umbenennen
13.01.2003 13:08:39
Norbat
Hi Evo,

versuch's mal über das FileSystemObeject (FSO).

Kleines Beispiel:


Sub p_RenameFile()

Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile "c:\temp\sample01.doc", "c:\temp\sample.doc"
Set fso = Nothing

End Sub

Re: Klarnamen?
13.01.2003 13:17:43
Norbat
Noch einmal...

Mit dem FSO kannst Du Dir auch das Erstelleungsdatum nebst Uhrzeit holen.

Beispiel

...
Set oFile = fso.GetFile("c:\temp\sample.doc")
strDate = oFile.DateCreated

...

Anzeige
Re: Datei umbenennen
13.01.2003 13:21:20
Markus
Hallo Norbat,

auch das funzt leider so nicht!
Oder hab ich mich so schlecht ausgedrückt?

es gibt immer zwei dateien, die die gleiche uhrzeit und datum haben! die zweite datei soll immer den gleichen namen wie die erste annehmen bis auf die endung!
jedoch heist die zweite datei nicht immer gleich!

Hintergrund, wir ziehen hier ein reporting automatisch, welches eine xls und eine pdf datei erzeugt
die xls hat den richtigen namen zb.b
Report_1_vom_12.1_um_1200uhr.xls
die erzeugete pdf datei heisst
report.pdf
nach der aktion (welche dann automatiesiert werden soll) soll sie
Report_1_vom_12.1_um_1200uhr.pdf
heissen

Gruss

Markus

Anzeige
Re: Datei umbenennen
13.01.2003 13:46:32
Norbat
Hi Evo,

das würde ich dann wie folgt machen:
Im Exportverzeichnig eurer Anwenung würde ich immer nur die gerade exportierten Dateien ablegen. Alles andere wir aus dem Ordner in einen Reporting-Ordner verschoben. Jetzt musst Du mit Deinem Script eigentlich nur noch den Namen der Excel-Datei ohne Dateiendung lesen und diesen beim verschieben über die pdf-Datei bügeln.
Das Folder-Object des FSO hat eine Files-Collection. Durch die Läufst Du einfach via For-Each-Schleife durch. So holst Du dir die Namen der Excel- und pdf-Datei.

ciao

Anzeige
Re: Klarnamen?
13.01.2003 14:09:16
Norbat
So sollte es im Groben funktionieren:
Die Excel-Datei wird ohne Umbenennung verschoben. Die PDF-Datei benkommt den Namen der Excel-Datei mit Erstellungsdatum und Uhrzeit.


Sub p_jetza()
Dim oFSO, oFLD, strNewPDFName
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFLD = oFSO.GetFolder("c:\temp\expo")

For Each oFile In oFLD.Files
If LCase(Right(oFile.Name, 3)) = "xls" Then
strNewPDFName = Left(oFile.Name, Len(oFile.Name) - 4) & "_" & Replace(Replace(oFile.DateCreated, ".", ""), ":", "")
oFSO.MoveFile "c:\temp\expo\" & oFile.Name, "c:\temp\expo\report\" & oFile.Name
End If
Next
For Each oFile In oFLD.Files
If LCase(Right(oFile.Name, 3)) = "pdf" Then
oFSO.MoveFile "c:\temp\expo\" & oFile.Name, "c:\temp\expo\report\" & strNewPDFName & ".pdf"
End If
Next
'Clear up
Set oFLD = Nothing
Set oFSO = Nothing

End Sub


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Dateien automatisch umbenennen mit Excel VBA


Schritt-für-Schritt-Anleitung

Um Dateien automatisch umzubenennen, kannst Du das folgende VBA-Skript verwenden. Dieses Skript geht davon aus, dass Du eine Excel-Datei und eine PDF-Datei hast, die zur gleichen Zeit erstellt wurden. Das Skript benennt die PDF-Datei um, um den Namen der Excel-Datei zu übernehmen, jedoch mit der entsprechenden Dateiendung.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke auf Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub p_jetza()
       Dim oFSO As Object, oFLD As Object, strNewPDFName As String
       Set oFSO = CreateObject("Scripting.FileSystemObject")
       Set oFLD = oFSO.GetFolder("C:\temp\expo")
    
       For Each oFile In oFLD.Files
           If LCase(Right(oFile.Name, 3)) = "xls" Then
               strNewPDFName = Left(oFile.Name, Len(oFile.Name) - 4) & "_" & Replace(Replace(oFile.DateCreated, ".", ""), ":", "")
               oFSO.MoveFile "C:\temp\expo\" & oFile.Name, "C:\temp\expo\report\" & oFile.Name
           End If
       Next
    
       For Each oFile In oFLD.Files
           If LCase(Right(oFile.Name, 3)) = "pdf" Then
               oFSO.MoveFile "C:\temp\expo\" & oFile.Name, "C:\temp\expo\report\" & strNewPDFName & ".pdf"
           End If
       Next
    
       ' Clean up
       Set oFLD = Nothing
       Set oFSO = Nothing
    End Sub
  4. Ändere den Pfad in GetFolder("C:\temp\expo"), um auf den Speicherort Deiner Dateien zu verweisen.

  5. Führe das Skript aus, um die Dateien automatisch umzubenennen.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Stelle sicher, dass der angegebene Pfad korrekt ist und die Dateien vorhanden sind.
  • Fehler: "Zugriffsverletzung"

    • Überprüfe die Berechtigungen für den Ordner, in dem Du arbeitest.
  • Lösung: Doppelte Dateinamen

    • Achte darauf, dass die Excel- und PDF-Dateien unterschiedliche Namen haben, um Kollisionen zu vermeiden.

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du auch Excel-Formeln nutzen, um Dateinamen in einer Liste zu generieren. Anschließend kannst Du mit einem Batch-Skript oder PowerShell die Umbenennung durchführen.

Ein einfaches VBA-Makro könnte auch manuell im Excel-Dokument laufen, um die Dateinamen nach einer Excel-Liste zu ändern.


Praktische Beispiele

  1. Beispiel für das Umbenennen von Excel-Dateien:

    Wenn Du eine Excel-Datei namens Report_1_vom_12.1_um_1200uhr.xls hast, wird die zugehörige PDF-Datei in Report_1_vom_12.1_um_1200uhr.pdf umbenannt.

    oFSO.MoveFile "C:\temp\expo\report.pdf", "C:\temp\expo\report\Report_1_vom_12.1_um_1200uhr.pdf"
  2. Umbenennen von mehreren Dateien:

    Du kannst die Schleife im VBA-Skript erweitern, um mehrere Dateien in einem bestimmten Ordner umzubenennen.


Tipps für Profis

  • Verwende Fehlerbehandlung in Deinem VBA-Skript, um unerwartete Probleme zu vermeiden.
  • Teste Deine Skripte in einer sicheren Umgebung, bevor Du sie in der Produktion einsetzt.
  • Du kannst die Excel-Dateierweiterung ändern, indem Du einfach die Zeichenfolge in der MoveFile-Methode anpasst.

FAQ: Häufige Fragen

1. Kann ich das Skript auch für andere Dateiformate verwenden? Ja, Du kannst das Skript anpassen, um andere Dateiformate zu unterstützen, indem Du die entsprechenden Dateiendungen in den Bedingungen änderst.

2. Wie kann ich das Skript automatisch ausführen lassen? Du kannst das Skript mit einem Timer oder beim Öffnen der Excel-Datei ausführen, indem Du das Skript in das Workbook_Open()-Ereignis einfügst.

3. Funktioniert das Skript auch in Excel Online? Das Skript funktioniert nur in der Desktop-Version von Excel, da VBA in Excel Online nicht unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige