Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Andere Mappe per VBA als Kopie öffnen

Forumthread: Andere Mappe per VBA als Kopie öffnen

Andere Mappe per VBA als Kopie öffnen
28.02.2019 12:57:46
stormlamp
Hallo Zusammen,
ich möchte mit Hilfe einer Start-Arbeitsmappe eine andere Arbeitsmappe grundsätzlich als Kopie öffnen.
Dazu habe ich ein Makro aufgezeichnet, in dem ich mit Strg-O das Öffnungsmenü aufgerufen habe und dann mit "Öffnen als Kopie" die Datei "Test.xlsm" öffne.
Der aufgezeichnete Code ist:

Private Sub Workbook_Open()
Workbooks.Open Filename:= _
"\\Test.xlsm" _
, UpdateLinks:=0
End Sub
Offenbar ist der aufgezeichnete Code aber nicht richtig, da die Start-Arbeitsmappe auf einem anderen Rechner die Test.xlsm nicht als Kopie sondern als Original öffnet.
Was muss ich ändern, damit tatsächlich immer nur eine Kopie geöffnet wird?
Viele Grüße
Hans
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Andere Mappe per VBA als Kopie öffnen
28.02.2019 13:04:12
Luschi
HalloHans,
mein aufgezeichnetes Makro (Öffnen als Kopie) sieht so aus:
Workbooks.Add Template:="F:\Daten\Downloads\127966.xlsx"
Gruß von Luschi
aus klein-Paris
AW: Andere Mappe per VBA als Kopie öffnen
28.02.2019 13:09:49
stormlamp
Hallo,
danke für die schnelle Antwort. ich habe es ein wenig modifiziert:
  • 
    Private Sub Workbook_Open()
    Dim strPathAndFileName As String
    strPathAndFileName = "\\Test.xlsm"
    Workbooks.Add Template:=strPathAndFileName
    End Sub
    

  • Gibt es noch nie Möglichkeit, dass diese Kopie abgespeichert werden kann? Ansonsten bekomme ich von den verschiedenen Anwendern jede Menge "Müll"-Dateien, die dann wieder manuell gelöscht werden müssen.
    Viele Grüße
    Hans
    Anzeige
    ;
    Anzeige

    Infobox / Tutorial

    Andere Mappe per VBA als Kopie öffnen


    Schritt-für-Schritt-Anleitung

    Um eine andere Arbeitsmappe per VBA als Kopie zu öffnen, folge diesen Schritten:

    1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu starten.

    2. Klicke im Projekt-Explorer auf die Arbeitsmappe, in der du das Makro erstellen möchtest.

    3. Wähle Einfügen > Modul, um ein neues Modul hinzuzufügen.

    4. Kopiere den folgenden Code in das Modul:

      Private Sub Workbook_Open()
         Dim strPathAndFileName As String
         strPathAndFileName = "\\Test.xlsm"
         Workbooks.Add Template:=strPathAndFileName
      End Sub
    5. Speichere die Änderungen und schließe den VBA-Editor.

    6. Schließe die Arbeitsmappe und öffne sie erneut. Die Arbeitsmappe Test.xlsm sollte jetzt als Kopie geöffnet werden.


    Häufige Fehler und Lösungen

    • Fehler: Die Datei wird nicht als Kopie geöffnet.

      • Lösung: Stelle sicher, dass du den Code wie oben beschrieben anpasst. Die Verwendung von Workbooks.Add Template:=strPathAndFileName öffnet die Datei als Vorlage und nicht als Kopie.
    • Fehler: Die Datei kann nicht gefunden werden.

      • Lösung: Überprüfe den Pfad zur Datei und stelle sicher, dass er korrekt ist. Verwende doppelte Backslashes (\\) für Netzwerkpfade.

    Alternative Methoden

    Wenn das oben beschriebene Makro nicht funktioniert, kannst du auch folgende Methode ausprobieren:

    • Kopieren und Einfügen: Du kannst die Arbeitsmappe manuell kopieren und dann über VBA ein neues Workbook erstellen, indem du den Inhalt der kopierten Datei einfügst.

      Beispiel:

      Sub KopiereUndOeffne()
         Dim wb As Workbook
         Dim strPath As String
         strPath = "\\Test.xlsm"
         FileCopy strPath, "C:\Temp\Test_Kopie.xlsm"
         Set wb = Workbooks.Open("C:\Temp\Test_Kopie.xlsm")
      End Sub

    Praktische Beispiele

    Hier ist ein Beispiel, wie du die Kopie auch direkt speichern kannst, um die "Müll"-Dateien zu vermeiden:

    Private Sub Workbook_Open()
        Dim strPathAndFileName As String
        Dim newWorkbook As Workbook
        strPathAndFileName = "\\Test.xlsm"
    
        Set newWorkbook = Workbooks.Add Template:=strPathAndFileName
        newWorkbook.SaveAs Filename:="C:\Temp\Test_Kopie_" & Format(Now, "yyyymmdd_hhmmss") & ".xlsm"
    End Sub

    In diesem Beispiel wird die Kopie der Datei automatisch mit einem Zeitstempel gespeichert.


    Tipps für Profis

    • Verwende Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Probleme zu vermeiden. Beispiel:

      On Error GoTo ErrorHandler
      ' Dein Code
      Exit Sub
      ErrorHandler:
         MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    • Variablen für Pfade: Nutze Variablen für die Dateipfade, um den Code flexibler zu gestalten.

    • Makros sicher speichern: Denke daran, deine Arbeitsmappe als xlsm zu speichern, um die Makros zu behalten.


    FAQ: Häufige Fragen

    1. Frage
    Wie kann ich sicherstellen, dass die Datei immer als Kopie gespeichert wird?
    Antwort: Nutze den SaveAs-Befehl im Makro, um die Datei unter einem neuen Namen zu speichern, wie im praktischen Beispiel gezeigt.

    2. Frage
    Kann ich das Makro automatisiert zu einer bestimmten Zeit ausführen lassen?
    Antwort: Ja, du kannst das Makro über die Windows Aufgabenplanung automatisieren, indem du es in eine Excel-Datei einfügst und die Datei zur gewünschten Zeit öffnest.

    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