Autor
|
Thema: VBA: Abfrage Änderung beim Schliessen (2016 mal gelesen)
|
Hofe Mitglied Werkzeugmacher
Beiträge: 439 Registriert: 12.01.2008
|
erstellt am: 11. Feb. 2016 11:35 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich möchte beim schließen einer Datei eine Sicherungskopie speichern; soweit kein Problem. Dies soll jedoch nur geschehen, wenn an der Datei etwas verändert wurde, also dann wenn Excel eine Veränderung feststellt und schon von sich aus fragt ob gespeichert werden soll. Wie Frage ich dieses Ereignis ab? Grüße Hofe ------------------ Ist mir egal, wer Dein Vater ist; solange ich angle läuft hier keiner übers Wasser! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 11. Feb. 2016 12:28 <-- editieren / zitieren --> Unities abgeben: Nur für Hofe
|
Hofe Mitglied Werkzeugmacher
Beiträge: 439 Registriert: 12.01.2008
|
erstellt am: 16. Feb. 2016 13:42 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Hofe: ...soweit kein Problem.
Da hab ich mich wohl zu weit aus dem Fenster gelehnt Danke erstmal für den Namen des Ereignisses, funktioniert soweit. Nun speichere ich eine Sicherungskopie via "Thisworkbook.SaveAs blablabla..." Dadurch betrachtet Excel die Datei mit ihren aktuellen Änderungen als gespeichert und ich habe eben keine Kopie gespeichert, da das Original an seinem Speicherort unverändert bleibt. Hab ich also nochmal eine Zeile eingefügt, die zusätzlich unter Originalnamen am Originalort gespeichert, funktioniert auch. Damit habe ich mir aber das Ei gelegt, dass ich die Datei nicht mehr schliessen kann, ohne Änderungen zu speichern. Pech gehabt oder denke ich zu kompliziert, gibts ne einfachere Lösung? Grüße Hofe ------------------ Ist mir egal, wer Dein Vater ist; solange ich angle läuft hier keiner übers Wasser! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 16. Feb. 2016 14:41 <-- editieren / zitieren --> Unities abgeben: Nur für Hofe
Wenn Du das aus dem Eingangsthread meinst: Zitat: Original erstellt von Hofe: ich möchte beim schließen einer Datei eine Sicherungskopie speichern; soweit kein Problem.
Wolltest Du das Programmtechnisch oder über Excel machen? In Excel direkt ginge es über: - Datei -- speichern unter dann unten Tools (neben speichern) - allgemeine Optionen -- Häkchen setzen bei "Sicherungsdatei erstellen" Dann wird bei jedem Speichern eine *.xlk - Datei aus dem letztem Stand erzeugt. Vielleicht hilft Dir das ja schon weiter. Grüße Klaus Edit: Wenn Du Ohne Änderungen speichern willst, wer entscheidet das dann? Wie hattest Du Dir das denn gedacht? - Es gibt keine Änderungen => Workbook schließen sonst: - Abfrage: Änderungen speichern => nein : Workbook schließen => ja: Kopie von Workbook anlegen und Workbook unter gleichem Namen speichern Das wäre meine Vorgehensweise für so einen Fall gewesen. Kopie des Workbook kannst Du entweder über Dateifunktionen machen oder Du verwendest beim Öffnen bereits die ActiveWorkbook.SaveCopyAs - Methode [Diese Nachricht wurde von KlaK am 16. Feb. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hofe Mitglied Werkzeugmacher
Beiträge: 439 Registriert: 12.01.2008
|
erstellt am: 16. Feb. 2016 14:57 <-- editieren / zitieren --> Unities abgeben:
Servus Klaus, Dein Vorschlag würde völlig genügen, wenn für die Sicherungskopie ein anderer Speicherort wählbar wäre, ich will die Kopie zwingend auf einem anderen Laufwerk speichern. Ausserdem habe ich ein schlechtes Gedächtnis und frage mich in ein paar Monaten bestimmt, woher denn da dauernd so eine blöde Sicherungskopie kommt, deren Speicherung ich in meinen Makros nicht nachvollziehen kann Also wohl doch per VBA, ich versuchs mal mit einer zusätzlichen Userabfrage. Ist dann zwar nicht so bequem, weil jedesmal Bestätigung erforderlich, aber besser als nüscht. Oder hat noch jemand eine Idee? Grüße Hofe ------------------ Ist mir egal, wer Dein Vater ist; solange ich angle läuft hier keiner übers Wasser! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hofe Mitglied Werkzeugmacher
Beiträge: 439 Registriert: 12.01.2008 Computer: Aldi Schreibtisch: Ikea Werkbank: Baumarkt Software: 1967-2021, viele Updates und SP's, aber sicher nicht alle, deswegen immer wieder Sicherheitslücken
|
erstellt am: 16. Feb. 2016 15:07 <-- editieren / zitieren --> Unities abgeben:
Zu Deinem Edit: Zitat: Original erstellt von KlaK: Wenn Du Ohne Änderungen speichern willst, wer entscheidet das dann?
Ich natürlich :D Zitat: Original erstellt von KlaK: Wie hattest Du Dir das denn gedacht? - Es gibt keine Änderungen => Workbook schließen sonst: - Abfrage: Änderungen speichern => nein : Workbook schließen => ja: Kopie von Workbook anlegen und Workbook unter gleichem Namen speichern
Genau so. Das Problem ist, dass die Routine "Auto_Close" oder "Workbook_Close" abgefragt wird, bevor Excel sich selber "ActiveWorkbook.Saved"? fragt. Also läuft mein Speichermakro ab, bevor Excel mich fragen kann, ob ich speichern will. Und nach meinem Makro gibts für Excel dann nix mehr zu fragen, da ja soeben gespeichert wurde. Zitat: Original erstellt von KlaK: Kopie des Workbook kannst Du entweder über Dateifunktionen machen oder Du verwendest beim Öffnen bereits die ActiveWorkbook.SaveCopyAs - Methode
Das hört sich passend an, probiere ich gleich aus. ------------------ Ist mir egal, wer Dein Vater ist; solange ich angle läuft hier keiner übers Wasser! [Diese Nachricht wurde von Hofe am 16. Feb. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hofe Mitglied Werkzeugmacher
Beiträge: 439 Registriert: 12.01.2008
|
erstellt am: 20. Feb. 2016 13:56 <-- editieren / zitieren --> Unities abgeben:
Die SaveCopyAs-Methode taugt mir am besten. Während die Kopie gespeichert wird blende ich einen Hinweis ein, danach fragt Excel wie gewohnt. Besten Dank! Grüße Hofe ------------------ Ist mir egal, wer Dein Vater ist; solange ich angle läuft hier keiner übers Wasser! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |