Office: VBA - BackUp-Speichern - Code funktioniert nicht

Helfe beim Thema VBA - BackUp-Speichern - Code funktioniert nicht in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo in die Runde, seit etwa einem Jahr benutze ich in einer Datei ein Makro um automatische BackUps zu speichern. Jetzt benötige ich diese... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von fette Elfe, 27. Oktober 2010.

  1. fette Elfe Erfahrener User

    VBA - BackUp-Speichern - Code funktioniert nicht


    Hallo in die Runde,

    seit etwa einem Jahr benutze ich in einer Datei ein Makro um automatische BackUps zu speichern.

    Jetzt benötige ich diese Funktion auch für eine andere Datei, habe den Code übernommen und angepasst...
    und jetzt funktioniert nichts mehr.

    Erstmal sagt mir Excel bei der Prüfung ob der BackUp-Ordner existiert, das es den Ordner nicht findet und bewirft mich mit einer Fehlermeldung.
    Eigentlich sollte in diesem Falle der Ordner erstellt werden.
    *grummel*

    Wenn ich den Ordner manuell erstelle, wird das Makro ohne Fehlermeldung durchlaufen, aber der Ordner bleibt leer, es wird keine Kopie meiner Datei gespeichert.


    Könnt Ihr Euch das bitte mal ansehen und mir eventuell sagen wo ich nen Fehler drinn habe?

    Danke Euch

    Gruß Achim

    Code:
    Option Explicit
    
    Dim a As Variant                'fortlaufende Dateinummerierung
    
    Dim Quelle As String            'Quell-Datei
    Dim Ziel As String              'BackUp-Datei
    Dim Ordner As String            'Pfad/Name des BackUp Ordners
    
    Dim wkb1 As String              'Workbooks("Lagerliste.xlsm")
    Dim WBName1 As String           'wkb1 + Datum + a + Dateiendung
    
    
    Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" _
            (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, _
            ByVal bFailIfExists As Long) As Long
            'bFailIfExists gibt es folgende Möglichkeiten:
            '"0": eine vorhandene Datei soll überschrieben werden
            '"1": eine vorhandene Datei soll nicht überschrieben werden
            'Die Funktion liefert zwei verschiedene Rückgabewerte:
            '"0": Vorgang erfolgreich
            '"1": Vorgang nicht erfolgreich
    
    Public Function API_CopyFile(strSourceFile As String, strTargetFile As String, _
                                 Optional lngFileExist As Long = 0) As Long
       API_CopyFile = CopyFile(strSourceFile, strTargetFile, lngFileExist)
    End Function
    
    Public Function fctVerzeichnisExists(Ordner As String) As Boolean
    On Error GoTo Fehler
        ChDir Ordner
        fctVerzeichnisExists = True
        Exit Function
    Fehler:
        fctVerzeichnisExists = False
     End Function
    Code:
    Public Sub BackupSpeichern()
    
    a = 1
    wkb1 = "Lagerliste.xlsm"
    WBName1 = "Backup Lagerliste" & " - " & Format(Date, "yyyy-mm-dd") & " - " & a & ".xlsm"
        
        'Ordner erstellen falls nicht existiert
        Ordner = ThisWorkbook.Path & "\Backup Lagerliste"
        If Not fctVerzeichnisExists(Ordner) Then
            MkDir Ordner
        End If
        
        'BackUp Lagerliste
        Quelle = ThisWorkbook.Name
        Ziel = Ordner & "\" & WBName1
            'Abfrage ob Ziel schon existiert und Backup speichern
            If Dir(Ziel) = "" Then
                API_CopyFile Quelle, Ziel
            Else
                For a = 2 To 999
                    If Dir(Ziel) = "" Then
                        API_CopyFile Quelle, Ziel
                        Exit For
                    End If
                Next a
            End If
    
    End Sub
     
    fette Elfe, 27. Oktober 2010
    #1
  2. fette Elfe Erfahrener User
    Hallo in die Runde,

    schade das niemand etwas zu meinem Problem sagen konnte.

    Inzwischen habe ich selber eine Lösung hinbekommen.
    (sogar kürzer als vorher)

    Hinbekommen deshalb, weil man im WWW zwar zu den meisten Dingen haufenweise Tipps und Lösungen findet, diese aber bei einem selber noch lange nicht funktionieren müssen.
    Da muss man erst die korrekte Schreibweise herausfinden, welche Lösung für die benutze Excel-Version geeignet ist, usw... und dann noch an die eigen Anforderungen anpassen und umschreiben.

    Naja, falls mal jemand nach so einer Lösung sucht, vielleicht kann er/sie ja dann etwas mit dem hier anfangen:

    Code:
    Option Explicit
    
    Dim a As Variant                'Variable für Schleife - Dateinamen prüfen ob existiert
                                    'fortlaufende Dateinummerierung/Tag
    
    Dim Ziel As String              'Pfad/Name Zieldatei
    Dim BackUpOrdner As String      'Pfad/Name des BackUp Ordners
    
    Dim wkb1 As String              'Workbooks("Lagerliste.xlsm")
    Dim WBName1 As String           'wkb1 + Datum + a + Dateiendung
    
    
    
    Public Sub BackupSpeichern()
    
    a = 1
    wkb1 = "Lagerliste.xlsm"
    WBName1 = "Backup Lagerliste" & " - " & Format(Date, "yyyy-mm-dd") & " - " & a & ".xlsm"
        
        'Ordner erstellen falls nicht existiert
        BackUpOrdner = ThisWorkbook.Path & "\BackUp Lagerliste"
        If Dir(BackUpOrdner, vbDirectory) = "" Then
            MkDir (BackUpOrdner)
        End If
        
        'BackUp Lagerliste
        Ziel = BackUpOrdner & "\" & WBName1
            'Abfrage ob Ziel schon existiert und Backup speichern
            If Dir(Ziel) = "" Then
                ActiveWorkbook.SaveCopyAs Filename:=BackUpOrdner & "\" & WBName1
            Else
                For a = 2 To 999
                    WBName1 = "Backup Lagerliste" & " - " & _
                    Format(Date, "yyyy-mm-dd") & " - " & a & ".xlsm"
    
                    Ziel = BackUpOrdner & "\" & WBName1
                    If Dir(Ziel) = "" Then
                        ActiveWorkbook.SaveCopyAs Filename:=BackUpOrdner & "\" & WBName1
                        Exit For
                    End If
                Next a
            End If
    
    End Sub

    Einfach so in ein Modul, ganz ohne Funktion oder so...
    klappt bei mir wunderbar.
     
    fette Elfe, 28. Oktober 2010
    #2
Thema:

VBA - BackUp-Speichern - Code funktioniert nicht

Die Seite wird geladen...
  1. VBA - BackUp-Speichern - Code funktioniert nicht - Similar Threads - VBA BackUp Speichern

  2. VBA - Ausblenden aller Tabellenblätter außer X

    in Microsoft Excel Hilfe
    VBA - Ausblenden aller Tabellenblätter außer X: Guten Morgen, ich bin ziemlicher VBA Neuling und habe aktuell Probleme mit einer Datei, die ich entwickelt habe. Zu der Datei: Es handelt sich um Daten, auf die lediglich ein bestimmter...
  3. Kamera in Excel einbinden und per vba Fotos erstellen

    in Microsoft Excel Hilfe
    Kamera in Excel einbinden und per vba Fotos erstellen: Kamera in Excel einbinden Hallo, ich suche einen Code für eine UserForm, mit der ich die integrierte Kamera des WinPC in der UserForm anzeigen lassen kann und davon ein Bild sichern kann.
  4. Liste aller Comboboxen im Sheet

    in Microsoft Excel Hilfe
    Liste aller Comboboxen im Sheet: Hallo allerseits, Ich möchte alle Comboboxen eines Worksheets mit VBA auslesen und finde nicht den Namen der Liste in den Sheet-Eigenschaften, in der die Comboboxen gespeichert sind. Wer weiß, wo...
  5. Pivot Tabelle: Quelle per VBA verändern

    in Microsoft Excel Hilfe
    Pivot Tabelle: Quelle per VBA verändern: Hi all, gibt es eine Möglichkeit, wie ich die Quelle einer Pivot Tabelle mit einem Klick aktualisieren kann? 1) Beispiel Quelle: [Datum_Dateiname.xlsx]Tabelle1!$A:$AA 2) Beispiel wie es je nach...
  6. Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche)

    in Microsoft Excel Hilfe
    Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche): Hallo zusammen, ich arbeite mit einer Excel-Arbeitsmappe, die mehrere Tabellenblätter enthält. Jedes Blatt dokumentiert bestimmte Vorgänge, und die Struktur der Daten ist in allen Blättern...
  7. Backup SQL Server Datenbank VBA

    in Microsoft Access Hilfe
    Backup SQL Server Datenbank VBA: Hallo an alle! Ich bastle gerade an einem Modul für eine Datensicherung für den MS SQL-Server aus einem MS Access Frontend heraus. Irgendwie habe ich einen Knoten, ich schaffe es nicht den String...
  8. Datenbank-Backup aus VBA

    in Microsoft Access Hilfe
    Datenbank-Backup aus VBA: Hallo, ich bin vor die Aufgabe gestellt, aus der Datenbank die Möglichkeit zu bieten, per Knopfdruck in einem Formular die ganze Datenbank als Backup.mdb in ein Sicherungsverzeichnis zu...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden