Live-Forum - Die aktuellen Beiträge
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

nach Workbook_Open() so tun als wäre gespeichert

nach Workbook_Open() so tun als wäre gespeichert
08.01.2020 11:08:05
Ralf
Hallo zusammen,
ich komme nicht weiter, folgendes:
Ich habe ein Makro, zum Ausdrucken einer Excelliste in ein PDF, erstellt.
Wenn ich nun die Excel-Mappe öffne und auf den Button mit dem Makro klicke,
soll geprüft werden, ob die Mappe gespeichert werden muss, weil Änderungen gemacht wurden.
Das ist soweit auch kein Problem.
ABER:
Wenn ich die Mappe öffne und sofort danach auf den Button klicke, meldet mir meine Prüfung,
dass Änderungen vorhanden sind. Das ist auch logisch, weil ich unter:
Private Sub Workbook_Open()
verschiedene Aktionen durchführe, die aber mit Änderungen ansich nichts zu tun haben, also auch nicht gepeichert werden müssen.
Jetzt habe ich unter Private Sub Workbook_Open() als letzte Zeile:
ActiveWorkbook.saved = True gesetzt.
In meinem Makro kommt als erste Zeile : If Not ActiveWorkbook.Saved Then Call noch_speichern
Wie sage ich Excel, dass alles gespeichert ist, nachdem Excel geladen wurde und bereit zur Eingabe ist?
Ich habe ja noch nichts eingegeben, außer dass beim Laden Aktionen stattfinden, z.B. eine Zelle mit select
ausgewählt wird, um an einer bestimmten Stelle mit Eingaben anfangen zu können.
Gebe ich aber nichts ein, soll das Call noch_speichern nicht aufgerufen werden.
Ich hoffe Ihr versteht, was ich meine.
Grüße Ralf

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nach Workbook_Open() so tun als wäre gespeichert
08.01.2020 11:22:59
Daniel
Hi
das was du beschreibst, klingt richtig.
Stellt sich halt die Frage, ob du es auch so umgesetzt hast, wie du es beschrieben hast.
ggf ersetze mal "ActiveWorkbook" durch "ThisWorkbook".
"ThisWorkbook" ist immer die Mappe, welche den Code enthält.
Gruß Daniel
AW: nach Workbook_Open() so tun als wäre gespeichert
08.01.2020 12:26:18
Ralf
Hi Daniel,
So ist der Auszug von VBA:
in der Arbeitsmappe:
Private Sub Workbook_Open()
If Cells(2, 7).Value = "" Then Application.Run "Start"
ActiveWindow.WindowState = xlMaximized
Columns("A:AD").Select
ActiveWindow.Zoom = True
Application.CutCopyMode = False
Cells(15, 24).Select
ThisWorkbook.Saved = True
End Sub
im Makro:
Public Sub PDF()
If Not ThisWorkbook.Saved Then Call noch_speichern
Application.ScreenUpdating = False
Application.PrintCommunication = False
On Error GoTo Fehler
End Sub

Aber es geht nicht. Auch wenn ich über das X schließen möchte fragt er nach dem speichern.
Gruß Ralf
Anzeige
AW: nach Workbook_Open() so tun als wäre gespeichert
08.01.2020 12:51:57
Daniel
HI
kann ich nicht nachvollziehen.
bei mir funktioniert es wie von dir gewünscht.
da müsste man sich mal die Datei anschauen.
Gruß Daniel
AW: nach Workbook_Open() so tun als wäre gespeichert
08.01.2020 12:54:39
Torsten
Hallo Ralf,
kannst du nicht am Ende von Workbook_Open einfach die Datei speichern?
ThisWorkbook.Save
AW: nach Workbook_Open() so tun als wäre gespeichert
08.01.2020 13:29:31
Ralf
Hi Torsten,
nein, denn dann verändere ich das Datum der Datei
und das ist ja nicht nötig, wenn ich diese nur ausdrucken will.
Die gepeicherte Mappe ein Ergebnis aus einer Vorlage, die
befüllt wird und automatisch gespeichert wird.
Danach öffne ich die gespeicherte Datei und möchte diese in ein PDF drucken,
entweder unverändert oder mit Änderungen, die ich dann auch speichern muss.
Funktioniert auch alles, bis auf nur ausdrucken, weil beim Öffnen der Status
"nicht gespeichert" gesetzt wird.
Was mich auch verwundert, wenn ich bei Worksheet Open() gar nichts eintrage,
ist die Datei trotzdem als "nicht gespeichert" gesetzt.
Kann es sein, durch den Aufruf vom Makro, das schon eine Änderung ist?
Grüße Ralf
Anzeige
AW: nach Workbook_Open() so tun als wäre gespeichert
08.01.2020 15:00:29
Rudi
Hallo,
Kann es sein, durch den Aufruf vom Makro, das schon eine Änderung ist?
da reicht schon eine volatile Funktion (z.B =Jetzt()) in der Mappe.
Gruß
Rudi
AW: nach Workbook_Open() so tun als wäre gespeichert
08.01.2020 15:10:21
Ralf
Hi Rudi,
das vermute ich auch langsam, dass irgend ein Code hier eine Änderung suggeriert.
Ich denke, ich muss mir einen Umweg basteln, der prüft, ob ich die Datei gerade erst
geöffnet habe und muss hier etwas reinbringen, wenn ich etwas ändere, dass das vba merkt.
Mal sehen was mir hier noch einfällt.
AW: nach Workbook_Open() so tun als wäre gespeichert
08.01.2020 15:25:50
Rudi
Hallo,
in DieseArbeitsmappe:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Saved = blnNeuGeoeffnet
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
blnNeuGeoeffnet = Not Cancel
End Sub
Private Sub Workbook_Open()
blnNeuGeoeffnet = True
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
blnNeuGeoeffnet = False
End Sub

In ein Modul:
Public blnNeuGeoeffnet As Boolean

Anzeige
AW: nach Workbook_Open() so tun als wäre gespeichert
09.01.2020 08:58:52
Ralf
Hi Rudi,
ganz vielen Dank für Deine Hilfe, jetzt funktioniert es so wie ich es benötige.
Grüße Ralf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige