Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datei kopieren, umbenennen und öffnen

Datei kopieren, umbenennen und öffnen
08.04.2017 11:39:02
Borstii
Moin moin,
ich habe ein Programm zum Importieren von Daten per VBA geschrieben. Dabei wird vorher automatisch ein Kopie der Excel-Datei als Sicherung gespeichert. Nun möchte ich gerne, dass ich per VBA die Sicherung auswählen kann und damit die geöffnete Datei ersetze. Folgenden, unten stehenden VBA-Code habe mir schon erstellt: Dabei wird per FileDialog die einzulesende Datei ausgewählt. Diese kopiere ich mir in den Ordner der Import-Excel-Datei. Die geöffnete Datei wird gelöscht und die vorher kopierte Sicherungsdatei umbenannt zur "richtigen" Datei. Was mir nun noch fehlt ist, dass die kopierte und umbenannte Datei geöffnet wird, aber dies bekomme ich nicht hin. Entweder stehe ich auf dem Schlauch oder ich bin zu doof. Würde mich freuen, wenn hier jemand einen Lösungsvorschlag für mich hätte. Der Code unten funktioniert soweit, nur Code zum Öffnen der Datei fehlt noch.
Gruß Borstii
Sub SicherungEinspielen()
' Fehlermeldung
On Error GoTo FEHLER
' Sicherungspfad einstellen
strQuelle = ThisWorkbook.Path & "\Sicherung"
' Sicherungsdatei auswählen
With Application.FileDialog(msoFileDialogFilePicker)
With .Filters
.Clear
.Add "Excel-Dateien (*.xlsm)", "*.xlsm", 1
End With
.InitialFileName = strQuelle
.InitialView = msoFileDialogViewDetails
.Title = "Sicherung einlesen"
.AllowMultiSelect = False
.ButtonName = "Auswahl"
If .Show = -1 Then
strDatei = .SelectedItems(1)
Else
MsgBox "Keine Datei ausgewählt!", vbExclamation, FEHLER
Exit Sub
End If
End With
' Datei löschen und Sicherung einlesen
With ThisWorkbook
strNeu = .Path & SAISON
strBackUp = .Path & "\" & Dir(strDatei)
FileCopy strDatei, strBackUp
Unload Uf_Info
.Save
'.Saved = True
.ChangeFileAccess xlReadOnly
Kill .FullName
Name strBackUp As strNeu
.Close False
End With
Exit Sub
Fehlermeldung
FEHLER:
Call Fehlermeldung
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei kopieren, umbenennen und öffnen
10.04.2017 20:35:33
Borstii
Mittlerweile wurde das Problem gelöst.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Datei kopieren, umbenennen und öffnen in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei mithilfe von VBA zu kopieren, umzubenennen und zu öffnen, kannst du den folgenden Code verwenden. Dieser basiert auf dem von Borstii bereitgestellten Beispiel und erweitert es um die Öffnung der neuen Datei.

Sub SicherungEinspielen()
    ' Fehlermeldung
    On Error GoTo FEHLER
    ' Sicherungspfad einstellen
    strQuelle = ThisWorkbook.Path & "\Sicherung"

    ' Sicherungsdatei auswählen
    With Application.FileDialog(msoFileDialogFilePicker)
        .Filters.Clear
        .Filters.Add "Excel-Dateien (*.xlsm)", "*.xlsm", 1
        .InitialFileName = strQuelle
        .InitialView = msoFileDialogViewDetails
        .Title = "Sicherung einlesen"
        .AllowMultiSelect = False
        .ButtonName = "Auswahl"
        If .Show = -1 Then
            strDatei = .SelectedItems(1)
        Else
            MsgBox "Keine Datei ausgewählt!", vbExclamation, FEHLER
            Exit Sub
        End If
    End With

    ' Datei löschen und Sicherung einlesen
    With ThisWorkbook
        strNeu = .Path & "\NeueDatei.xlsm" ' Hier den neuen Dateinamen festlegen
        strBackUp = .Path & "\" & Dir(strDatei)

        ' Datei kopieren
        FileCopy strDatei, strBackUp
        .Save
        .ChangeFileAccess xlReadOnly
        Kill .FullName ' Aktuelle Datei löschen
        Name strBackUp As strNeu ' Sicherungsdatei umbenennen
        .Close False
    End With

    ' Neue Datei öffnen
    Workbooks.Open strNeu
    Exit Sub

FEHLER:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End Sub

Häufige Fehler und Lösungen

  • Fehlermeldung beim Öffnen der Datei: Stelle sicher, dass der Pfad zur neuen Datei korrekt ist und die Datei existiert. Überprüfe auch die Dateiendung.
  • Datei wird nicht gelöscht: Achte darauf, dass die Datei nicht von einem anderen Programm verwendet wird. Andernfalls kann sie nicht gelöscht werden.

Alternative Methoden

Eine alternative Methode, um eine Excel-Datei zu kopieren und umzubenennen, ist die Verwendung von PowerShell oder Batch-Skripten, wenn du eine Automatisierung außerhalb von VBA benötigst. Diese Methoden sind jedoch weniger flexibel und erfordern ein gewisses Maß an technischem Wissen.


Praktische Beispiele

  1. Einfache Sicherung der aktuellen Datei: Du kannst den oben genannten Code anpassen, um die aktuelle Datei in einen Sicherungsordner zu kopieren, ohne sie umzubenennen.
  2. Erstellen einer Sicherung vor dem Import: Bevor du Daten importierst, kannst du die aktuelle Datei als Sicherung speichern, um sicherzustellen, dass keine Daten verloren gehen.

Tipps für Profis

  • Nutze die FileSystemObject-Bibliothek, um erweiterte Dateiverwaltungsoperationen durchzuführen, wie z.B. das Überprüfen, ob eine Datei existiert, bevor du versuchst, sie zu löschen oder umzubenennen.
  • Implementiere eine Benutzeroberfläche, um die Auswahl der Sicherungsdatei zu vereinfachen, anstatt nur den FileDialog zu verwenden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Sicherungsdatei immer in einem bestimmten Ordner gespeichert wird?
Du kannst den Pfad für die Sicherung im Code festlegen, indem du strQuelle entsprechend anpasst.

2. Was mache ich, wenn ich mehrere Dateien gleichzeitig kopieren möchte?
Du kannst die Schleifenstruktur in VBA verwenden, um mehrere Dateien auszuwählen und zu kopieren. Dazu ist eine Anpassung des Codes erforderlich, um die Auswahl mehrerer Dateien zu ermöglichen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige