Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Code Anpassung-Speichern ohne Makros

Code Anpassung-Speichern ohne Makros
03.05.2008 14:39:00
Becker
Hallo Experten,
Habe hier in Forum ein Code von „Franz“ gefunden;
originelle Code Beschreibung
1) Feststellung, ob in der geöffneten Arbeitsmappe Änderungen gegenüber der gespeicherten Version gemacht wurden
2) Wenn ja, dann automatisches Speichern einer Kopie in einem einstellbaren Intervall (z.B. 5 min). Dabei soll die Kopie im gleichen Verzeichnis abgelegt werden wie das Original, jedoch mit dem Dateinamen "Kopie von .xls". Die Kopie soll auch nach dem Beenden von Excel erhalten bleiben.
3) Wenn keine Änderungen gemacht wurden, braucht die Kopie nicht erstellt werden.

Ich suche was ähnliches, leider sind meine Kenntnisse in VBA noch extrem begrenzt.
1 Feststellung, ob in eine „Test.xlsm“ Mappe Änderungen gemacht wurden
2) Wenn ja, dann automatisches Speichern einer Kopie in einem einstellbaren Intervall (alle 5 Min).
Dabei soll die Kopie (ohne Makros) im bestimmten Verzeichnis ("C:\Dokumente und Einstellungen\Sicherung\") als „.xlsx“ abgelegt werden.
Alle Tabellen Blätter die ausgeblendet sind die sollen nicht mitgespeichert werden,
jedoch mit dem Dateinamen "BuckUp .xls". Die Kopie soll auch nach dem Beenden von Excel erhalten bleiben.
3) Wenn keine Änderungen gemacht wurden, braucht die Kopie nicht erstellt werden.
Wäre super, wenn mir jemand helfen könnte, und den unteren Code von Franz anpassen konnte
Ich Danke Euch für Euer Mühen
Freue mich über jeden Hinweis!
Netten Gruß
Daniel
' Code in einem allgemeinen Modul:
Public Zeitpunkt As Date
Sub Sichern_Start()
Call ArbeitsmappenSichern
End Sub


Sub Sichern_Stop()
On Error Resume Next
Application.OnTime Earliesttime:=Zeitpunkt, Procedure:="ArbeitsmappenSichern", schedule:= _
False
End Sub


Sub ArbeitsmappenSichern()
Dim wb As Workbook
On Error GoTo Fehlerbehandlung
Application.StatusBar = "Sicherung der Arbeitsmappen läuft"
For Each wb In Application.Workbooks
If Windows(wb.Name).Visible = True Then
If wb.Saved = False Then
wb.SaveCopyAs Filename:=wb.Path & "\BackUp_von_" & wb.Name
End If
End If
Next
Zeitpunkt = Now + CDate("00:05:00")
Application.OnTime Earliesttime:=Zeitpunkt, Procedure:="ArbeitsmappenSichern"
Application.StatusBar = flase
GoTo Ende
Fehlerbehandlung:
MsgBox "Fehler " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description & vbLf & vbLf & _
_
"Neu angelegte Datei wurde wahrscheinlich noch nie gespeichert! Bitte Datei Speichern."
wb.Activate
Application.Dialogs(xlDialogSaveAs).Show
Resume Next
Ende:
End Sub


'code unter diese Arbeitsmappe


Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime Earliest:=Zeitpunkt, Procedure:="ArbeitsmappenSichern", schedule:=False
End Sub



Private Sub Workbook_Open()
If MsgBox("Soll das Sichern der nicht gespeicherten Arbeitsmappen gestartet werden?" _
, vbYesNo + vbQuestion) = vbYes Then
Call Sichern_Start
End If
End Sub


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code Anpassung-Speichern ohne Makros
03.05.2008 21:05:50
Tino
Hallo,
habe nur Office 2003, vielleicht geht es auch unter 2007
Bei Const Pfad As String = den Speicherpfad noch angeben im Beispiel ist es “C:\”
In „DieseArbeitsmappe“ als Code

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopTimer
End Sub
Private Sub Workbook_Open()
Call StartTimer
End Sub


In ein Modul als Code


Option Explicit
Public meZeit As Date
Sub SicherungAnlegen()
Dim Datei As Workbook, meTab As Worksheet, lngZahl As Long
Const Pfad As String = "C:\" 'Sicherungspfad
Application.ScreenUpdating = False
For Each meTab In ThisWorkbook.Sheets
If meTab.Visible = True Then
lngZahl = lngZahl + 1
If lngZahl = 1 Then
meTab.Copy
Set Datei = ActiveWorkbook
Else
meTab.Copy After:=Datei.Sheets(Datei.Sheets.Count)
End If
End If
Next meTab
Datei.SaveAs Pfad & "Backup " & Format(Now, "ddmmyyyy hhmmss") & " " & ThisWorkbook.Name
Datei.Close
ThisWorkbook.Save
Application.ScreenUpdating = True
Set Datei = Nothing
End Sub
Sub Start_Sicherung()
If Not ThisWorkbook.Saved Then SicherungAnlegen
Call StartTimer
End Sub
Sub StartTimer()
Call StopTimer
meZeit = Now + TimeValue("00:05:00")
Application.OnTime meZeit, "Start_Sicherung"
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime EarliestTime:=meZeit, _
Procedure:="Start_Sicherung", Schedule:=False
End Sub


Gruß
Tino

Anzeige
AW: Code Anpassung-Speichern ohne Makros
03.05.2008 23:42:00
Becker
Hallo Tino,
Recht herzlichen Dank für Deine nette Hilfe. Es läuft alles gut bis zum speichern.
Der Fehler in speicher ist;
Datei.SaveAs Pfad & "Backup " & Format(Now, "ddmmyyyy hhmmss") & " " & ThisWorkbook.Name '
- Laufzeitfehler 1004 "Diese Erwiterung kann nicht mit dem ausgewählten Dateityp verwendet werden.
Ändern Sie Dateierweiterung in Textfeld Dateiname oder wählen Sie einen anderen Dateityp aus in den Sie die Auswahl unter speichern unter ändern...
Du hattest recht das es nicht ganz sicherlich ist ob das unter Office 2007 läuft.
Ich habe damit auch probiert (bin leider kein Fachmann);
ThisWorkbook.SaveAs ThisWorkbook.Pfad & "Backup " & Format(Now, "dd-mm-yyyy hh-mm-ss") & " " & ThisWorkbook.Name
dabei bekomme ich den Fehler 438 Objekt unterstützt dieser Eigenschaft oder Methode nicht.
Dabei probierte ich auch mit "Const Pfad As String = "C:\Dokumente und Einstellungen\Desktop\" und ohne
"Const Pfad As String = "C:\" da bleibt das ganze noch hängen.
Ich hoffe auf weitere Hilfe. Da ich der Anfänger bin kann ich leider den Fehler noch nicht beheben.
Für jede Hilfe danke ich herzlichst.
Das hier ist definitiv der beste Forum.
MfG
Daniel

Anzeige
AW: Code Anpassung-Speichern ohne Makros
03.05.2008 23:49:49
Tino
Hallo,
da ich mit Office 2007 keine Erfahrung habe, versuche es mal so.
Anstatt ThisWorkbook.Name,
gib einen Dateinamen an zBsp. "MeineDatei.xls"
wobei .xls die Dateierweiterung deiner Excelversion sein muss.
Vergiss aber die Zeichen " nicht mit einzugeben
Gruß
Tino

AW: Code Anpassung-Speichern ohne Makros
04.05.2008 09:25:00
Becker
Hallo Tino,
Du hast volkommen recht (obwohl Du kein Office 2007 hast). Das stimmte ganz genau.
Recht herzlichen Dank für Deine nette Hilfe.
Inzwischen habe ich mit dieser Anweisung ausprobiert die funktioniert auch:
ActiveWorkbook.SaveAs Filename:="C:\Dokumente und Einstellungen\Daniel\Desktop\" & "Backup_von " _
& Format(Now, "DD-MM_hh-mm") & ".xlsx" _
, FileFormat:=xlNormal, _
ReadOnlyRecommended:=False, CreateBackup:=False
Dank Deiner Hilfe habe ich jetzt endlich die gewünschte Lösung.
Gruß
Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige