Office: (Office 2016) Datei mit Makros automatisch speichern

Helfe beim Thema Datei mit Makros automatisch speichern in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe da ein Problem mit dem automatichen Speichern von Dateien mit Makros. Ich möchte: Daten aus einer anderen Datei... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Lutz Fricke, 16. August 2016.

  1. Lutz Fricke Erfahrener User

    Datei mit Makros automatisch speichern


    Hallo zusammen,

    ich habe da ein Problem mit dem automatichen Speichern von Dateien mit Makros.

    Ich möchte:
    • Daten aus einer anderen Datei bearbeiten und in eine neue Datei "Auftragsliste" schreiben (funktioniert).
    • In der neuen Datei "Auftragsliste" ein Makro zur Verfügung stellen, dass bei Eingabe von Werten eine Formatierung vornimmt (funktioniert, da ich als neue Datei eine Vorlage hernehme).
    • Die neue Datei automatisch auf immer denselben Namen "Auftragsliste" speichern (funktioniert).
    • Beim Schließen der Datei nochmals mit Angabe des aktuellen Datums im Namen "Auftragsliste 16.08.2016" abspeichern.
    • Falls die Datei schon vorhanden ist mit "(1)", "(2)" usw. "Auftragsliste 16.08.2016 (1)" kennzeichnen.
    • Die Datei "Auftragsliste" automatisch mit aktivierten Makros öffnen können.

    Wie kann ich das am Besten aufziehen?
    Ich habe in der Vorlage den folgenden Code als Modul hinterlegt.

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Versuch = 0
    DateiSuche = Dir(ThisWorkbook.Path & "\" & "Auftragsliste " & Date & " (*).xlsm")
    Do Until DateiSuche = ""
    DateiSuche = Dir()
    Versuch = Versuch + 1
    Loop
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & "Auftragsliste " & Date & " (" & Versuch & ").xlsm"
    End Sub


    Ich bekomme beim Schließen der Datei immer die übliche "Speichern"-Abfrage, aber das Makro wird nicht angefasst.

    Schon mal vielen Dank für Eure Hilfe,
    Lutz
     
    Lutz Fricke, 16. August 2016
    #1
  2. Exl121150 Erfahrener User
    Hallo Lutz,

    1) Was mir aufgefallen ist, dass du den Code in ein "Modul" eingefügt hast. Falls du damit tatsächlich ein (Standard)modul meinst und nicht das Codemodul, das in "DieseArbeitsmappe" bzw. "ThisWorkbook" enthalten ist, so wäre das eine Erklärung für das Nicht-Reagieren-Wollen des Makros.
    Mit der Sub "Workbook_BeforeClose(..)" soll nämlich eine Ereignisbehandlung für das "BeforeClose"-Event des "Workbook"-Objektes bewirkt werden - wie der Name dieser Sub ja schon andeutet. Nur das Workbook-Objekt namens "DieseArbeitsmappe" kann diesen ganz speziellen Zweck der Sub erkennen. In einem allgemeinen Codemodul wird sie dagegen nur für eine beliebige Sub gehalten, die irgendwann von einer anderen Programmzeile aus aufgerufen wird.

    2) Weiters solltest du die rot gefärbten Stellen im nachfolgenden Code hinzufügen - Variablen, die verwendet werden, sollten stets vorher deklariert werden - aber ganz wichtig ist die rot gefärbte Codepassage in der "SaveAs"-Methode des Workbook-Objektes. Wird nämlich das Excel-Workbook nicht im Standardformat (als *.xlsx) gespeichert, so genügt nicht die bloße Angabe der Dateierweiterung (als *.xlsm), sondern man muss zusätzlich dann den Dateityp, der zum Speichern verwendet werden soll, angeben.

    Code:
    [COLOR="#FF0000"]Option Explicit[/COLOR]
    
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    [COLOR="#FF0000"]  Dim Versuch As Integer
      Dim DateiSuche As String
    [/COLOR]  Versuch = 0
      DateiSuche = Dir(ThisWorkbook.Path & "\" & "Auftragsliste " & Date & " (*).xlsm")
      Do Until DateiSuche = ""
        DateiSuche = Dir()
        Versuch = Versuch + 1
      Loop
      ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & "Auftragsliste " & Date & " (" & Versuch & ").xlsm"[COLOR="#FF0000"][B], _
                            FileFormat:=xlOpenXMLWorkbookMacroEnabled[/B][/COLOR]
    End Sub
    
     
    Exl121150, 17. August 2016
    #2
  3. Lutz Fricke Erfahrener User
    Hallo Anton,

    vielen Dank. Manchmal sieht man den Wald vor lauter Bäumen nicht.

    Natürlich habe ich die Variablen vorher definiert (allerdings wie üblich etwas schlampig mit "Public Versuch" ohne Variablentyp).

    Noch ne Frage zum Fileformat.
    Wenn ich eine .xlsm-Datei manuell als .xlsx-Datei speichere, bekomme ich eine Meldung, dass die Datei ohne Makros gespeichert wird. Wenn ich die bestätige, habe ich anschließend eine Makro-freie Arbeitsmappe. Wenn ich das ganze im Recorder aufzeichne und anschließend abspiele, mault das Makro.
    Wie erzeuge ich eine Makro-freie Kopie einer Datei?
    Ich kenne bisher nur den Weg, den Code per Makro zu löschen und anschließend zu speichern. Geht das auch einfacher?

    Gruß,
    Lutz
     
    Lutz Fricke, 18. August 2016
    #3
  4. Exl121150 Erfahrener User

    Datei mit Makros automatisch speichern

    Hallo Lutz,

    Du musst Folgendes programmieren,
    1) um die Excel-Datei samt Makro zu speichern:
    >>> ActiveWorkbook.SaveAs Filename:="Pfad\Dateiname.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    2) um die Excel-Datei ohne Makro zu speichern, obwohl ein Makro in der Arbeitsmappe enthalten ist:
    >>> ActiveWorkbook.SaveAs Filename:="Pfad\Dateiname.xlsx", FileFormat:=xlOpenXMLWorkbook
    ohne einen Fehler im Makro selbst zu verursachen.

    3) Hast du jedoch in der Arbeitsmappe im Makro Folgendes stehen:
    >>> ActiveWorkbook.SaveAs Filename:="Pfad\Dateiname.xlsm", FileFormat:=xlOpenXMLWorkbook
    bricht das Makro mit einer Fehlermeldung ab.

    Der Grund ist relativ leicht einsichtig zu machen: Würde das Makro die 3. Variante erlauben, stünde somit im Pfad "Pfad\" eine Datei "Dateiname.xlsm" im Dateiverzeichnis. Durch einen Doppelklick im Windows-Explorer auf diesen Dateinamen startet dann aufgrund der Dateierweitung "xlsm" die Excel-Applikation, und diese öffnet und liest die in dieser Datei enthaltene Excel-Arbeitsmappe ein - aber wegen der Dateierweiterung "xlsm" erwartete die Excel-Applikation, dass sich ein Makro in der Datei befinde - was aber nicht der Fall ist.
    Um diese Fehlersituation von vorneherein zu verhindern, also eine regelwidrige Excel-Datei gar nicht zuzulassen, deswegen lässt Excel zur Runtime das nicht zu und bricht an dieser Stelle die Makroausführung ab.
     
    Exl121150, 18. August 2016
    #4
  5. Lutz Fricke Erfahrener User
    Ich könnte schwören (beim Leben meiner Großmutter), dass ich genau dass bereits versucht habe und gescheitert bin.

    Aber jetzt läuft's!!!:D ...und das ist das Wichtigste.

    Vielen Dank.
     
    Lutz Fricke, 18. August 2016
    #5
Thema:

Datei mit Makros automatisch speichern

Die Seite wird geladen...
  1. Datei mit Makros automatisch speichern - Similar Threads - Datei Makros automatisch

  2. Speicherung von Makros gültig für alle Word-Dateien

    in Microsoft Word Hilfe
    Speicherung von Makros gültig für alle Word-Dateien: Guten Tag, in früheren Office Versionen habe ich die .dot-Datei in„C:\Programme\Microsoft Office\Office\Startup\“ abgelegt. Damit war das Makro automatisch in allen neu aufgerufen Dokumenten...
  3. Makros für die neueste Datei in Unterordner ausführen

    in Microsoft Excel Hilfe
    Makros für die neueste Datei in Unterordner ausführen: Hallo Liebes Forum, das hier ist mein erster Beitrag und ich hoffe Ihr könnt mir helfen. Ich habe mir ein Makros zusammengestrickt, welches bislang genau das tut was ich möchte: Eine Tabelle aus...
  4. Excel Datei mit Makros startet extrem langsam

    in Microsoft Excel Hilfe
    Excel Datei mit Makros startet extrem langsam: Hallo Forum! Vielleicht könnt ihr mir bei folgendem Problem helfen. Ich habe zwar schon ein paar Hinweise gefunden, bin aber der Lösung nicht näher gekommen. Eine Bekannte hat ein kleines...
  5. Datei öffnen aber Makros deaktivieren

    in Microsoft Excel Hilfe
    Datei öffnen aber Makros deaktivieren: Hallo, gibt es eine Möglichkeit Excel-Dateien über VBA zu öffnen ohne dass Makros in dieser Datei ausgeführt werden? Ich möchte Werte aus diesen Dateien importieren aber diese Dateien haben ein...
  6. Makros beim Öffnen/Schließen der Datei ausführen

    in Microsoft Excel Hilfe
    Makros beim Öffnen/Schließen der Datei ausführen: Hallo, ich möchte beim Öffnen / Schließen einer Excel Datei ein Makro ausführen. Den grundsätzlichen Vba-Code habe ich bereits in anderen Beiträgen gefunden nur hapert es noch an der...
  7. Rechnungskopie ohne Makros und Buttons in eine andere Datei

    in Microsoft Excel Hilfe
    Rechnungskopie ohne Makros und Buttons in eine andere Datei: Guten Morgen, habe ein Problem das ich nicht gelöst bekomme. Habe ein Makro das eine Kopie des Blattes in einen anderen Ordner speichert, nur leider fragt mich Excel bei jedem speichern ob ich...
  8. Makros in kopierten oder verschobenen Dateien

    in Microsoft Excel Hilfe
    Makros in kopierten oder verschobenen Dateien: Hallo, ich habe folgendes Problem: Ich habe eine Tabelle mit einigen Makros erstellt und diese auf eine neue Symbolleiste gelegt. Das funktioniert soweit auch ganz gut. Wenn ich die Datei nun...
Schlagworte:
  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