13k Aufrufe
Gefragt in Tabellenkalkulation von dutchi1972 Mitglied (419 Punkte)
Hallo zusammen,
Ich hab einen Excel Datei mit der ich täglich arbeite und Infos Zahlen eingebe. Da ich aber auch nicht immer dran denke die Datei zwischen durch zu sichern würde ich gerne per Makro automatische die ganze Datei.
Ich stell mir ein Makro vor das die Datei im Abstand von ca. 1 Stunde in einem bestimmten Ordner `Sicherung_Stam` die Datei mit dem Dateinamen `Stam` + Datum + fortlaufender Nummer aufsteigend gespeichert wird.
ist das ein schwieriges Makro ??? oder weis einer wo ich mir so ein Makro absehen kann ???

Danke in voraus für eure Mühe.

Gruß Dutchi

20 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Wim,

die Datei "Stam.xls" ist die Datei, die Du offen hast und diese liegt bereits im Order "Alle" und wurde von dort geöffnet?Wenn ja, dann würde das Makro wie folgt lauten.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Const strPfad As String = "\\Fileserver\Alle\WW\"

Sub AutoSave()
'Speichernummer in Blatt "Tabelle1" in Zelle A1 schreiben
Sheets("Tabelle1").Range("A1") = Sheets("Tabelle1").Range("A1") + 1

With Application
.DisplayAlerts = False
'Nur zur Info in der Statusleiste einen Speichertext anzeigen
.StatusBar = "Datei wird gesichert..."
'Aktuelle Datei an Ihrem ursprungsort sichern
ThisWorkbook.Save
'Datei in Pfad aus Variablen "strPfad" unter dem Namen "Stam_Datum_Speichernummer" speichern
ThisWorkbook.SaveAs strPfad & "Stam_" & Format(Now, "dd.mm.yyyy") _
& "_" & Sheets("Tabelle1").Range("A1") & ".xlsm"
'Datei in Pfad aus Variablen "strPfad" unter dem Namen "Stam_Datum_Speichernummer" speichern
ThisWorkbook.SaveAs strPfad & "Stam.xlsm"

'Prozedur nach Ablauf der Zeit neu starten, Zeitangabe erfolgt in hh:mm:ss
.OnTime Now + TimeValue("00:00:30"), "AutoSave"
.StatusBar = ""
.DisplayAlerts = True
End With
End Sub
Der Code wurde um die Zeile

ThisWorkbook.Save
erweitert und sichert damit die Datei an Ihrem Ursprungsort.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
Hallo Oliver,
Hab das Makro noch etwas angepasst - umgebastelt, funktionierte leider nicht so richtig.
Aber jetzt speichert er alles da wo ich es will. Du hast mir aber super weitergeholfen und einen GROßEN DANK dafür .
Einfach Super.

Danke nochmal., hoffe das ich nochmal mit einer anderen Sache wieder kommen kann.

Danke nochmal !!!!
Gruß Wim



Option Explicit

Const strPfad As String = "\\Fileserver\Alle\WW\"

Sub AutoSave()
'Speichernummer in Blatt "Tabelle1" in Zelle A1 schreiben
Sheets("Tabelle1").Range("A1") = Sheets("Tabelle1").Range("A1") + 1

With Application
.DisplayAlerts = False
'Nur zur Info in der Statusleiste einen Speichertext anzeigen
.StatusBar = "Datei wird gesichert..."
'Aktuelle Datei an Ihrem ursprungsort sichern
ThisWorkbook.Save
'Datei in Pfad aus Variablen "strPfad" unter dem Namen "Stam_Datum_Speichernummer" speichern
ThisWorkbook.SaveAs strPfad & "Sicherung\" & "Stam_" & Format(Now, "dd.mm.yyyy") _
& "_" & Sheets("Tabelle1").Range("A1") & ".xlsm"
'Datei in Pfad aus Variablen "strPfad" unter dem Namen "Stam_Datum_Speichernummer" speichern
ThisWorkbook.SaveAs strPfad & "Stam.xlsm"

'Prozedur nach Ablauf der Zeit neu starten, Zeitangabe erfolgt in hh:mm:ss
.OnTime Now + TimeValue("00:00:30"), "AutoSave"
.StatusBar = ""
.DisplayAlerts = True
End With
End Sub
0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
Hallo Oliver,

was muß ich eintragen im Makro das er mir die Letzte Aktuallisierungs-Datum und Zeit im Tabellen Blatt schreibt
z.B im Zelle C5

Danke
Gruß Wim
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Wim,

die Zeile

Range("C5") = Now
irgendwo in das Makro einfügen.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
Hallo Oliver,

kleiner Auszug aus Makro,
wenn ich in einer anderen Datei bin aber die Stam Datei geöffnet ist und sich auch Sichern soll, bekomm ich eine Fehlermeldung

Laufzeitfehler ´9´
Index außerhalb des güldigen Bereichs

Was kann ich ergänzen damit er weis das die Tabelle in "Stam"-Datei liegt !!!


'Speichernummer in Blatt "Tabelle1" in Zelle C3 schreiben
Sheets("Menü").Range("B4") = Sheets("Menü").Range("B4") + 1
Sheets("Menü").Range("C4") = Now


Danke im Voraus.

Gruß Wim
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Wim,

ändere die Zeilen wie folgt ab:

'Speichernummer in Blatt "Tabelle1" in Zelle C3 schreiben
ThisWorkbook.Sheets("Menü").Range("B4") = ThisWorkbook.Sheets("Menü").Range("B4") + 1
ThisWorkbook.Sheets("Menü").Range("C4") = Now

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
Hallo Oliver,

Das funktioniert.

Jetzt macht er mir einen Fehlermeldung indieser Zeile ????

hier hackt es leider

ThisWorkbook.SaveAs strPfad & "STADAT_Sicherung\" & "STADAT2011_" & Format(Now, "yyyy.mm.dd") _
& "_" & Sheets("Menü").Range("B4") & ".xlsm"

die nächste funktioniert !!!
ThisWorkbook.SaveAs strPfad & "STADAT\" & "STADAT2011.xlsm"

Gruß Wim
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Wim,

hier die geänderte Zeile

ThisWorkbook.SaveAs strPfad & "STADAT_Sicherung\" & "STADAT2011_" & Format(Now, "yyyy.mm.dd") _
& "_" & ThisWorkbook.Sheets("Menü").Range("B4") & ".xlsm"

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
Morgen Oliver,

hat super funktioniert
Danke hab einige Zeilen so geändert, ,
Läuft jetzt ohne zu hacken, nur beim sichern wechselt kurz die Ansicht wenn ich in einer anderen Datei bin in die zu sichernde Datei. aber da kann ich mit leben wenn das jede Stunde mal passiert.
Danke nochmal,

Gruß Wim
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Wim,

schreibe ganz am Anfang des VBA- Codes die Zeile

Application.ScreenUpdating = False. Damit sollte auch der Bildwechsel beim Speichern nicht mehr auftreten.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
...