Supportnet / Forum / Tabellenkalkulation
excelmappe speichern mit datum
Frage
Hallo,
ich möchte durch einen button die aktuelle Arbeitsmappe unter zwei verschiedene Orte abspeichern und gleichzeitig das aktuelle Datum als Zusatz vor den Dateinamen automatisch setzen lassen.
Wie lautet der Code??
Antwort 1 von Yossarian
Hier gings um was ähnliches:
https://supportnet.de/threads/1107254
A bisserl eigene Überlegung/Anpassung mußt du natürlich noch reinstecken.
Yossarian
https://supportnet.de/threads/1107254
A bisserl eigene Überlegung/Anpassung mußt du natürlich noch reinstecken.
Yossarian
Antwort 2 von nighty
hi all :)
eine variante :)
gruss nighty
Sub Makro2()
ActiveWorkbook.SaveAs Filename:="C:\temp1\" & Date$ & ".xls", FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.SaveAs Filename:="C:\temp2\" & Date$ & ".xls", FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
eine variante :)
gruss nighty
Sub Makro2()
ActiveWorkbook.SaveAs Filename:="C:\temp1\" & Date$ & ".xls", FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.SaveAs Filename:="C:\temp2\" & Date$ & ".xls", FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Antwort 3 von tibor
Beim ersten Versuch (unten) gibt es die Fehlermeldung:
Laufzeitfehler 9, Index außerhalb des gültigen Bereichs.
Sub USBspeichern()
´ USBspeichern Makro
´ Makro am 17.03.2005 von WE7015 aufgezeichnet
Dim Datum, Tag, Monat, Jahr As String
Dim Uhrzeit As Date
Tag = Format(Day(Date), "00")
Monat = Format(Month(Date), "00")
Jahr = Format(Year(Date), "0000")
Uhrzeit = Format((Time), "hh:mm:ss")
Datum = Jahr & Monat & Tag & " " & Uhrzeit & " "
´Dateiname = InputBox("Bitte geben Sie einen Dateinamen ein:", "Datei speichern", "Daten.xls")
Dateiname = Datum & "Daten.xls"
Sheets("Leer").Select
Application.ScreenUpdating = False
Sheets("Auswertung").Copy
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="C:\VBATest\" & Dateiname, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
Sheets("Maske").Select
Application.ScreenUpdating = True
End Sub
Beim zweiten Versuch
Sub Makro2()
ActiveWorkbook.SaveAs Filename:="C:\temp1\" & Date$ & ".xls", FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.SaveAs Filename:="C:\temp2\" & Date$ & ".xls", FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
zeigt mir ein Fenster:
Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler.
Leider weiß ich mir keinen Rat.
Was kann ich tun oder mache ich was falsch?
Grüße
Martin
Laufzeitfehler 9, Index außerhalb des gültigen Bereichs.
Sub USBspeichern()
´ USBspeichern Makro
´ Makro am 17.03.2005 von WE7015 aufgezeichnet
Dim Datum, Tag, Monat, Jahr As String
Dim Uhrzeit As Date
Tag = Format(Day(Date), "00")
Monat = Format(Month(Date), "00")
Jahr = Format(Year(Date), "0000")
Uhrzeit = Format((Time), "hh:mm:ss")
Datum = Jahr & Monat & Tag & " " & Uhrzeit & " "
´Dateiname = InputBox("Bitte geben Sie einen Dateinamen ein:", "Datei speichern", "Daten.xls")
Dateiname = Datum & "Daten.xls"
Sheets("Leer").Select
Application.ScreenUpdating = False
Sheets("Auswertung").Copy
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="C:\VBATest\" & Dateiname, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
Sheets("Maske").Select
Application.ScreenUpdating = True
End Sub
Beim zweiten Versuch
Sub Makro2()
ActiveWorkbook.SaveAs Filename:="C:\temp1\" & Date$ & ".xls", FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.SaveAs Filename:="C:\temp2\" & Date$ & ".xls", FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
zeigt mir ein Fenster:
Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler.
Leider weiß ich mir keinen Rat.
Was kann ich tun oder mache ich was falsch?
Grüße
Martin
Antwort 4 von coros
Hi Martin,
bei dem oberen Code musst Du logischerweise die Blattnamen "Leer", "Auswertung" und "Maske" gegen Deine Blattnamen abändern. Das wird der Grund dafür sein, dass Dir der Laufzeitfehler angezeigt wird.
Bei dem Code von nighty sollte es allerdings keine Probleme geben. Der funktioniert ohne Probleme. Allerdings musst Du dort ebenfalls eine Änderung vornehmen. Du musst den Pfad anpassen. Wenn es bei Dir den Pfad C:\temp1" und "C:\temp2" nicht gibt, kommt ebenfalls ein Laufzeitfehler. Dieser sagt einem dann aber auch, dass es den Pfad nicht gibt. Warum bei Dir dieser Anwendungs- und objektdefinierten Fehler auftritt kann ich im Moment nicht nachvollziehen. Es könnte daran liegen, dass Du das Makro an eine falsche Stelle im VBA Editor kopiert hast. Wo hast Du das Makro denn hin kopiert? Ich hoffe mal, in ein StandardModul? Wenn nicht, kann zu diesem Fehler. Solltest Du also das Makro in das VBA Projekt eines Tabellenblattes kopiert haben, so verschiebe es in ein StandardModul. Eine Anleitung dazu findest Du auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
bei dem oberen Code musst Du logischerweise die Blattnamen "Leer", "Auswertung" und "Maske" gegen Deine Blattnamen abändern. Das wird der Grund dafür sein, dass Dir der Laufzeitfehler angezeigt wird.
Bei dem Code von nighty sollte es allerdings keine Probleme geben. Der funktioniert ohne Probleme. Allerdings musst Du dort ebenfalls eine Änderung vornehmen. Du musst den Pfad anpassen. Wenn es bei Dir den Pfad C:\temp1" und "C:\temp2" nicht gibt, kommt ebenfalls ein Laufzeitfehler. Dieser sagt einem dann aber auch, dass es den Pfad nicht gibt. Warum bei Dir dieser Anwendungs- und objektdefinierten Fehler auftritt kann ich im Moment nicht nachvollziehen. Es könnte daran liegen, dass Du das Makro an eine falsche Stelle im VBA Editor kopiert hast. Wo hast Du das Makro denn hin kopiert? Ich hoffe mal, in ein StandardModul? Wenn nicht, kann zu diesem Fehler. Solltest Du also das Makro in das VBA Projekt eines Tabellenblattes kopiert haben, so verschiebe es in ein StandardModul. Eine Anleitung dazu findest Du auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von tibor
Hallo Oliver,
habe die erste Version verändert und funktioniert - besten Dank.
Bei der zweiten Version weiß ich nicht was mit den Blattnamen "Leer", "Auswertung" und "Maske" gemeint ist.
Grüße
Martin
habe die erste Version verändert und funktioniert - besten Dank.
Bei der zweiten Version weiß ich nicht was mit den Blattnamen "Leer", "Auswertung" und "Maske" gemeint ist.
Grüße
Martin
Antwort 6 von coros
Hi Martin,
diese drei Namen kommen in dem VBA Code in den Zeilen
Sheets("Leer").Select
Sheets("Auswertung").Copy
Sheets("Maske").Select
vor und das sind Blattnamen, die in der Datei vorkommen, bzw. die Namen müssen angepasst werden. Aber ist ja nun egal, wenn es funktioniert, benötigst Du ja das Makro nicht mehr.
MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
diese drei Namen kommen in dem VBA Code in den Zeilen
Sheets("Leer").Select
Sheets("Auswertung").Copy
Sheets("Maske").Select
vor und das sind Blattnamen, die in der Datei vorkommen, bzw. die Namen müssen angepasst werden. Aber ist ja nun egal, wenn es funktioniert, benötigst Du ja das Makro nicht mehr.
MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
Antwort 7 von tibor
Hallo,
ich weiß, dass ich lästig und nie zufrieden bin. Ich würde aber gerne in dem Format
"2006-02-22 tabelle1.xls"
abspeichern. Und da benötige ich noch Hilfe.
Grüße
Martin
ich weiß, dass ich lästig und nie zufrieden bin. Ich würde aber gerne in dem Format
"2006-02-22 tabelle1.xls"
abspeichern. Und da benötige ich noch Hilfe.
Grüße
Martin
Antwort 8 von coros
Hi Martin,
ist der Name "Tabelle1.xls" fix oder soll dort der Name der aktuellen Datei eingetragen werden? Mit nachfolgendem Makro wird Dir Deine Datei unter dem von Dir angegebenen Namen, also Datum gefolgt von Tabelle1.xls, gespeichert.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
ist der Name "Tabelle1.xls" fix oder soll dort der Name der aktuellen Datei eingetragen werden? Mit nachfolgendem Makro wird Dir Deine Datei unter dem von Dir angegebenen Namen, also Datum gefolgt von Tabelle1.xls, gespeichert.
Sub Makro2()
ActiveWorkbook.SaveAs Filename:="D:\" & Date$ & " Tabelle1.xls", FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.SaveAs Filename:="D:\Müll\" & Date$ & " Tabelle1.xls", FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 9 von tibor
Danke für die Antwort.
Tabelle 1 ist nicht fix, sondern wird der aktuelle gültige Dateiname.
Wichtig ist mir aber, dass das Datum zuerst die Jahreszahl hat:
2006-02-22
und nicht 22-02-2006.
Geht bestimmt einfach, oder?
Grüße
Martin
Tabelle 1 ist nicht fix, sondern wird der aktuelle gültige Dateiname.
Wichtig ist mir aber, dass das Datum zuerst die Jahreszahl hat:
2006-02-22
und nicht 22-02-2006.
Geht bestimmt einfach, oder?
Grüße
Martin
Antwort 10 von coros
Hallo Martin,
dann sieht das Makro wie folgt aus.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
dann sieht das Makro wie folgt aus.
Sub Makro2()
Dim Dateiname As String
Dateiname = Format(Now, "yyyy.mm.dd") & " " & ThisWorkbook.Name
ActiveWorkbook.SaveAs Filename:="D:\" & Dateiname, _
FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.SaveAs Filename:="D:\Müll\" & Dateiname, _
FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 11 von tibor
Hallo Oliver,
geht soweit ganz gut....
nur bei jedem speichern erweitert der Befehl den Dateinamen um das Datum:
1. "2006.02.23 name.xls"
2. "2006.02.23 2006.02.23 name.xls"
3. "2006.02.23 2006.02.23 2006.02.23 name..xls"
usw.
Noch ein kleiner Tip!!!
Grüße
Martin
geht soweit ganz gut....
nur bei jedem speichern erweitert der Befehl den Dateinamen um das Datum:
1. "2006.02.23 name.xls"
2. "2006.02.23 2006.02.23 name.xls"
3. "2006.02.23 2006.02.23 2006.02.23 name..xls"
usw.
Noch ein kleiner Tip!!!
Grüße
Martin
Antwort 12 von coros
Hi Martin,
das ist doch wohl logisch. Wenn die Datei beim ersten Mal unter Datum gefolgt von Dateiname abgespeichert wird, entsteht der Dateiname Datum Dateiname, also z.B. 2006-02-22 Mappe1.xls. Wenn nun erneut abgespeichert wird, wird halt wider das Datum vorne angefügt, somit entsteht der Name 2006-02-23 2006-02-22 Mappe1. Ich bin davon ausgegangen, dass es sich bei der Datei um eine Vorlagendatei handelt und somit diese dann immer mit angeführtem Datum abgespeichert werden soll. Somit wäre vor dem Speichern immer nur der Dateiname ohne Datumszusatz vorhanden gewesen. Nachfolgendes Makro sollte das aber jetzt machen. Bedingung ist allerdings, dass die Datei bereits einmal mit dem Namen "Datum Leerzeichen Dateiname" abgespeichert wurde.
Bei Problemen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
das ist doch wohl logisch. Wenn die Datei beim ersten Mal unter Datum gefolgt von Dateiname abgespeichert wird, entsteht der Dateiname Datum Dateiname, also z.B. 2006-02-22 Mappe1.xls. Wenn nun erneut abgespeichert wird, wird halt wider das Datum vorne angefügt, somit entsteht der Name 2006-02-23 2006-02-22 Mappe1. Ich bin davon ausgegangen, dass es sich bei der Datei um eine Vorlagendatei handelt und somit diese dann immer mit angeführtem Datum abgespeichert werden soll. Somit wäre vor dem Speichern immer nur der Dateiname ohne Datumszusatz vorhanden gewesen. Nachfolgendes Makro sollte das aber jetzt machen. Bedingung ist allerdings, dass die Datei bereits einmal mit dem Namen "Datum Leerzeichen Dateiname" abgespeichert wurde.
Option Explicit
Sub Makro2()
Dim Dateiname As String
Dateiname = Format(Now, "yyyy.mm.dd") & Mid(ThisWorkbook.Name, 11, Len(ThisWorkbook.Name))
ActiveWorkbook.SaveAs Filename:="D:\" & Dateiname, _
FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.SaveAs Filename:="D:\Müll\" & Dateiname, _
FileFormat:=xlNormal, ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Bei Problemen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.