Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeichen in Dateinamen ersetzen

Zeichen in Dateinamen ersetzen
10.04.2018 11:25:20
Sergej
Hallo Leute,
ich habe in einem Verzeichnis D:\Daten\ viele Dateien liegen. Folgendes möchte ich per VBA erreichen:
Es sollen nur bei PDF-Dateien, die exakt 22 Zeichen in der Dateiname (ohne Dateiendung gerechnet) haben, die Stellen 1, 20, 21 und 22 durch ein Raute-Zeichen ersetzt werden.
Beispiel vorher: 2_KUN_080_00_40258_--0.pdf
Beispiel nachher: #_KUN_080_00_40258_###.pdf
Wie mache ich das bitte?
Besten Dank vorab..
Gruß Sergej
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeichen in Dateinamen ersetzen
10.04.2018 11:52:24
Daniel
HI
probier mal, es sollte halt sicher sein, dass die neu entstandenen Dateinamen ebenfalls eindeutig sind:

Sub test()
Dim Datei As String
Dim Pfad As String
Dim NameNeu As String
Dim NameAlt As String
Pfad = "D:\Daten\"
Datei = Dir(Pfad & String(22, "?") & ".pdf")
Do While Datei  ""
If Right(Datei, 7)  "###.pdf" Then
NameAlt = Pfad & Datei
NameNeu = Pfad & "#" & Mid(Datei, 2, 18) & "###.pdf"
Name NameAlt As NameNeu
End If
Datei = Dir
Loop
End Sub
gruß Daniel
Anzeige
AW: Zeichen in Dateinamen ersetzen
10.04.2018 19:35:02
Sergej
Hallo Daniel,
es funktioniert sehr gut.
Danke!
Gruß,
Sergej
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeichen in Dateinamen ersetzen mit VBA


Schritt-für-Schritt-Anleitung

Um Zeichen in Dateinamen per VBA zu ersetzen, folge diesen Schritten:

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

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" und wähle Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub test()
        Dim Datei As String
        Dim Pfad As String
        Dim NameNeu As String
        Dim NameAlt As String
    
        Pfad = "D:\Daten\"
        Datei = Dir(Pfad & String(22, "?") & ".pdf")
    
        Do While Datei <> ""
            If Right(Datei, 7) <> "###.pdf" Then
                NameAlt = Pfad & Datei
                NameNeu = Pfad & "#" & Mid(Datei, 2, 18) & "###.pdf"
                Name NameAlt As NameNeu
            End If
            Datei = Dir
        Loop
    End Sub
  4. Ändere den Pfad, falls deine Dateien in einem anderen Verzeichnis liegen.

  5. Starte das Skript: Drücke F5 oder gehe zu Run > Run Sub/UserForm.

Dieses Skript ersetzt die Zeichen 1, 20, 21 und 22 in den Dateinamen von PDF-Dateien, die genau 22 Zeichen lang sind (ohne Dateiendung).


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Lösung: Überprüfe den Pfad. Stelle sicher, dass der angegebene Ordner und die Dateien existieren.
  • Fehler: "Zugriff verweigert"

    • Lösung: Stelle sicher, dass Excel die erforderlichen Berechtigungen hat, um auf die Dateien im angegebenen Verzeichnis zuzugreifen.
  • Fehler: Unerwartetes Verhalten des Skripts

    • Lösung: Vergewissere dich, dass keine Dateien mit dem Namen "###.pdf" bereits existieren, da dies zu Konflikten führen kann.

Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch Batch-Dateien oder PowerShell nutzen, um ähnliche Aufgaben durchzuführen. Hier ein einfaches Beispiel mit PowerShell:

Get-ChildItem "D:\Daten\" -Filter "*.pdf" | Where-Object { $_.Name.Length -eq 26 } | 
ForEach-Object { 
    $newName = $_.Name.Substring(0,1) + "#" + $_.Name.Substring(1,18) + "###.pdf" 
    Rename-Item $_.FullName -NewName $newName 
}

Diese Methode ermöglicht dir das gleiche Ergebnis, ohne den VBA-Editor zu verwenden.


Praktische Beispiele

Hier sind einige Beispiele, wie das VBA-Skript funktioniert:

  • Vorher: 2_KUN_080_00_40258_--0.pdf

  • Nachher: #_KUN_080_00_40258_###.pdf

  • Vorher: Lorem_Ipsum_12345678901234567890.pdf

  • Nachher: #orem_Ipsum_123456789012345678###.pdf

Diese Beispiele verdeutlichen, wie das Skript spezifische Zeichen in den Dateinamen ersetzt.


Tipps für Profis

  • Backup der Dateien: Erstelle immer eine Sicherungskopie deiner Dateien, bevor du das Skript ausführst.
  • Testlauf: Führe das Skript zunächst in einem Testverzeichnis aus, um sicherzustellen, dass es wie gewünscht funktioniert.
  • Erweiterungen: Du kannst das Skript erweitern, um auch andere Dateiformate oder Zeichen zu bearbeiten, indem du die Filterbedingungen anpasst.

FAQ: Häufige Fragen

1. Kann ich das Skript anpassen? Ja, du kannst die Zeichen, die ersetzt werden sollen, sowie den Dateityp im Skript anpassen.

2. Funktioniert das Skript in Excel 2016? Ja, dieses VBA-Skript funktioniert in Excel 2016 und allen neueren Versionen.

3. Wie kann ich das Skript stoppen, wenn es zu lange dauert? Wenn das Skript läuft, kannst du den VBA-Editor schließen oder Excel über den Task-Manager schließen, um den Prozess zu stoppen.

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