Datumsformat für Dateinamen umstellen
 |
Betrifft: Datumsformat für Dateinamen umstellen
von: Frank Berends
Geschrieben am: 05.09.2014 10:35:01
Hallo zusammen,
ich habe in meiner Tabelle im Feld D1 ein Datum eingetragen. Das Format dazu ist typischerweis TT.MM.JJJJ
D1 = 28.8.2014
Ich möchte nun per Makro die Datei zwei mal automatisch speichern. Der Speichernamen soll dabei das Datum aus D1 im Format YYYY-MM-DD aufnehmen. In diesem Beispiel lautet er also
2014.08.28_Ratingübersicht.csv
und
2014.08.28_Ratingübersicht.xlsx
Wie bekomme ich das hin? Ich hab für die csv bis jetzt so experimentiert (und das ziemlich erfolglos):
Sub Speichern_als_CSV()
Dim Datei As Date
Datei = Range("A1").NumberFormat = "YYYY-MM-DD"
activeWorkbook.SaveAs Filename:=Datei, FileFormat:=xlCSV
End Sub
Die xlsx hab ich mir lieber noch gar nicht angeschaut.
Und kann ich die Hinweise, die Excel so gerne beim Speichern einer CSV ausspuckt, auch unterbinden?
Gruß
Frank
Betrifft: AW: Datumsformat für Dateinamen umstellen
von: Hajo_zi
Geschrieben am: 05.09.2014 10:36:51
Hallo Frank,
Datei = Format(Range("A1"), "YYYY-MM-DD")


Betrifft: AW: Datumsformat für Dateinamen umstellen
von: Frank Berends
Geschrieben am: 05.09.2014 11:05:12
Halo Hajo,
das klappt leider nicht. Ich habe jetzt folgendes Makro
Sub Speichern_als_CSV()
Datei As Date
Datei = Format(Range("A1"), "YYYY-MM-DD")
ActiveWorkbook.SaveAs Filename:=Datei, FileFormat:=xlCSV
End Sub
Excel sagt mir Fehler beim Kompilieren. Anweisung außerhalb eines Typen-Blocks ungültig.
Betrifft: AW: Datumsformat für Dateinamen umstellen
von: Hajo_zi
Geschrieben am: 05.09.2014 11:09:58
ich vermute Datei enthält das was Du wolltest. Ich hätte ja auch einen Ordner angegeben. Sollte nach dem Datum nicht noch was stehen?
Du Solltest Datei auch als String definieren.
Gruß Hajo
 |
Betrifft: AW: Datumsformat für Dateinamen umstellen
von: Frank Berends
Geschrieben am: 05.09.2014 11:37:31
Läuft leider immer noch nicht.
1. Den Zusatz "_Ratingübersicht" konnte ich einbauen, das klappt auch.
2. Ein Ordner ist ja eigentlich nicht nötig, VBA nimmt den gleichen Ordner, aus dem in die Datei geöffnet habe. Wäre aber schon schöner/ besser, wenn ich einen Ordner angeben könnte. Hin und wieder hauen unsere Server etwas quer ;-)
Kannst Du mir da helfen?
3. Ich habe mit MsgBox mal die Variable "Datei" abgerufen. Excel gibt mir im Typ String "Falsch" heraus. Bei "Date" 00:00:00 und bei "Integer" 0. Der grundsätzliche Ablauf klappt, nur heißt meine Datei halt Falsch_Ratingübersicht.csv.
Was mach ich falsch??
Gruß
Frank
Betrifft: AW: Datumsformat für Dateinamen umstellen
von: Hajo_zi
Geschrieben am: 05.09.2014 11:40:56
ich sehe den geänderten Code nicht. Du hast meinen Beitrag komplett gelesen?
Gruß Hajo
Betrifft: AW: Datumsformat für Dateinamen umstellen
von: Frank Berends
Geschrieben am: 05.09.2014 12:29:27
Hallo Hajo,
hier der neue Code
Sub Speichern_als_CSV()
Dim Datei As String
Datei = Range("A1").NumberFormat = "YYYY-MM-DD"
'MsgBox Datei
ActiveWorkbook.SaveAs Filename:=Datei & "_Ratingübersicht", FileFormat:=xlCSV
End Sub
Gruß
Frank
Betrifft: AW: Datumsformat für Dateinamen umstellen
von: Rudi Maintaire
Geschrieben am: 05.09.2014 12:17:34
Hallo,
2 Fehler.
1. fehlt Dim.
2. ergibt Format(...) einen String.
ergo:
Dim Datei as string
Gruß
Rudi
Betrifft: AW: Datumsformat für Dateinamen umstellen
von: Frank Berends
Geschrieben am: 05.09.2014 12:28:34
Hallo Rudi,
Dim Datei as String und Dim Datei as Date klappen leider beide nicht.
Gruß
Frank
Betrifft: was klappt nicht? owT
von: Rudi Maintaire
Geschrieben am: 05.09.2014 13:09:12
Betrifft: AW: was klappt nicht? owT
von: Frank Berends
Geschrieben am: 05.09.2014 13:50:58
Hallo Rudi,
ich hatte das bei Hajo auch schon probiert. Ich bekomme dann folgende Ergebnisse für "Datei", wenn ich die MsgBox anwerfe:
Ich habe mit MsgBox mal die Variable "Datei" abgerufen. Excel gibt mir im Typ String "Falsch"
heraus. Bei "Date" 00:00:00 und bei "Integer" 0. Der grundsätzliche Ablauf klappt, nur heißt meine
Datei halt Falsch_Ratingübersicht.csv.
Gruß
Frank
Betrifft: dann kein Datum in A1!!! owT
von: Rudi Maintaire
Geschrieben am: 05.09.2014 13:54:37
Betrifft: AW: dann kein Datum in A1!!! owT
von: Frank Berends
Geschrieben am: 05.09.2014 14:10:39
Mehr Datum geht nicht. Ich habe das Feld sogar mit der Funktion =Datum(2014;8;29) beschossen. Klappt einfach nicht.
Betrifft: AW: dann kein Datum in A1!!! owT
von: Udo
Geschrieben am: 08.09.2014 10:45:10
Hai,
kann es sein, dass es einfach nur:
Datei = Format(Range("D1"), "YYYY-MM-DD")
heißen muss ??
Gruß
Udo
 |
Betrifft: AW: dann kein Datum in A1!!! owT
von: Frank Berends
Geschrieben am: 08.09.2014 11:31:13
Hallo Udo,
hallo auch an die anderen, die mir so super weiter geholfen haben.
Ich habe jetzt mit Euren Ideen und mit ein bischen Literatur folgende Lösung erstellt. Und sie läuft sauber durch.
Sub Speichern_als()
Dim Datei As String
'*** Datum für Dateinamen aus D1 aufnehmen und umformatieren ***
Datei = Format(Range("D1"), "YYYY-MM-DD")
'*** Dialog zum Dateipfad öffnen ***
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = "J:\Eigene Dateien\1. Depot A\Ratings" & " \ """
.Title = "Wählen Sie bitte einen Speicherort für die Sicherung aus"
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Abgebrochen"
Else
Pfad = .SelectedItems(1)
MsgBox Pfad
End If
End With
'*** Verzeichnis zum Speichern anpassen ***
ChDir Pfad
'*** Bildschirmdialoge ausschalten ***
Application.DisplayAlerts = False
'*** Dateien speichern ***
ActiveWorkbook.SaveAs Filename:=Datei & "_Ratingübersicht", FileFormat:=xlCSV 'als CSV _
speichern
ActiveWorkbook.SaveAs Filename:=Datei & "_Ratingübersicht", FileFormat:=xlWorkbookDefault ' _
als XLSX speichern
'*** Bildschirmdialoge einschalten ***
Application.DisplayAlerts = True
End Sub
Gruß
Frank
 |
Beiträge aus den Excel-Beispielen zum Thema "Datumsformat für Dateinamen umstellen"