Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
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

AutoClose Workbook ohne Speichern

AutoClose Workbook ohne Speichern
03.06.2022 07:35:11
Caro
Guten Morgen zusammen, hier ist schon wieder die Caro.
Ich habe in Workbook(1) über ein Makro auf einer Schaltfläche ein weiteres Workbook(2) geöffnet:
Dim excel As String
excel = Application.GetOpenFilename("Exceldateien (*.xlsx*),*.xls*", , "Bitte ... auswählen")
Workbooks.Open (excel)
Dann macht das Makro was es machen soll. Wenn ich nun die Schaltfläche im Workbook1 wieder anklicke soll das Workbook2 automatisch geschlossen werden, ohne dass ich die Änderungen darin speichere und eine entsprechende Meldung erhalte.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AutoClose Workbook ohne Speichern
03.06.2022 07:42:44
Oberschlumpf
Moin Caro,
versuch mal so

Workbooks("Name").Close False
für "Name" den Dateinamen eintragen.
Hilfts?
Ciao
Thorsten
AW: AutoClose Workbook ohne Speichern
03.06.2022 07:50:24
Caro
Hallo Thorsten,
danke für deine schnelle Antwort. Das ist ein bisschen das Problem, ich kann keinen Namen für das Workbook eintragen, da sich der Name immer wieder ändert. Ich suche das Workbook ja vorher über GetOpenFilename raus.
AW: AutoClose Workbook ohne Speichern
03.06.2022 07:59:28
Oberschlumpf
Na Caro,
dann deklarier die "Datei-Öffnen-Variable excel doch als Public-Variable; so hast du den Inhalt dieser Variable in - jedem Modul - verfügbar; und Befehl is dann:

Workbooks(excel).Close False
Hilfts?
Ciao
Thorsten
Anzeige
AW: AutoClose Workbook ohne Speichern
03.06.2022 08:06:48
Caro
Entschuldige bitte meine blöden Fragen, aber wie deklariere ich die excel als Public-Variable?
AW: AutoClose Workbook ohne Speichern
03.06.2022 08:10:07
Oberschlumpf
nimm meine (bessere?) Antwort von 08:09:08 Uhr ;-)
AW: AutoClose Workbook ohne Speichern
03.06.2022 08:28:15
UweD
Hallo
in ein normales Modul

Option Explicit
Public Datei As String
So ergänze den bestehenden Teil

    Dim excel As String
excel = Application.GetOpenFilename("Exceldateien (*.xlsx*),*.xls*", , "Bitte ... auswählen")
Workbooks.Open (excel)
Datei = Dir(excel)
'der Rest
Workbooks(Datei).Close False
LG UweD
AW: AutoClose Workbook ohne Speichern
03.06.2022 08:09:08
Oberschlumpf
...ach sooo...stopp! :-)
excel enthält ja nicht nur Dateiname, sondern den ganzen Pfad - schulligung, is noch früh!^^ :-)
egal, dann musst du mit Hilfe einer weiteren Variable den Dateinamen aus excel extrahieren, z Bsp so:

Public pstrFileName As String '
...so, JETZT aber, oder? :-)
Ciao
Thorsten
Anzeige
AW: AutoClose Workbook ohne Speichern
03.06.2022 08:57:15
Caro
Entschuldige Thorsten, ich habe es nicht hinbekommen. Ich habe es jetzt aber trotzdem gelöst, indem ich mir das Tabellenblatt, was ich in dem neu geöffneten Workbook brauche direkt in das erste WB eingefügt habe und dann lösche ich den Sheet im aktiven WB.
Denn das WB heißt immer anders, aber die Bezeichnung des Tabellenblatts ist immer die gleiche. So kann ich das umgehen.
Danke und VG
Caro
AW: AutoClose Workbook ohne Speichern
03.06.2022 09:14:40
Oberschlumpf
na Caro,
und was ist mit der einfacheren Lösung als meine von Uwe?
Ciao
Thorsten
P.S. nix desto trotz - du kennst das Spiel doch - wieso zeigst du uns per Upload nicht mal eine Bsp-Datei?^^ :-P
Anzeige
AW: AutoClose Workbook ohne Speichern
03.06.2022 09:23:27
UweD
Hallo nochmal
Es ginge auch direkt so.

Workbooks(Dir(excel)).Close False
LG UweD
Das ist die bessere Lösung
03.06.2022 09:40:28
Daniel
Denn hier führst du den kompletten Vorgang in einem Makro mit einem Klick durch.
Das ist für den Anwender komfortabler und vermeidet Fehler
Gruß Daniel
AW: AutoClose Workbook ohne Speichern
03.06.2022 08:38:46
Daniel
HI
vielleicht so, wenn die Datei nicht gespeichert werden soll, würde ich sie auch gleich schreibgeschützt öffen, dann bist du auf der sicheren seite, falls mal jemand die Datei von Hand vorher speichern will:

Static excel as String
If excel = "" Then
excel = Application.GetOpenFilename("Exceldateien (*.xlsx*),*.xls*", , "Bitte ... auswählen")
Workbooks.Open excel, ReadOnly:=True
else
excel = mid(excel, instrrev(excel, "\") + 1)
On Error Resume Next
Workbooks(excel).Close false
On Error Goto 0
excel = ""
End If
über die Variablendeklaration mit Static erzeugst du eine Variable, die ihren Inhalt nach beenden eines Makros behält und dann beim nächsten Ausführen dieses Makros sofort diesen alten Inhalt hat.
das On Error Resume Next verhindert den Fehlerabbruch, falls die Datei schon vorher geschlossen wurde.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige