Supportnet / Forum / Tabellenkalkulation
Arbeitsmappe speichern beim Schließen
Frage
Hallo an @lle,
Frage:
******
Gibt es eine Möglichkeit meine Arbeitsmappe zu schließen und dabei automatisch im Hintergrund zu speichern, ohne das diese Meldung (Sollen Ihre Änderungen.... gespeichert werden?) kommt.
lg Robert
Danke schon im Vorhinein für die Antwort :-)
Antwort 1 von Pistenschreck
Hallo Robert
Dieser Code gehört in Diese Arbeitsmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Close SaveChanges:=True
End Sub
Gruss Werner
Dieser Code gehört in Diese Arbeitsmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Close SaveChanges:=True
End Sub
Gruss Werner
Antwort 2 von M.O.
Hallo,
wechsle in die VBA-Umgebung (Alt-F11) und füge bei DieseArbeitsmappe den folgenden Code ein:
Die Arbeitsmappe wird beim Schießen automatisch und ohne Nachfrage gespeichert.
Gruß
M.O.
wechsle in die VBA-Umgebung (Alt-F11) und füge bei DieseArbeitsmappe den folgenden Code ein:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Saved = False Then
ThisWorkbook.Save
End If
End Sub
Die Arbeitsmappe wird beim Schießen automatisch und ohne Nachfrage gespeichert.
Gruß
M.O.
Antwort 3 von robertu
Danke :-) funktioniert prima!
Doch gibt es auch eine Möglichkeit von der Arbeitsmappe nur das Tabellenblatt "Tabelle2" zu speichern. Und alle Eingaben bzw Veränderungen in den anderen Tabellenblättern zu verwerfen?
Lg Robert
Doch gibt es auch eine Möglichkeit von der Arbeitsmappe nur das Tabellenblatt "Tabelle2" zu speichern. Und alle Eingaben bzw Veränderungen in den anderen Tabellenblättern zu verwerfen?
Lg Robert
Antwort 4 von robertu
Hallo an @lle,
wahrscheinlich ist das speichern eines einzelnen Tabellenblatt in Excel nicht möglich.
Es wäre mir schon sehr geholfen, wenn es eine Möglichkeit gäbe bevor ich folgendes Makro ausführe:
---------- Code -----------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Saved = False Then
ThisWorkbook.Save
End If
End Sub
---------- Code -----------
auf ein bestimmtes Tabellenblatt springe! und erst danach dieses Makro ausgeführt wird. Das Tabellenblatt heißt "Messkreis-Prüfblatt"
Grund für dieses Vorhaben: Da es sich um eine Vorlage handelt, die einen automatischen Speicherbutton besitzt welcher beim betätigen eine Kopie (ohne Makros) dieser Vorlage mit einem bestimmten Namen in ein bestimmten Ort speichert (und nur ein Tabellenblatt), habe ich nun das Problem das die Vorlage nach Beendigung der Eingabe wieder in den Grundzustand gehen soll. Momentan führe ich einfach ein paar Makros beim Start aus um mir die Vorlage wieder zu säubern.
Warum ich dann dieses Speicher beim schließen ausführe?
Ganz einfach: in dieser Vorlage befinden sich mehrere Listen, welche bei der Eingabe eines Protokolles automatisch ergänz werden und somit als kleine Datenbank fungieren weiteres habe ich auch noch DropDown Menus welche auf eine Tabelle in der Arbeitsmappe zugreifen.
Warum ich derzeit ein Problem damit habe:
Wenn ich zufällig auf einem anderen Tabellenblatt bin und auf schließen gehe, speichert er mir die Arbeitsmappe automatisch. (alles noch wie gewollt) aber beim Starten führt er mir meine Säuberungsmakros aus welche am aktive Arbeitsblatt ausgeführt werden.
der VB-Code liegt bei mir unter "DieserArbeitsmappe" und wird beim schließen dieser Arbeitsmappe automatisch ausgeführt. Danke nochmal an M.O.
Mir fällt gerade ein, dass es eine weitere Lösung gäbe.
Welches Makro benötige ich, um beim Starten meiner Excel Datei automatisch auf ein bestimmtes Tabellenblatt zu springen?
DANKE an @lle
Lg Robert
wahrscheinlich ist das speichern eines einzelnen Tabellenblatt in Excel nicht möglich.
Es wäre mir schon sehr geholfen, wenn es eine Möglichkeit gäbe bevor ich folgendes Makro ausführe:
---------- Code -----------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Saved = False Then
ThisWorkbook.Save
End If
End Sub
---------- Code -----------
auf ein bestimmtes Tabellenblatt springe! und erst danach dieses Makro ausgeführt wird. Das Tabellenblatt heißt "Messkreis-Prüfblatt"
Grund für dieses Vorhaben: Da es sich um eine Vorlage handelt, die einen automatischen Speicherbutton besitzt welcher beim betätigen eine Kopie (ohne Makros) dieser Vorlage mit einem bestimmten Namen in ein bestimmten Ort speichert (und nur ein Tabellenblatt), habe ich nun das Problem das die Vorlage nach Beendigung der Eingabe wieder in den Grundzustand gehen soll. Momentan führe ich einfach ein paar Makros beim Start aus um mir die Vorlage wieder zu säubern.
Warum ich dann dieses Speicher beim schließen ausführe?
Ganz einfach: in dieser Vorlage befinden sich mehrere Listen, welche bei der Eingabe eines Protokolles automatisch ergänz werden und somit als kleine Datenbank fungieren weiteres habe ich auch noch DropDown Menus welche auf eine Tabelle in der Arbeitsmappe zugreifen.
Warum ich derzeit ein Problem damit habe:
Wenn ich zufällig auf einem anderen Tabellenblatt bin und auf schließen gehe, speichert er mir die Arbeitsmappe automatisch. (alles noch wie gewollt) aber beim Starten führt er mir meine Säuberungsmakros aus welche am aktive Arbeitsblatt ausgeführt werden.
der VB-Code liegt bei mir unter "DieserArbeitsmappe" und wird beim schließen dieser Arbeitsmappe automatisch ausgeführt. Danke nochmal an M.O.
Mir fällt gerade ein, dass es eine weitere Lösung gäbe.
Welches Makro benötige ich, um beim Starten meiner Excel Datei automatisch auf ein bestimmtes Tabellenblatt zu springen?
DANKE an @lle
Lg Robert
Antwort 5 von M.O.
Hallo Robertu
für ein bestimmtes Tabellenblatt bei Start gib den folgenden Code bei
"Diese Arbeitsmappe" ein:
Statt Arbeitsblattname musst du natürlich den Namen des entsprechenden Arbeitsblattes angeben.
Gruß
M.O.
für ein bestimmtes Tabellenblatt bei Start gib den folgenden Code bei
"Diese Arbeitsmappe" ein:
Private Sub Workbook_Open()
Worksheets("Arbeitsblattname").Activate
End Sub
Statt Arbeitsblattname musst du natürlich den Namen des entsprechenden Arbeitsblattes angeben.
Gruß
M.O.