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

datei umbenennen

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: datei umbenennen
24.05.2007 08:19:00
haw
Hallo Marco,
das angeführte Makro funktioniert, der Fehler liegt in der Definition des neuen Dateinamens.
Im alten ist auch der Pfad angeführt, wenn du da vorne einen Teil nimmst und hinten eine Teil, speichert er die umbenannten Dateien in den momentan aktiven Ordner, da der Pfad fehlt.
Lass das akro aus einer leeren Tabelle laufen, dann werden alte und neue Namen nebeneinander gelistet und du siehst, was los ist.
Sub Listen() Dim Pfad As String Dim Datei As String Dim i As Integer With Application.FileSearch .LookIn = "Dein Pfad\Ordner " .Filename = "*.CSV" If .Execute > 0 Then For i = 1 To .FoundFiles.Count alt = .FoundFiles(i) neu = Left(.FoundFiles(i), 4) & Right(.FoundFiles(i), 7) Cells(i, 1).Value = alt Cells(i, 2).Value = neu Next i End If End With End Sub


Hier das Makro, das den Pfad mitnimmt:

Sub Umbenennen() Dim Pfad As String, alt$, neu$ Dim Datei As String Dim i As Integer With Application.FileSearch .LookIn = "C:\Daten\#test" .Filename = "*.CSV" If .Execute > 0 Then For i = 1 To .FoundFiles.Count alt = .FoundFiles(i) neu = Left(alt, Len(alt) - Len(Dir(alt))) neu = neu & Left(Dir(.FoundFiles(i)), 4) & Right(Dir(.FoundFiles(i)), 7) Name (alt) As (neu) Next i End If End With End Sub


Gruß
Heinz

Anzeige
AW: datei umbenennen
24.05.2007 08:19:52
Matthias
Hallo Marco,
kopiere erstmal diesen Code in ein Modul einer neuen Mappe:

Option Explicit
Const Pfad = "D:\DeinOrdner" 'Anpassen!
Sub Einlesen()
Dim fn As String, i As Long
With Sheets(1)
i = 1
Range("A:B").ClearContents
fn = Dir(Pfad & "\*.csv")
Do While fn  ""
.Cells(i, 1) = fn
i = i + 1
fn = Dir()
Loop
End With
End Sub
Sub Umbenennen()
Dim fnALT As String, fnNEU As String, i As Long
With Sheets(1)
i = 1
Do
fnALT = Pfad & "\" & .Cells(i, 1)
fnNEU = Pfad & "\" & .Cells(i, 2)
Name fnALT As fnNEU
i = i + 1
Loop Until .Cells(i, 1) = ""
End With
End Sub


Dann starte das Makro Einlesen, dadurch wird die Dateiliste in Spalte A erzeugt.
Nun schreibe in B1 diese Formel rein:

Tabelle1
 AB
1wert#zwischendaten_1x.csvwert_1x.csv
Formeln der Tabelle
B1 : =WECHSELN(A1;"#zwischendaten";"")
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
und ziehe die Formel nach unten bis zum Ende der Liste (Doppelklick auf die untere rechte Ecke der Zelle B1).
Nun hast du die neuen Dateinamen in Spalte B und musst nur noch das Makro Umbenennen aufrufen.
Viel Erfolg,
Matthias

Anzeige
AW: datei umbenennen
24.05.2007 08:35:00
AndrRo
Hallo Marco,
i am back,
ich habe den Fehler gefunden.
neu = Left(.FoundFiles(i), Len(Pfad) + 1 + 4) & Right(.FoundFiles(i), 7)
Der Dateiname beinhaltet auch den Pfad, den hatte ich abgeschnitten, Len(Pfad)+1 gibt den Anzahl Pfad wieder +1 ist für das "\" Zeichen. +4 ist die Anzahl der Zeichen, die links im Datei-Namen stehen, Rechts hat sich nicht geändert. So funktioniert es bei mir. Ich habe die Ordnerangabe auch etwas variabler gestaltet.
gruss
Andreas

Sub Umbenennen()
Dim Pfad As String
Dim Datei As Variant
Dim i As Integer
Datei = Application.GetOpenFilename("CSV Dateien (*.CSV),(*.CSV)", , "Änderung der CSV-Datei  _
im Ordner")
If Datei = "Falsch" Or Datei = False Then End
Pfad = Left(Datei, InStrRev(Datei, "\") - 1)
With Application.FileSearch
.LookIn = Pfad
.Filename = "*.CSV"
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
alt = .FoundFiles(i)
neu = Left(.FoundFiles(i), Len(Pfad) + 1 + 4) & Right(.FoundFiles(i), 7)
Debug.Print alt
Debug.Print neu
'Name (alt) As (neu)
Next i
End If
End With
End Sub


Anzeige
AW: kleine Korrektur
24.05.2007 08:37:00
AndrRo
ich hatte noch die debug.Print aktiviert, und die umbenennung deaktiert. so läufts:

Sub Umbenennen()
Dim Pfad As String
Dim Datei As Variant
Dim i As Integer
Datei = Application.GetOpenFilename("CSV Dateien (*.CSV),(*.CSV)", , "Änderung der CSV-Datei   _
_
im Ordner")
If Datei = "Falsch" Or Datei = False Then End
Pfad = Left(Datei, InStrRev(Datei, "\") - 1)
With Application.FileSearch
.LookIn = Pfad
.Filename = "*.CSV"
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
alt = .FoundFiles(i)
neu = Left(.FoundFiles(i), Len(Pfad) + 1 + 4) & Right(.FoundFiles(i), 7)
Name (alt) As (neu)
Next i
End If
End With
End Sub


Anzeige
Vielen Dank!
24.05.2007 09:11:09
Marco
Hallo zusammmen!
Vielen Dank an alle Beteiligten!
Alles funktioniert Bestens!
gruß marco

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige