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

Forumthread: Excel-Vorlage mit Makros - Automatisch Speichern

Excel-Vorlage mit Makros - Automatisch Speichern
11.10.2023 09:15:55
JBR
Hallo zusammen,

ich habe eine Excel-Vorlage mit Makros erstellt und möchte gerne, dass die Speicherung der Datei, mit vordefinierten Dateinamen, automatisch durchgeführt wird sobald eine bestimmte Zelle verändert wird.

Aus der “normalen" Excel-Datei mit Makros funktioniert es ohne Probleme, nur bei der Excel-Vorlage komm ich nicht weiter.

Starte ich das Makro aus der “normalen" Excel-Datei mit Makros öffne sind der “Speichern unter“ Dialog in dem Verzeichnis in dem die Datei liegt.
Bei der Excel-Vorlage öffnet sich der “Speichern unter“ Dialog unter c:.

Ich gehe davon aus, dass der “ActiveWorkbook.Path“ das Problem ist, da es ja noch kein “Workbook“ ist sondern eine Vorlage.

Die .xltm lässt sich nicht hochladen dafür habe ich die funktionierende .xlsm angehängt. (Hier muss A1 geändert werden um das Makro zu starten)
https://www.herber.de/bbs/user/163328.xlsm

Vielleicht hat jemand eine Idee.
Viele Grüße,
Jörg
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Vorlage mit Makros - Automatisch Speichern
11.10.2023 09:29:51
Oberschlumpf
Hi Jörg,

ersetz deinen Code durch diesen hier


Sub Datei_speichern()

Dim fileSaveName As String
Dim Woche As String
Dim Jahr As String
Dim lstrPath As String 'Variable für Pfad (+Dateiname) definieren


Datei = "Datei"
Woche = "Woche"

'Datei mit vorgegebenen Namen als xlsm speichern

'wenn ActiveWorkbook.Path = ""; und DAS IST ES, wenn Vorlage geöffnet wurde, dann...
If ActiveWorkbook.Path = "" Then
'...Pfad-Variable MIT DEINER ZIELPFAD-Vorgabe belegen (bei mir wäre es "D:Herber")
lstrPath = "D:Herber" & Woche & "_" & Schiff & ".xlsm"
'wenn nicht Vorlage, sondern schon mal erstellte/gespeicherte Datei neu gespeichert werden soll, dann...
Else
'...Pfad-Variable mit deinem bisherigen Code belegen
lstrPath = ActiveWorkbook.Path & "" & Woche & "_" & Schiff & ".xlsm"
End If

'anstelle für InitialFileName:= deinen festen Pfad hier die Pfad-Variable eintragen
fileSaveName = Application.GetSaveAsFilename(InitialFileName:=lstrPath, FileFilter:="Microsoft Excel-Arbeitsmappe mit Makros (*.xlsm), *.xlsm")
ActiveWorkbook.SaveAs Filename:=fileSaveName
fileSaveName = Left(fileSaveName, Len(fileSaveName) - 5)

End Sub

Hilfts?

Ciao
Thorsten
Anzeige
AW: Excel-Vorlage mit Makros - Automatisch Speichern
11.10.2023 11:36:08
JBR
Hallo Thorsten,

erstmal vielen Dank.

Es funktioniert leider nicht, denn ich erhalte von Excel einen Hinweis “Die folgenden Features können in Arbeitsmappen ohne Makros nicht gespeichert werden“ ...

Userbild

Aus einer “normalen" Excel-Datei mit Makros funktioniert es.

Viele Grüße,
Jörg
Anzeige
AW: Excel-Vorlage mit Makros - Automatisch Speichern
11.10.2023 17:30:33
Oberschlumpf
Hi Jörg,

stimmt, du hast recht, ich hatte alles leider nicht in "härtester Konsequenz" getestet.

Versuch es hiermit:
https://www.herber.de/bbs/user/163349.zip

wichtig! erst Datei entpacken, dann starten...NICHT xlmt-Datei direkt aus der ZIP-Datei starten!

Ich hab den .SaveAs-Befehl angepasst; das Format für xlsm-Dateityp fehlte.
Bei mir erscheint nicht mehr die Meldung - und bei dir?

Ciao
Thorsten

Anzeige
AW: Excel-Vorlage mit Makros - Automatisch Speichern
11.10.2023 18:04:17
JBR
Hallo Thorsten,

wunderbar! Jetzt läuft es wie gewünscht.

Vielen herzlichen Dank und beste Grüße,
Jörg
so solls sein! :-) gerne wieder - owT
11.10.2023 18:52:43
Oberschlumpf
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel-Vorlage mit Makros: Automatisches Speichern leicht gemacht


Schritt-für-Schritt-Anleitung

  1. Öffne Deine Excel-Vorlage mit Makros: Stelle sicher, dass Du eine .xltm-Datei verwendest, um die Funktionalität von Makros zu nutzen.

  2. Füge den VBA-Code ein: Gehe in den VBA-Editor (Alt + F11), erstelle ein neues Modul und füge den folgenden Code ein:

    Sub Datei_speichern()
        Dim fileSaveName As String
        Dim Woche As String
        Dim Schiff As String
        Dim lstrPath As String
    
        Woche = "Woche"
        Schiff = "Schiff"
    
        If ActiveWorkbook.Path = "" Then
            lstrPath = "D:\Herber\" & Woche & "_" & Schiff & ".xlsm"
        Else
            lstrPath = ActiveWorkbook.Path & "\" & Woche & "_" & Schiff & ".xlsm"
        End If
    
        fileSaveName = Application.GetSaveAsFilename(InitialFileName:=lstrPath, FileFilter:="Microsoft Excel-Arbeitsmappe mit Makros (*.xlsm), *.xlsm")
        If fileSaveName <> "False" Then
            ActiveWorkbook.SaveAs Filename:=fileSaveName
        End If
    End Sub
  3. Trigger für das Makro setzen: Du kannst das Makro so einstellen, dass es automatisch ausgeführt wird, wenn eine bestimmte Zelle verändert wird. Dies geschieht über das Worksheet-Change-Ereignis.

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
            Call Datei_speichern
        End If
    End Sub
  4. Speichern der Excel-Vorlage: Speichere Deine Datei als Excel-Vorlage mit Makros (.xltm).

  5. Testen: Ändere den Inhalt in Zelle A1 und beobachte, ob der Speicherdialog erscheint.


Häufige Fehler und Lösungen

  • Fehler: "Die folgenden Features können in Arbeitsmappen ohne Makros nicht gespeichert werden"
    Stelle sicher, dass Du die Datei als .xlsm speicherst. Verwende den richtigen Dateityp, um alle Funktionen Deiner Excel-Vorlage mit Makros zu bewahren.

  • Fehler: Speichern unter Dialog öffnet sich im falschen Verzeichnis
    Überprüfe, ob ActiveWorkbook.Path korrekt ist. Wenn es leer ist, setze einen vordefinierten Pfad in lstrPath.


Alternative Methoden

  • Nutze die Excel Automatisierung: Du kannst auch Power Automate verwenden, um die Speicherung zu automatisieren, besonders wenn Du regelmäßig ähnliche Aufgaben hast.

  • Excel VBA speichern: Erstelle ein Makro, das die Datei bei bestimmten Bedingungen automatisch speichert, ohne die Benutzerinteraktion.


Praktische Beispiele

  1. Automatisches Speichern bei Zellenänderung: Das Beispiel im Schritt-für-Schritt-Anleitung zeigt, wie Du den Speichervorgang an eine Zellenänderung bindest.

  2. Speichern unter spezifischen Namen: Ersetze die Variablen Woche und Schiff durch Werte aus anderen Zellen, um dynamische Dateinamen zu erstellen.

    Woche = ThisWorkbook.Sheets("Sheet1").Range("B1").Value
    Schiff = ThisWorkbook.Sheets("Sheet1").Range("C1").Value

Tipps für Profis

  • Verwende Fehlerbehandlung im VBA-Code, um unerwartete Fehler abzufangen und die Benutzerfreundlichkeit zu erhöhen.

  • Teste Deine Excel Vorlage mit Makros gründlich, um sicherzustellen, dass alles wie gewünscht funktioniert.

  • Halte Deine Makros dokumentiert, damit Du oder andere Benutzer später leichter nachvollziehen können, wie die Funktionen implementiert sind.


FAQ: Häufige Fragen

1. Kann ich die Excel-Datei mit Makros speichern, wenn ich sie als Vorlage erstellt habe?
Ja, es ist wichtig, die Datei als .xlsm zu speichern, um alle Makros und Funktionen zu erhalten.

2. Was passiert, wenn ich die Excel-Vorlage ohne Makros speichere?
Die folgenden Features können in Arbeitsmappen ohne Makros nicht gespeichert werden: Formeln, die auf Makros basieren oder Daten, die durch Makros generiert wurden.

3. Wie kann ich sicherstellen, dass mein Makro bei jeder Änderung in einer bestimmten Zelle ausgeführt wird?
Nutze das Worksheet_Change-Ereignis, um Dein Makro zu triggern, sobald eine Änderung in der gewünschten Zelle erfolgt.

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