Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

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")

GrußformelHomepage


  

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"