Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel per Makro beenden





Frage

Hi Leute, Ich habe gerade ein Makro aufgezeichnet. Am Schluß des Makros soll Excel ohne zu Speichern beendet werden. Hat jemand eine Ahnung, wie man das machen kann oder was ich am Schluß meines Makro schreiben muß, damit Excel ohne zu speichen beendet wird. Per Aufzeichnung geht das ja wohl nicht, da man die Aufzeichnung ja nicht beenden kann, wenn Excel schon geschlossen ist. Hintegrund ist der, daß ich nur einen Teil der Tabelle audrucken will und dazu Seite einrichten arg verändern muß. Diese Änderungen dürfen aber nicht gespeichert werden, da sonst die ganze Tabelle nicht mehr aussieht. Deshal soll Excel ohne Speichen beendet werden, damit die Tablle so erhalten bleibt wie sie vor der Makroausführung war. Gruß Ingo

Antwort 1 von YesAmerika

Hi,
Trage einfach am Ende des Macros

ThisWorkbook.Saved = True
Application.Quit

ein.

Yessi

Antwort 2 von Ingo

Hi Yessi,

Vielen Dank für Deine Hilfe, Klingt ja einfach, aber bevor ich das am lebenden Objekt ausprobiere, hier nochmals eine Frage:

Mein Makro soll das die Datei nicht speichern, da es ausschließlich einen Teil der Tabelle in einer bestimmten Form mit bestimmten Kopf- und Fußzeilen zum Drucken generiert, die aber nich bestehenbleiben sollen, da sie für die Tabellenansicht nicht gewollt werden.

Müßte es da nicht heißen:

ThisWorkbook.Saved=False
Application.Quit

Bin leider in sowas kein Fachmann, aber es erscheint mir logisch.

Gruß
Ingo

Antwort 3 von coros

Nabend Ingo,

die Anweisung von Yessi ist schon richtig.
Zu Deiner Aussage

Zitat:
aber bevor ich das am lebenden Objekt ausprobiere


Du solltest immer, wenn Du VBA-Anweisungen einfügst, eine Kopie Deiner Originaldatei machen. Erst wenn der Code richtig funktioniert, überträgst Du den erarbeiteten Code in die Originaldatei.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
PS: Bitte keine Mails an mich senden. Probleme sollten hier im Forum behandelt werden.

Antwort 4 von Ingo

Hallo Jessy und Oliver,

Vielen Dank für Eure Hilfe. Es klappt.
Jetzt habe ich aber noch beim Beenden die Abfrage "Speichern Ja/Nein". Kann man die auch noch mit "nein" automatisieren im Makro?

Gruß
Ingo

Antwort 5 von YesAmerika

hi,
das sollte eigendlich mit "ThisWorkbook.Saved = True " erledigt sein. Bei mir klappt das jedenfalls.

Yessi

Antwort 6 von coros

Moin Ingo,

wo hast Du denn den Code eingefügt. Der Code muss vor dem Beenden der Datei abgefragt werden. Also sollte die Anweisung folgendermaßen aussehen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
Application.Quit
End Sub


Diese Anweisung muss in Diese Arbeitsmappe eingegeben oder kopiert werden.


Ich hoffe, ich konnte Dir weiterhelfen,
coros
Und nicht vergessen, hier noch einmal zu posten, ob Dich die Hilfe weitergebracht oder sogar
Dein Problem gelöst hat.

Antwort 7 von Ingo

Hi Jessy & Oliver,

Vielen Dank nochmals für Eure Hilfe.

Oliver ich habe Deine zusätzliche Zeile so eingetragen:

End With
Selection.PrintOut Copies:=1, Collate:=True
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
Application.Quit

End Sub

Damit funktioniert es aber nicht. Der Debugger meldet sich bei der 1. Was mache ich falsch?

Gruß
Ingo

Antwort 8 von coros

Hi Ingo,

den Code, den ich Dir in meinem letzten Beitrag geschrieben habe, arf nicht an Dein vorhandenes Makro eingearbeitet oder angehängt werden, sondern muss in das VBA-Projekt Diese Arbeitsmappe (findest Du auf der linken Seite über den Tabellen) eingefügt werden. Der Code von mir ist keine Erweiterung Deines Makros, sondern eine selbsständige Anweisung, die durchgeführt wird, wenn die Datei geschlossen wird.

Ich hoffe, Du weißt jetzt, wo diese Anweisung hin geschrieben werden muss.

MfG,
coros
Jeder macht was er will, keiner macht was er soll aber alle machen mit.

Antwort 9 von Ingo

Hi Oliver,

Danke für die Klärung. Das würde aber bedeuten, daß ich 2 Macros benötigen würde, da auch ansich genauso umständlich wäre wie die Abfrage mit SPEICHERN JA/NEIN.

Gibt es keinen Code, der in meinem Makro diese Abfrage automatisch mit NEIN beantwortet? Das wäre optimal.

Gruß
Ingo

Antwort 10 von coros

Moin Ingo,

ich weiß zwar nicht, was daran so umstänlich ist, einen zweiten Code einzufügen, aber versuche doch mal die beiden Anweisungen

ThisWorkbook.Saved = True
Application.Quit

in umgekehrter Reihenfolge, also

Application.Quit
ThisWorkbook.Saved = True

in Dein vorhandenes Makro einzufügen. Das könnte eventuell Abhilfe schaffen. Ansonsten schicke mir Dein Makro doch mal per Mail. Ich schaue es mir dann an und werde versuchen die von Dir gewünschte Funktion einzuarbeiten.

Ich hoffe, ich konnte Dir weiterhelfen,
coros
Und nicht vergessen, hier noch einmal zu posten, ob Dich die Hilfe weitergebracht oder sogar
Dein Problem gelöst hat.

Antwort 11 von Guenter

Hallo,

ich habe jetzt nicht alle Details von diesem Thread verfolgt.
Aber die Abfrage zum Speichern beim Beenden kann man unterdrücken mit


Application.DisplayAlerts = False


Vielleicht hilft das weiter.

Gruß
Günter

Antwort 12 von Ingo

Hallo Günter und Oliver,

Nochmals besten Dank für Eure Hilfe.
Mit Günters Code funktioniert es so, wie ich es mir vorgestellt habe: in einem einzigen Makro.
Ihr seht mich glücklich, dieses Problem endlich gelöst zu haben.

Gruß
Ingo

Antwort 13 von coros

Hi Ingo,

na bitte, hat es doch noch so geklappt, wie Du es Dir vorgestellt hast. Dnake auch für die Rückmeldung.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
PS: Bitte keine Mails an mich senden. Probleme sollten hier im Forum behandelt werden.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: