Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1316to1320
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
Inhaltsverzeichnis

Konverter über Excel - Dateinamenänderung

Konverter über Excel - Dateinamenänderung
21.06.2013 11:17:55
Detlef
Hallo,
ich wollte für ständige kommende .csv Dateien ein koverter bauen, allerdings komm ich nicht weiter.
Ich will Daten der .csv Datei 1:1 unberührt lassen, allerdings soll der Dateiname geändert werden. Ich habe es mir so gedacht:
In meinem Excelblatt stehen in Spalte A die Aktuellen Dateinamen z.B."testtest.csv"
In Spalte B würde dann direkt daneben der neue Dateiname stehen, und jetzt kommt die besonderheit:
Der neue Dateiname hat einen festen Teil - danach soll er aus der csv Datei in Spalte A das Anfangsdatum auslesen und den Enddatum in Spalte A (also ersten und letzter Eintrag der csv Datei) , dort stehen immer Datumsangaben drin.
Wäre dies möglich per VBA?
Die csv Dateien würden im gleichen Ordner wie das Excelblatt stehen und die neuen CSV-Datei sollen in dem unterorder:"Neu" abgespeichert werden.
Per Button soll er nach allen csv Datei im Ordner suchen und wenn er übereinstimmungen findet dann soll er diese in dem Order "Neu" unter dem neuen Dateinamen abspeichern.
LG
Detlef
Der neue Dateiname würde dann so aussehen: Test_Test_ANFGANSDATUM(YYYYMMDD)_ENDDATUM(YYYMMDD)_TEST_TEST_TEST_TEST.csv

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Konverter über Excel - Dateinamenänderung
22.06.2013 07:24:03
Oberschlumpf
Hi Detlef
Ich werde nicht schlau.
Zeig uns doch mal eine CSV-Datei.
a) Denn du verrätst nicht, in welchem Format das Datum in erster + letzter Zeile steht.
b) und wie kann aus testtest in Spalte A = Test_Test in Spalte B werden?
Wie soll also Excel wissen, dass nach deinem ersten test im Dateinamen ein _ folgen muss?
Und was bedeutet das _TEST_TEST_TEST_TEST am Ende des neuen Dateinamens?
Besser als nur ne Bsp-CSV.Datei wäre also zusätzlich noch ne Bsp-XLS-Datei in der man sehen kann, wie alte und neue Dateinamen aussehen/aussehen sollen.
Grundsätzlich ist deine Frage einfach zu beantworten + zu lösen. Aber es müssen halt ALLE benötigten Informationen vorliegen.
Ciao
Thorsten

Anzeige
AW: Konverter über Excel - Dateinamenänderung
22.06.2013 17:03:38
fcs
Hallo Detlef,
hier ein Makro mit den entsprechenden Funktionalitäten.
Gruß
Franz
Sub CSV_Rename()
Dim wksListe As Worksheet
Dim strCSV_alt As String, strCSV_neu As String, strStart As String, strEnd As String
Dim lngZeile As Long, strVerzeichnis As String, strVerzeichnisNeu As String
Dim wksCSV As Worksheet, wkbCSV As Workbook, intCount As Integer
strVerzeichnis = ActiveWorkbook.Path
Set wksListe = ActiveSheet
strVerzeichnisNeu = strVerzeichnis & Application.PathSeparator & "Neu"
If Dir(Pathname:=strVerzeichnisNeu, Attributes:=vbDirectory) = "" Then
VBA.MkDir Path:=strVerzeichnisNeu
End If
Application.ScreenUpdating = False
With wksListe
For lngZeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row 'stratzeile ggf. anpassen
strCSV_alt = .Cells(lngZeile, 1).Text
strCSV_neu = "Name_Neu" 'Anfang neuer Dateiname
'      strCSV_neu = .Cells(lngZeile, 2).Text 'ggf. Anfang neuer Dateiname aus Spalte B einlesen
If Dir(Pathname:=strVerzeichnis & Application.PathSeparator & strCSV_alt)  "" Then
'CSV öffnen
intCount = intCount + 1
Set wkbCSV = Application.Workbooks.Open( _
Filename:=strVerzeichnis & Application.PathSeparator & strCSV_alt, _
ReadOnly:=True, Local:=True) 'Loacal:=True --> Deutsches Trennzeichen und  _
Zahlenformat _
wird berücksichtigt.
Set wksCSV = wkbCSV.Worksheets(1)
strStart = "": strEnd = ""
With wksCSV
With .Cells(1, 1)
If IsDate(.Text) Then
strStart = Format(CDate(.Text), "YYYYMMDD")
Else
strStart = Format(intCount, "00000000")
End If
End With
With .Cells(.Rows.Count, 1).End(xlUp)
If IsDate(.Text) Then
strEnd = Format(CDate(.Text), "YYYYMMDD")
Else
strEnd = Format(intCount, "00000000")
End If
End With
'Datums und Dateiendung zum neuen Namen hinzufügen
strCSV_neu = strCSV_neu & "_" & strStart & "_" & strEnd & ".csv"
End With
'CSV-Datei wieder schliessen
wkbCSV.Close savechanges:=False
'neuen Dateinamen in Spalte B eintragen
.Cells(lngZeile, 2).Value = strCSV_neu
'Datei löschen, wenn neue Datei schon vorhanden
If Dir(strVerzeichnisNeu & Application.PathSeparator & strCSV_neu)  "" Then
Kill strVerzeichnisNeu & Application.PathSeparator & strCSV_neu
End If
'CSV-Datei mit neuem Namen ins neue Verzeichnis kopieren
VBA.FileCopy Source:=strVerzeichnis & Application.PathSeparator & strCSV_alt, _
Destination:=strVerzeichnisNeu & Application.PathSeparator & strCSV_neu
Else
.Cells(lngZeile, 2).Value = "CSV-Datei nicht vorhanden!"
End If
Next lngZeile
End With
Application.ScreenUpdating = True
Set wksListe = Nothing: Set wkbCSV = Nothing: Set wksCSV = Nothing
End Sub

Anzeige
AW: Konverter über Excel - Dateinamenänderung
24.06.2013 07:51:13
Detlef
Hey,
das sieht schon ganz gut aus, allerdings funktioniert es nicht so ganz. Ich lade euch mal die Beispiel-Dateien hoch:
Hier der "Konverter":
https://www.herber.de/bbs/user/85986.xls
Hier die .csv Datei:
https://www.herber.de/bbs/user/85987.zip
Habe vergessen zu sagen dass in der Zelle A in der csv Datei noch die Uhrzeit mit angegeben ist, allerdings soll diese nicht berücksichtigt werden sondern nur das Datum.
Hoffe es hilft euch jetzt weiter!
LG
Detlef

Anzeige
AW: Konverter über Excel - Dateinamenänderung
24.06.2013 08:21:01
Detlef
Hey,
das sieht schon ganz gut aus, allerdings funktioniert es nicht so ganz. Ich lade euch mal die Beispiel-Dateien hoch:
Hier der "Konverter":
https://www.herber.de/bbs/user/85986.xls
Hier die .csv Datei:
https://www.herber.de/bbs/user/85987.zip
Habe vergessen zu sagen dass in der Zelle A in der csv Datei noch die Uhrzeit mit angegeben ist, allerdings soll diese nicht berücksichtigt werden sondern nur das Datum.
Hoffe es hilft euch jetzt weiter!
LG
Detlef

Anzeige
AW: Konverter über Excel - Dateinamenänderung
24.06.2013 18:55:17
Oberschlumpf
Hi Detlef
Hab die Bsp-Dateien gesehen - versteh aber etwas noch nicht.
Woher soll Excel wissen, dass aus dem alten Dateinamen
"DE12345.csv" = "Willi_ANFANGSDATUM_ENDDATUM_Detlef.csv"
werden soll?
Ciao
Thorsten

AW: Konverter über Excel - Dateinamenänderung
24.06.2013 23:29:29
fcs
Hallo Detlef,
das mit der Uhrzeit ist kein Problem. Hier ist nach dem Öffnen der CSV-Datei noch ein Autofit für die Spalten erforderlich, damit die Daten in Spalte A korrekt angezeigt werden.
Grundsätzlich kann man den Text "_ANFANGSDATUM_ENDDATUM_" im vorgegebenen neuen Dateinamen durch die Daten aus der Datei ersetzen. Das macht Makro "CSV_Rename"
Etwas einfacher wird es aber -insbesondere für die Eingabe- wenn du den linken und rechten Teil des neuen Dateinamens jeweils in eine separate Spalte einträgst. Siehe Blatt "Tabelle1_Variante", das in Verbindung mit Makro "CSV_Rename_Variante" funktioniert.
Gruß
Franz
https://www.herber.de/bbs/user/86017.xls

Anzeige
AW: Konverter über Excel - Dateinamenänderung
25.06.2013 10:59:33
Detlef
Super, das echt klasse.
Ich wusste das mir hier weiter geholfen wird!!!!
DANKE!

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige