Excel VBA Textdateien umbenennen
#1
Hallo liebes Forum,

ich hatte wieder eine tolle Idee doch leider fehlen mir erneut die Befehle/ Kenntnisse um diese zu realisieren. Ich vermute der Code dazu ist ziemlich simpel und kurz.

Folgendes:

Ich habe beispielsweise 5 Teile. Zu jedem Teil gehören 9 Textdateien. Die Dazugehörigkeit identifiziere ich über die Uhrzeit.
Beispiel:
1. Teil wurde um 08:01:45 erstellt. Die 9. Textdatei wurde 5 Sekunden vorher, also um 08:01:40 erstellt.
Die 8. um 08:01:37
Die 7. um 08:01:35
.
.
.
Die 1. um 08:01:15

Jetzt sollen diese 9 Textdateien umbenannt werden.
Aktuell ist ihre Bezeichnung: 20161201_MON_080145.txt
JahrMonatTag_MON_StundeMinuteSekunde.txt

Die Seriennummern stehen bereits in einer Spalte.

Ich habe hier mal eine Beispieldatei hochgeladen.

Also schlussendlich ist mir nur wichtig den Befehl zu kennen, um den Namen einer Textdatei mit Excel VBA umzubenennen.
Daraus kann ich ja eine Schleife basteln die diese Aufgabe für alle Dateien durchführt.


Angehängte Dateien
.xlsm   Testdatei für Forum.xlsm (Größe: 51,11 KB / Downloads: 2)
Top
#2
Guten Morgen,

ich beziehe mich auf folgende Aussage:

"Also schlussendlich ist mir nur wichtig den Befehl zu kennen, um den Namen einer Textdatei mit Excel VBA umzubenennen.
Daraus kann ich ja eine Schleife basteln die diese Aufgabe für alle Dateien durchführt."

Um dies zu erreichen reicht folgender Befehl:

Code:
Public Sub umbenennen()
Name "C:\test\mappe1.csv" As "C:\test\mappe1.txt"
End Sub
Quelle: http://www.excel-inside.de/vba-loesungen...en-per-vba
Top
#3
Super danke schon einmal.

Hab noch weiter gegoogelt und habe jetzt einen Code geschrieben der mir meine Textdateien wie gewünscht umbenennt.

Weiß jetzt jemand wie man, Textdateien in Unterordner verschiebt?
Die Textdateien heißen jetzt so:

Seriennummer_xxx_1
Seriennummer_xxx_2
...
Seriennummer_xxx_9

Jetzt habe ich Unterordner, die mit der Seriennummer gekennzeichnet sind. Wie schaffe ich es die 9 Textdateien mit der entsprechenden Seriennummer in die passenden Ordner zu verschieben?


Mfg

Christian
Top
#4
Moin!
Scripting.FileSystemObject (funktioniert nur auf Windows-Geräten, nicht beim Mac):
http://www.gtkdb.de/index_29_1840.html
Um ein Schleifchen drumherum zu binden, reichen Deine Infos (noch) nicht.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#5
Hi,

es sollen lediglich immer 9 Textdateien in Unterordner (1,2,3,...n) verschoben werden. Das reicht mir.


mfg

Christain
Top
#6
Zitat:Das reicht mir.

Mir aber nicht.
Wie heißen die Dateien mittlerweile und wo genau liegen sie jetzt?
Dein Code könnte Licht ins Dunkle bringen!
Wie lauten die konkreten Unterverzeichnisse? 1, 2, 3, … ?

Lasse Dir nicht alles aus der Nase ziehen!

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#7
Tongue 
Die Textdateien sind jetz umbenannt in:
1_1
1_2
...
1_9

2_1
2_2
...
2_9
....

Die Ordner sind im Verzeichnis C:\test\
Und die Namen der Ordner sind 1, 2, 3...

Die Textdateien befinden sich wie die Ordner im Verzeichnis C:\test\



Jetzt sollen alle Textdateien die mit 1 beginnen in den Ordner "1"
Also 9 Stück.

Mehr Informationen habe ich nicht, hoffe das reicht dir :19:
Top
#8
Code:
Sub TextDateienVerschieben()


Dim objFileSystem As Object
Set objFileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Dim AnzahlTeile As String
Dim i As Integer, j As Integer

AnzahlTeile = Tabelle4.Range("H1")

For i = 1 To AnzahlTeile

   For j = 1 To 9
   
       objFileSystem.MoveFile Tabelle2.Range("Ordner") & "\" & i & "_" & j & ".txt", Tabelle2.Range("Ordner") & "\" & i & "\"
   
       Set objFileSystem = Nothing
   
   Next j

Next i

End Sub
Ich melde mich nocheinmal ich habe jetzt an folgendem Code gesessen. Ich habe den Code aus dem Link den du gepostet hast für meine Bedürfnisse angepasst.
In Tabelle2.Range("Ordner") liegt der Quellpfad.
i dient als Laufvariable für die Ordnerzuordnung und j, dafür dass die Dateien 1-9 verschoben werden sollen.
Beim ausführen wird die Zeile " Set objFileSystem = WScript.CreateObject("Scripting.FileSystemObject")  "  gelb markiert und die Fehlermeldung "Laufzeitfehler '424' Objekt erfolderlich" wird ausgegeben. 
Kann mir jemand helfen?
Top
#9
(01.12.2016, 14:21)xChristianx schrieb:
Code:
Sub TextDateienVerschieben()


Dim objFileSystem As Object
Set objFileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Dim AnzahlTeile As String
Dim i As Integer, j As Integer

AnzahlTeile = Tabelle4.Range("H1")

For i = 1 To AnzahlTeile

   For j = 1 To 9
   
       objFileSystem.MoveFile Tabelle2.Range("Ordner") & "\" & i & "_" & j & ".txt", Tabelle2.Range("Ordner") & "\" & i & "\"
   
       Set objFileSystem = Nothing
   
   Next j

Next i

End Sub
Ich melde mich nocheinmal ich habe jetzt an folgendem Code gesessen. Ich habe den Code aus dem Link den du gepostet hast für meine Bedürfnisse angepasst.
In Tabelle2.Range("Ordner") liegt der Quellpfad.
i dient als Laufvariable für die Ordnerzuordnung und j, dafür dass die Dateien 1-9 verschoben werden sollen.
Beim ausführen wird die Zeile " Set objFileSystem = WScript.CreateObject("Scripting.FileSystemObject")  "  gelb markiert und die Fehlermeldung "Laufzeitfehler '424' Objekt erfolderlich" wird ausgegeben. 
Kann mir jemand helfen?

Natürlich sollte ich vorher WScript entfernen. Sry mit Option Explicit und Sub und Private Sub komm ich noch nicht so klar. :19:

Jetzt funktioniert alles wie es soll
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste