Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
04.04.2021 14:09:53 |
Pepi |
|
|
|
07.04.2021 11:04:45 |
Gast45095 |
|
|
Word speichern abfragen |
07.04.2021 19:10:22 |
xlKing |
|
|
|
08.04.2021 10:24:10 |
Pepi |
|
|
Von:
xlKing |
Datum:
07.04.2021 19:10:22 |
Views:
626 |
Rating:
|
Antwort:
|
Thema:
Word speichern abfragen |
Hi,
Für deinen Fall gitbs einen einen einfachen und einen komplizierten Weg. Beide sind nicht optimal lassen sich aber leider auch nicht vereinen.
Der einfache Weg - Erstelle dir dein eigenes Speichersymbol:
- Erstelle im VBA-Editor in einem Modul ein Makro das die Datei als PDF speichert. (Hast du sicher bereits getan!)
- Weise dem Makro in der Makroübersicht (Alt+F8) eine Tastenkombination zu. z.B. STRG+Umschalt+S (optional)
- Wechsle zurück zu Excel
- Klicke mit der rechten Maustaste auf ein Ribbon deiner Wahl und wähle Ribbon anpassen.
- Erstelle in der rechten Liste ein neues Tab
- Wähle oberhalb der linken Liste die Gruppe Makros
- suche dein Makro und verschiebe es auf das neue Tab in der rechten Liste.
- Drücke OK - Fertig!
Der komplizierte Weg - Erstelle dein eigenes Autosave-Makro. Das könnte z.B. wie folgt aussehen:
- Erstelle im VBA-Editor in einem Modul ein Makro das die Datei als PDF speichert. (Hast du sicher bereits getan!)
- Erstelle ein weiteres Modul und gib dort diesen Code ein:
Public autosave As Boolean
Sub StarteAutosave()
autosave = True
ThisDocument.Save
autosave = False
Application.OnTime Now + TimeValue("00:10:00"), "StarteAutosave"
End Sub
- Erstelle ein neues Klassenmodul z.B. "Klasse1" und gibt dort folgenden Code ein.
Public WithEvents app As Application
Private Sub app_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
If autosave = False Then
Doc.Save
Call PDF_Erstellen
Cancel = True
End If
End Sub
Sub PDF_Erstellen()
MsgBox "Speicherung wurde manuell ausgelöst"
End Sub
- kopiere nun den folgenden Code in das Modul ThisDocument
Dim xapp As New Klasse1
Private Sub Document_Open()
Set xapp.app = Application
Application.OnTime Now + TimeValue("00:10:00"), "StarteAutosave"
End Sub
Was macht der Code? Beim Öffnen des Dokuments wird im Modul ThisDocument das Ereignis Document_Open ausgelöst. Dieses merkt sich dass vor dem Speichern ein Makro ausgeführt werden soll. Im vorliegenden Fall also das Makro PDF_Erstellen. Außerdem merkt es sich über Application.Ontime dass alle 10 Minuten ein anderes Makro ausgeführt werden soll. Hier das Makro "StarteAutosave". Bevor nun der Autosave ausgeführt wird, wird die Variable autosave auf True gesetzt und nach dem Autosave wieder auf False. Das ist wichtig für das andere Makro DocumentBeforeSave, denn das wird nur ausgeführt wenn die Variable auf False steht. Das Makro PDF_Erstellen wird also nur aufgerufen, wenn du das speichern per Disketten-Symbol oder Tastenkombination Strg+S bzw. F12 oder Datei - Speichern unter manuell auslöst.
Nachteil dieser Aktion: Du musst dazu das originale Autosave deaktivieren. Dadurch wird im vorliegenden Fall also nur das aktuelle Dokument automatisch gesichert, jedoch nicht die anderen geöffneten Dokumente. Deshalb empfehle ich dir eher den einfachen Weg.
Gruß Mr. K.
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
04.04.2021 14:09:53 |
Pepi |
|
|
|
07.04.2021 11:04:45 |
Gast45095 |
|
|
Word speichern abfragen |
07.04.2021 19:10:22 |
xlKing |
|
|
|
08.04.2021 10:24:10 |
Pepi |
|
|