Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1732to1736
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel 2016 - "speichern unter" vor Workbook_BeforeSave

Excel 2016 - "speichern unter" vor Workbook_BeforeSave
21.01.2020 11:17:01
Michael
Hallo an Alle.
Bin zwar neu registriert, aber schon länger auf Lösungssuche hier.
Ein tolles Forum mit professioneller Hilfestellung.
Ich habe ein für mich unlösbares Problem mit Excel 2016.
Eine Vorlagendatei (.xltm) wird aus dem Dateisystem per Doppelklick geöffnet, bearbeitet und soll dann über den normalen Speichern Button unter einem speziell definierten Namen als xlsm-Datei gesichert werden. Ich klicke also auf die kleine Diskette oben links und die "Speichern unter"-Seite in Excel öffnet sich, weil das Workbook eine Vorlage war und somit noch keine Pfad- und Namensangaben vorhanden sind. So weit so gut.
Nun will ich das im Macro abfangen, was sehr gut über die PATH Eigenschaft des Workbook abzufragen ist, denn die ist noch leer. Die einzige Möglichkeit dazu sehe im "Workbook_BeforeSave" Event.
Mein Problem ist, dass Excel 2016 beim Speichern ZUERST die Seite "Speichern unter" aufruft und das "Workbook_BeforeSave" erst ausgeführt wird, wenn dort etwas angeklickt wird.
Ich möchte aber, dass mein Code sofort ausgeführt wird.
Mein (simpler) Code:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ThisWorkbook.Path = "" Then  (oder "if SaveAsUI = True"?)
SaveTheFileAs
Else
SaveTheFile
End If
End Sub

Wie kann ich verhindern, dass Excel von sich aus entscheidet, "Speichern unter" aufzurufen?
Ich habe versucht, die "SaveAsUI"-Eigenschaft beim Öffnen auf False zu setzen, scheinbar wird sie aber erst beim Klick auf Speichern wirklich gesetzt.

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

Betreff
Datum
Anwender
Anzeige
AW: Excel 2016 - "speichern unter" vor Workbook_BeforeSave
21.01.2020 11:32:24
guennih
Habe ehrlich gesagt Dein Problem nicht verstanden!
Du willst Doch nicht die Vorlage überschreiben, oder?
AW: Excel 2016 - "speichern unter" vor Workbook_BeforeSave
21.01.2020 12:00:03
Michael
Hallo guennih
Nein, die Vorlage soll nicht überschrieben werden.
Wenn eine Vorlage per Doppelklick aus dem Dateisystem geöffnet wird, öffnet Excel diese scheinbar normal als .xlsx bzw. mit Macros als .xlsm. Damit ist es dann ein neues Workbook, das bisher nicht gespeichert wurde. Deshalb bringt Excel beim Speichern die "Speichern unter"-Seite, auf der mir - unverständlicherweise - nochmal angezeigt wird, was ich bisher so alles geöffnet hatte. Erst beim Klick auf "Durchsuchen" kommt dann der "echte" SaveAs-Dialog.
Dieses ganze Excel-Gehabe wird vor dem "Workbook_BeforSave"-Event ausgeführt, heisst, Excel entscheidet im Vorwege, welcher SaveDialog benutzt werden soll, BEVOR der Makro-Code ausgeführt wird.
Ich will das Workbook mit meinen Pfad- und Dateiangaben sofort speichern, ohne irgendeine Interaktion, die der Benutzer ausführen muss.
Anzeige
AW: Excel 2016 - "speichern unter" vor Workbook_BeforeSave
21.01.2020 12:03:49
AlterDresdner
Hallo Michael,
ich verstehe es auch nicht ganz, aber:
Wenn Du die geöffnete Vorlage immer unter einem festen Namen als .xlsm abspeichern willst,
könntest Du beim Workbook_Open, falls Pfad leer, dann diesess Speichern realisieren.
Dann würde der Klick auf Diskette ohne Verenkungen klappen.
Dieses 1. Speichern würde aber bei jedem Öffnen der Vorlage stattfinden.
Willst Du das wirklich?
Gruß der AlteDresdner
AW: Excel 2016 - "speichern unter" vor Workbook_BeforeSave
21.01.2020 12:36:54
Michael
WOW. Da ist echt toll, wie schnell hier geantwortet wird. Danke dafür.
Ich denke, ich drücke mich nicht gut aus und werde das Ganze 'mal einfach halten.
Ich öffne Excel und ein neues Workbook wird generiert (Mappe1).
In einem Makro habe ich das "Workbook_BeforeSave"-Event definiert und festgelegt, wie die Datei heissen und wo sie abgelegt werden soll.
Nun drücke ich auf Speichern, aber statt des erwarteten Speichervorganges erscheint die schicke "Speichern unter"-Seite mit allen Dateien, die ich in letzter Zeit geöffnet hatte.
Jetzt muss ich erst auf "Durchsuchen" klicken, um überhaupt einen Pfad und einen Dateinamen angeben zu können - also der "echte" SavAs-Dialog.
Erst in diesem Moment wird in einem Makro das "..BeforeSave"-Event ausgelöst, nicht vorher.
Ich habe Pfad und Dateinamen aber schon festgelegt und will mit "Workbook.Save" speichern, ohne von Excel noch zu Eingaben aufgefordert zu werden.
Der Benutzer soll auf "Speichern" klicken und dann nichts mehr tun müssen.
Ich bekomme es nicht hin, ein neues, noch nie gespeichertes Workbook zu sichern, ohne das Excel-eigene "Speichern unter" umgehen zu können.
Anzeige
AW: Excel 2016 - "speichern unter" vor Workbook_BeforeSave
21.01.2020 13:47:01
guennih
möglicherweise kannst Du die Standarddialoge durch eigene ersetzten, meine vor Jahren mal sowas gelesen zu haben. Aber keine Ahnung mehr und große Unsicherheit, ob diese Erinnerung stimmt.
Ob Du das im Zweifel wirklich machen willst ....
Sonst bleibt die Möglichkeit am Anfang zu speichern bzw. sofort, wenn Du den Namen ermittelt hast.
Der SpeichernUnter-Dialog lässt sich von VBA aus mit Vorbelegungen aufrufen, aber eben nicht Das Verhalten von Excel beeinflussen, wenn auf Speichern gedrückt wird.
Ich habe eine Vorlage im Firmenumfeld aktiv, die stelle ich als xlsm zum Download bereit, und jeder User speichert sie von selbst mit sprechenden Namen. da ist also keinerlei Anleitung oder Vorgabe erforderlich und es funktioniert. Wichtig ist nur, dass die User am Downloadserver keine Schreibrechte haben.
ein möglicher Trick wäre auch noch, den Standard-Speicher-Ordner beim Öffnen der Datei zu manipulieren, dann landet der User beim Drücken auf Speichern schon mal dort, und braucht nur noch den Namen angeben. im beforesave oder close kann der dann wieder auf den ursprungswert gesetzt werden.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige