Dateinamen nach Kriterium umbenennen
#1
Hallo liebe Leute,

ich habe folgendes Problem. In dem  Ordner C:\Sammlung  von mir befinden sich Dateien von mir, dessen Namen folgendes Format besitzen:
Name_001.txt, Name_002.txt, Name_003.txt, Name_004.txt usw.

Wie schaffe ich es mittels VBA, dass alle Dateien die eine gerade Zahl in ihrem Namen haben, umbenannt werden.
Name_002.txt soll zu Neu_002.txt werden, Name_004.txt zu Neu_004.txt usw.

Da ich wenig Ahnung von VBA habe wäre ich sehr dankbar von euch den entsprechenden Code zu erhalten.
Top
#2
Hi Nora,

auf deine Frage kann ich dir fachlich leider keine Antwort geben. Mir ist aber beim Lesen deines Beitrags aufgefallen, dass du deine Daten auf Laufwerk C speicherst. Hier möchte ich dir den Tipp geben, dass du dir eine separate Partition anlegst - z.B. Lw D und dort alle deine Dateien ablegst. Im Falle eines Crashs deines Betriebssystems sind in der Regel alle Daten futsch und du hast dann die mühevolle Kleinarbeit, deine (hoffentlich) gesicherten Daten vom Stick, DVD usw. wieder zu rekonstruieren. Und bei nicht gesicherten Dateien....   :93: Angrysmiley :92: :69:
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
(06.12.2015, 16:10)Nora Fernandez schrieb: Hallo liebe Leute,

ich habe folgendes Problem. In dem  Ordner C:\Sammlung  von mir befinden sich Dateien von mir, dessen Namen folgendes Format besitzen:
Name_001.txt, Name_002.txt, Name_003.txt, Name_004.txt usw.

Wie schaffe ich es mittels VBA, dass alle Dateien die eine gerade Zahl in ihrem Namen haben, umbenannt werden.
Name_002.txt soll zu Neu_002.txt werden, Name_004.txt zu Neu_004.txt usw.

Da ich wenig Ahnung von VBA habe wäre ich sehr dankbar von euch den entsprechenden Code zu erhalten.

Hallo Nora,
Suche einmal in der vba-Hilfe nach 'filesystemobject', dort gibt auch viele Beispiele, wie diese Funktionen auch für rename eingesetzt werden kann.
Top
#4
@Fennek:
Jemandem, der wenig bis gar keine Ahnung von VBA hat, Selbststudium des FileSystemObjekts in der VBA-Hilfe zu empfehlen, dürfte zum Scheitern verurteilt sein.

@Nora:
Wenn die Umbenennung wirklich so simpel per Algorithmus ermittelbar ist, würde ich mir zunächst eine Umbenennungstabelle mit einfachen Formeln erstellen und dann mittels VBA die Name As Anweisung benutzen.
(Formeln aus Zeile 3 nach unten ziehen)

AB
1OrdnerJ:\Sammlung\
2Datei altDatei neu
3Name_001.txtName_001.txt
4Name_002.txtNeu_002.txt
5Name_003.txtName_003.txt
6Name_004.txtNeu_004.txt
7Name_005.txtName_005.txt
8Name_006.txtNeu_006.txt
Formeln der Tabelle
ZelleFormel
A3="Name_"&TEXT(ZEILE(A1);"000")&".txt"
B3=WENN(REST(--(TEIL(A3;6;3));2)=1;A3;"Neu_"&TEIL(A3;6;7))

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Makro:
Sub NeuerName()
Dim Zeile As Long, cnt As Long
Zeile = Cells(Rows.Count, 1).End(xlUp).Row
For cnt = 4 To Zeile Step 2
  Name Cells(1, 2) & Cells(cnt, 1) As Cells(1, 2) & Cells(cnt, 2)
Next
End Sub

(Etwas einfacher als das FileSystemObjekt)

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
... und ich würde Excel nicht zweckentfremdem, nur weil s sich um *.xls*-Files handelt. Es gibt so schöne Rename-Tools kostenlos im Netz! Ich selbst verwende Total Commander und bin höchst zufrieden damit, auch wenn das Umbenennen-Tool nur eine von vielen Annehmlichkeiten ist.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#6
Aber Du musst doch zugeben, Günther, dass meine Variante in ihrer Schlichtheit fast schon hübsch ist.  :19:
(und es sind noch nicht mal *.xls*)
In meinem Code wäre es tatsächlich als seltenes Beispiel sinnvoll, ein On Error Resume Next einzustreuen, falls eine Datei nicht gefunden wird.

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
Ralf, ich gebe dir wirklich in jedem Punkt Recht.
Ich freue mich über solche Fragen genau so wie "Ich möchte mit Excel einen lange Text schreiben, am besten so etwas, wie einen Serienbrief". So etwas kommt ja auch immer wieder mit schöner Regelmäßigkeit. :05:
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#8
Hi,

(06.12.2015, 20:34)RPP63 schrieb: Aber Du musst doch zugeben, Günther, dass meine Variante in ihrer Schlichtheit fast schon hübsch ist.  :19:

die Frage ist nur, wie bekommt Nora nun mit der Liste in Excel die Dateien auf der Festplatte umbenannt?
Top
#9
Hi Ralf!
Das umfangreiche Makro steht doch darunter.
Probiere es doch einfach mal aus, wie eben geschrieben, zur "Sicherheit" incl. On Error Resume Next.

Sub NeuerName()
Dim Zeile As Long, cnt As Long
On Error Resume Next
Zeile = Cells(Rows.Count, 1).End(xlUp).Row
For cnt = 4 To Zeile Step 2
  Name Cells(1, 2) & Cells(cnt, 1) As Cells(1, 2) & Cells(cnt, 2)
Next
End Sub

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
#10
Hi Ralf,

(06.12.2015, 21:46)RPP63 schrieb: Das umfangreiche Makro steht doch darunter.

ok, jetzt habe ich mir das Makro angeschaut und auch verstanden, was es macht.
Top


Gehe zu:


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