Supportnet Computer
Planet of Tech

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

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

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

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.

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

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.

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

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.

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

Antwort 10 von coros

Hallo Martin,

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

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.

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.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: