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. Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA

    in Microsoft Excel Hilfe
    Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA: Hallo Leute, Hoffentlich könnt ihr mir hier helfen, ich krieg den Syntax einfach nicht hin (wahrscheinlich ist es auch totaler käse den ich programmiert habe). Also im Grunde soll eine Datei...
  3. Textteile aus Zelle mit mehreren Absätzen

    in Microsoft Excel Hilfe
    Textteile aus Zelle mit mehreren Absätzen: Hallo, ich habe folgendes Problem: Ich habe in einer Liste in einer Zelle mehrere Angaben aus denen ich Textteile (z.B. alles was in () oder {} ist) herausziehen will, um damit weiter zurechnen....
  4. Aufrufen Datei aus SharePoint per VBA

    in Microsoft Access Hilfe
    Aufrufen Datei aus SharePoint per VBA: Wer kann mir helfen. In meiner Firma gibt es Dateien in diversen Ordner in Form von SharePoints, worauf alle Kolleginnen und Kollegen zugreifen kann. Dort habe ich eine Excel-Vorlage, worin die...
  5. VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.

    in Microsoft Excel Hilfe
    VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.: Hallo zusammen, Eine Tabelle mit 9 Worksheets, Datenblatt, Studien, Studie_1 ...Studie_7. Auf dem Deckblatt werden in Zelle B4-B10 die Namen der Studien eingetragen. Davon abhängig ob ein Name...
  6. VBA Zeilen kopieren mit Bedingung

    in Microsoft Excel Hilfe
    VBA Zeilen kopieren mit Bedingung: Hallo zusammen, Ich möchte per Makro Zeilen aus Tabelle2 in Tabelle3 kopieren, wenn eine Bedingung erfüllt ist. Bedingung: Der Wert in Spalte E (Tabelle2) kommt in Tabelle1 in Spalte E vor....
  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