Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1728to1732
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
Inhaltsverzeichnis

Automatisch Kopie speichern von .xlsm

Automatisch Kopie speichern von .xlsm
29.12.2019 10:41:28
.xlsm
Hallo Leute :-)
Habe diesen VBA Code im Forum gefunden, ist echt super...nur es speichert in .xlsx format.
Ist es möglich das der selbe Code in .xlsm format speichern tut ?
.. und wenn möglich im gespeicherten namen noch automatisch das datum hinzufügt?
anbei der in diesem Forum gefunder VBA Code (...ist echt super der Code...fast perfekt...fehlt nur..:-)
Code ist soweit ich im Forum sehen konnte vom Michael (migre)...Danke ihn schon mal vorab :-)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Prüft vor dem Schließen dieser Mappe ob Änderungen vorliegen/gespeichert wurde
'Liegen Änderungen vor bzw. wurde noch nicht gespeichert, kann gewählt werden ob
'diese Mappe gespeichert wird - ja speichert Mappe + Sicherheitskopie, nein speichert
'weder diese Mappe noch Sicherheitskopie
'Wurde Mappe vor dem Schließen nicht verändert bzw. bereits gespeichert, dann wird keine
'Sicherheitskopie erstellt und Mappe einfach geschlossen.
Dim WbZ As Workbook
Dim Pfad$, Dname$, Info
Pfad = "U:\Test\"
Dname = "Übersicht.xlsx"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With Me
If Not .ReadOnly Then
Select Case .Saved
'Mappe wurde geändert aber NICHT gespeichert
'Abfrage ob die Original-Mappe überhaupt gespeichert werden soll
Case Is = False
Info = MsgBox("Die Mappe wurde noch nicht gespeichert." & vbLf & _
"Soll diese Mappe gespeichert werden?", vbYesNo, _
"Schließen und Speichern?")
'Wenn Mappe vor dem Schließen gespeichert wird,
'dann Sicherheitskopie
If Info = vbYes Then
.Save
.Sheets.Copy
Set WbZ = ActiveWorkbook
With WbZ
.SaveAs Filename:=Pfad & Dname, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
.Close True
End With
.Close
'Wenn Mappe vor dem SChließen NICHT gespeichert wird,
'dann KEINE Sicherheitskopie
Else:
.Saved = True
.Close
End If
'Mappe wurde NICHT geändert oder bereits gespeichert
'Dann KEINE Sicherheitskopie
End Select
End If
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Speichert eine Sicherheitskopie der Mappe (ohne Makros) bei jedem Speichern
'der Originalmappe, außer bei "Speichern unter..."
Dim WbZ As Workbook
Dim Pfad$, Dname$
Pfad = "U:\Test\"
Dname = "Übersicht.xlsx"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With Me
If Not .ReadOnly And SaveAsUI = False Then
.Sheets.Copy
Set WbZ = ActiveWorkbook
With WbZ
.SaveAs Filename:=Pfad & Dname, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
.Close True
End With
End If
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Danke im Voras
Niko

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 10:47:25
.xlsm
benutze den Makrorecorder, der liefert einen guten Ansatz.

AW: Automatisch Kopie speichern von .xlsm
29.12.2019 11:10:17
.xlsm
Hallo Hajo,
vielen Dank für den Tipp...doch bin leider nicht die helle leuchte (besser gesagt..leute überhaupt net) was Macros angeht...bin ein Laie was VBA angeht...auch wenn ich es seit jahren versuche es zu verstehen...liegt wohl am alter :-)
Wie auch immer, alleine griege ich es nicht hin :-(
Schön wäre es wenn es in diesen VBA code gemacht wird...so kann ich ihn auch in andere mappen benutzen.
Danke
Niko
Anzeige
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 11:22:00
.xlsm
gut.
es ist nur eine Zeilke
ActiveWorkbook.SaveAs Filename:= _
"W:\Eigene Dateien\Hajo\Internet\Test\2020\Woche\Forum 01.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
was ist daran nicht zu verstehen.
Deinen Dateinamen da einzutragen dürfte ja nicht das Problem sein.
Viel Erefolg noch.
Ich bin dann raus.
Gruß Hajo
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 12:11:44
.xlsm
Das funkt!! :-) ..die speicherung klapp super...nur am ende kommt es in schleudern.
Vielen Dank für geduld und ausdauer mit mir :-)
Habe zwei "kleinichkeiten" :-)
Eins:
Beim Schließen der Datei kommt eine Message:
Eine Datei mit den Namen "W:\Eigene Dateien\Hajo\Internet\Test\2020\Woche\Forum 01.xlsm" ist bereits an diesem Speicherort Vorhanden. Soll sie ersetzt werden?
Wie kann ich dies unterdrücken bzw. nicht erscheinen lassen.
Es soll ja nach dem backup (Forum 01.xlsm) speichern in der vor vorhandenen Datei bleiben.
Gleichzeitig kommt ein VBA fehler(sehe Datei).
Zweie:
Wie kann ich in den Namen einem automatischen Speicher Datum hinzufügen?
Anbei die Datei mit der Änderung von Hajo…am ende hängt es ein bischen...irgendwo habe ich sicher ein fehler, sonst kann ich es mir nich erklären...die änderung die läuft ja, nur am ende kommt die meldung.
https://www.herber.de/bbs/user/134027.xlsm
Danke,
Niko
Anzeige
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 13:58:03
.xlsm
Hallo Niko,
so besser?
Option Explicit

Private Const Pfad As String = "\\WDMYCLOUD\Team\0 Niko\PLANER\Planer 2020\Backup\"
Private Const Dname As String = "Backup.xlsm"

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    'Prüft vor dem Schließen dieser Mappe ob Änderungen vorliegen/gespeichert wurde
    'Liegen Änderungen vor bzw. wurde noch nicht gespeichert, kann gewählt werden ob
    'diese Mappe gespeichert wird - ja speichert Mappe + Sicherheitskopie, nein speichert
    'weder diese Mappe noch Sicherheitskopie
    'Wurde Mappe vor dem Schließen nicht verändert bzw. bereits gespeichert, dann wird keine
    'Sicherheitskopie erstellt und Mappe einfach geschlossen.
    
    Dim Info As VbMsgBoxResult
    
    If Not ReadOnly Then
        
        If Not Saved Then
            
            'Mappe wurde geändert aber NICHT gespeichert
            'Abfrage ob die Original-Mappe überhaupt gespeichert werden soll
            
            If MsgBox("Die Mappe wurde noch nicht gespeichert." & vbLf & _
                "Soll diese Mappe gespeichert werden?", vbYesNo Or vbQuestion, _
                "Schließen und Speichern?") = vbYes Then
                
                'Wenn Mappe vor dem Schließen gespeichert wird,
                'dann Sicherheitskopie
                
                With Application
                    .ScreenUpdating = False
                    .DisplayAlerts = False
                    .EnableEvents = False
                End With
                
                Save
                
                Sheets.Copy
                Call ActiveWorkbook.Close(SaveChanges:=True, Filename:=Pfad & Dname)
                
                With Application
                    .ScreenUpdating = True
                    .DisplayAlerts = True
                    .EnableEvents = True
                End With
                
            Else
                
                'Wenn Mappe vor dem SChließen NICHT gespeichert wird,
                'dann KEINE Sicherheitskopie
                
                Saved = True
                
            End If
            'Mappe wurde NICHT geändert oder bereits gespeichert
            'Dann KEINE Sicherheitskopie
        End If
    End If
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    
    'Speichert eine Sicherheitskopie der Mappe (ohne Makros) bei jedem Speichern
    'der Originalmappe, außer bei "Speichern unter..."
    
    If Not ReadOnly And Not SaveAsUI Then
        
        With Application
            .ScreenUpdating = False
            .DisplayAlerts = False
        End With
        
        Sheets.Copy
        Call ActiveWorkbook.Close(SaveChanges:=True, Filename:=Pfad & Dname)
        
        With Application
            .ScreenUpdating = True
            .DisplayAlerts = True
        End With
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 14:19:39
.xlsm
Hi Nepumuk...vorab vielen, vielen dank für Zeit und geduld mit mir :-)
Es funktioniert teils, am ende macht es wieder diesen unfug...siehe fehler meldung.
Anbei auch die datei.
https://www.herber.de/bbs/user/134030.xlsm
Userbild
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 14:31:56
.xlsm
Hallo Niko,
ändere mal das:
Private Const Dname As String = "Backup.xlsm"
so:
Private Const Dname As String = "Backup"
Gruß
Nepumuk
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 14:52:51
.xlsm
Hi Nepumuk,
es läuft durch :-) ...doch es speichert als BackupBackup.xlsx nicht als .xlsm
und speichern tuts statt Pfad = "\\WDMYCLOUD\Team\0 Niko\PLANER\Planer 2020\Backup" auf
Pfad = "\\WDMYCLOUD\Team\0 Niko\PLANER\Planer 2020\" ein ordner davor...komisch.
Wenn es auf .xlsm machbar ist, wäre es super :-)
...wenn nicht, danke für alles bis jetzt :-)
Niko
Anzeige
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 15:17:52
.xlsm
Hallo Niko,
bei die fehlt der Backslash am Ende des Pfades. Ich hatte ihn drin.
Teste mal:
Option Explicit

Private Const Pfad As String = "\\WDMYCLOUD\Team\0 Niko\PLANER\Planer 2020\Backup\"
Private Const Dname As String = "Backup"

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    'Prüft vor dem Schließen dieser Mappe ob Änderungen vorliegen/gespeichert wurde
    'Liegen Änderungen vor bzw. wurde noch nicht gespeichert, kann gewählt werden ob
    'diese Mappe gespeichert wird - ja speichert Mappe + Sicherheitskopie, nein speichert
    'weder diese Mappe noch Sicherheitskopie
    'Wurde Mappe vor dem Schließen nicht verändert bzw. bereits gespeichert, dann wird keine
    'Sicherheitskopie erstellt und Mappe einfach geschlossen.
    
    Dim Info As VbMsgBoxResult
    
    If Not ReadOnly Then
        
        If Not Saved Then
            
            'Mappe wurde geändert aber NICHT gespeichert
            'Abfrage ob die Original-Mappe überhaupt gespeichert werden soll
            
            If MsgBox("Die Mappe wurde noch nicht gespeichert." & vbLf & _
                "Soll diese Mappe gespeichert werden?", vbYesNo Or vbQuestion, _
                "Schließen und Speichern?") = vbYes Then
                
                'Wenn Mappe vor dem Schließen gespeichert wird,
                'dann Sicherheitskopie
                
                With Application
                    .ScreenUpdating = False
                    .DisplayAlerts = False
                    .EnableEvents = False
                End With
                
                Save
                
                Sheets.Copy
                With ActiveWorkbook
                    .SaveAs Filename:=Pfad & Dname, FileFormat:=xlOpenXMLWorkbookMacroEnabled
                    .Close
                End With
                
                With Application
                    .ScreenUpdating = True
                    .DisplayAlerts = True
                    .EnableEvents = True
                End With
                
            Else
                
                'Wenn Mappe vor dem SChließen NICHT gespeichert wird,
                'dann KEINE Sicherheitskopie
                
                Saved = True
                
            End If
            'Mappe wurde NICHT geändert oder bereits gespeichert
            'Dann KEINE Sicherheitskopie
        End If
    End If
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    
    'Speichert eine Sicherheitskopie der Mappe (ohne Makros) bei jedem Speichern
    'der Originalmappe, außer bei "Speichern unter..."
    
    If Not ReadOnly And Not SaveAsUI Then
        
        With Application
            .ScreenUpdating = False
            .DisplayAlerts = False
        End With
        
        Sheets.Copy
        With ActiveWorkbook
            .SaveAs Filename:=Pfad & Dname, FileFormat:=xlOpenXMLWorkbookMacroEnabled
            .Close
        End With
        
        With Application
            .ScreenUpdating = True
            .DisplayAlerts = True
        End With
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 15:38:43
.xlsm
wow...again :-) Super es Funktioniert!!! :-)
Versuche noch Datum hizu zufügen doch ich bekomme es nicht hin.
.SaveAs Filename:=Pfad & Dname & Format(Date, "yyyy-mm-dd - hh:mm"), FileFormat:=xlOpenXMLWorkbookMacroEnabled
Wie kann ich das speicherdatum und Zeit im Dateinamen hinzufügen?
Wie auch immer, vielen dank auch Hajo und voralem dir Nepumuk.
Niko
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 15:43:30
.xlsm
Hallo Niko,
so:
.SaveAs Filename:=Pfad & Dname & Format$(Now, "yyyy-mm-dd - hh-mm"), FileFormat:=xlOpenXMLWorkbookMacroEnabled

Ein Doppelpunkt ist im Dateinamen nicht zulässig.
Gruß
Nepumuk
Anzeige
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 16:21:38
.xlsm
Hi Nepumuk,
es läuft durch ohne problem, doch das datum wird nicht in den dateinamen geschrieben.
Anbei die Datei mit der änderung.
https://www.herber.de/bbs/user/134035.xlsm
Danke,
Niko
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 16:30:49
.xlsm
Hallo Niko,
du hast die Änderung nur in eines der zwei Makros eingebaut.
Gruß
Nepumuk
AW: Automatisch Kopie speichern von .xlsm
29.12.2019 16:44:36
.xlsm
ohh man ääeehhh...wie besch....t kann man nur sein...könnte mich gegen die Wand klatschen :-))
vor selbst Ärgernis und Freunde :-) ..Es funkt!!!! :-)
Kann es kaum genug sagen zu dir persönlich und in diesen Forum….vielen,vielen Dank :-)
Bin oft schwer vom Begriff…ist wohl das alter…aber jedes Mal wenn mir hier geholfen wird und ich den ganzen code vor mir habe, merke ich “langsam“ (manchmal zu langsam :-) wie VBA funktioniert. Zwar in Teilen aber immerhin :-)
Danke nochmals…und wünsche einen guten Rutsch ins neue Jahr mit viel Gesundheit, Freude und Liebe.
Niko.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige