Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ActiveWindow.Close savechanges = False

Forumthread: ActiveWindow.Close savechanges = False

ActiveWindow.Close savechanges = False
11.07.2003 10:46:46
Matthias H.
Hallo,

ich rufe per Makro eine zweite Datei auf, kopiere Daten heraus und schließe sie wieder.
Sie soll aber nicht gespeichert werden, also ActiveWindow.Close savechanges = False
Allerdings kommt dann immer das "Speichern unter"-Fenster.
ActiveWindow.Close savechanges = true funktionert, aber das will ich ja nicht.

Erkennt jemand den Fehler?

Range("A17:B18").Select
Selection.Copy
Windows("data.DBF").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'Format übertragen
Range("A2:B3").Select
Selection.Copy
Windows(ThisWorkbook.Name).Activate
ActiveSheet.Paste
Windows("data.DBF").Activate
ActiveWindow.Close savechanges = False


Gruß
Matthias
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveWindow.Close savechanges = False
11.07.2003 10:51:29
sergiesam
hi,

du kannst es mit einem trick versuchen. Wenn du dem Workbook "vorgaugelst", dass sich nichts geändert hat, schließt excel die mappe ohne zu fragen:

Workbooks("Data.dbf").Saved=TRUE
Workbooks("Data.dbf").close

Sam


AW: ActiveWindow.Close savechanges = False
11.07.2003 11:01:53
Matthias H.
Hallo Sam,

vielen Dank, klappt prima!

Gruß
Matthias


Anzeige
;
Anzeige

Infobox / Tutorial

ActiveWindow.Close ohne Speichern in Excel VBA


Schritt-für-Schritt-Anleitung

Um ein aktives Fenster in Excel VBA zu schließen, ohne die Änderungen zu speichern, kannst du die folgende Methode verwenden. Das Ziel ist, das Speichern-unter-Fenster zu vermeiden.

  1. Aktiviere das gewünschte Workbook.
  2. Stelle sicher, dass du die Änderungen nicht speicherst, indem du den Status des Workbooks auf Saved setzt.
  3. Schließe das Workbook mit der Methode .Close.

Hier ist ein Beispielcode:

Sub CloseWorkbookWithoutSaving()
    ' Aktiviere das Workbook
    Workbooks("Data.dbf").Activate

    ' Setze den Status auf gespeichert
    Workbooks("Data.dbf").Saved = True

    ' Schließe das Workbook ohne Speichern
    Workbooks("Data.dbf").Close
End Sub

Mit dieser Methode wird ActiveWindow.Close savechanges = False überflüssig, da Excel denkt, dass keine Änderungen vorgenommen wurden.


Häufige Fehler und Lösungen

  • Fehler: Das Speichern-unter-Fenster erscheint trotz Verwendung von ActiveWindow.Close savechanges = False.

    • Lösung: Stelle sicher, dass der Saved-Status des Workbooks korrekt gesetzt ist, bevor du das Workbook schließt.
  • Fehler: Der VBA-Code funktioniert nicht in älteren Excel-Versionen.

    • Lösung: Vergewissere dich, dass du die richtige Excel-Version verwendest und dass der VBA-Zugriff aktiviert ist.

Alternative Methoden

Eine alternative Methode ist die Verwendung von ActiveWorkbook.Close, um das aktive Workbook zu schließen. Hierbei kannst du ebenfalls die savechanges-Option verwenden:

ActiveWorkbook.Close savechanges:=False

Diese Methode funktioniert ähnlich wie ActiveWindow.Close, ist jedoch spezifischer für das Workbook.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du das Schließen von Excel-Fenstern ohne Speichern implementieren kannst:

  1. Kopieren und Schließen einer Datei:
Sub CopyAndClose()
    Range("A17:B18").Copy
    Windows("data.DBF").Activate
    Range("A2").PasteSpecial Paste:=xlFormats
    ' Setze den Status und schließe
    Workbooks("Data.dbf").Saved = True
    Workbooks("Data.dbf").Close
End Sub
  1. Direktes Schließen eines aktiven Fensters:
Sub CloseActiveWindow()
    ActiveWindow.Close savechanges:=False
End Sub

Tipps für Profis

  • Verwende Workbooks statt ActiveWindow für mehr Kontrolle über die zu schließenden Dateien.
  • Teste deinen Code in einer sicheren Umgebung, um unbeabsichtigte Datenverluste zu vermeiden.
  • Wenn du mit mehreren Fenstern arbeitest, verwende den Namen des Workbooks für mehr Klarheit.

FAQ: Häufige Fragen

1. Kann ich ActiveWindow.Close in allen Excel-Versionen verwenden? Ja, allerdings kann der Befehl in älteren Versionen nicht wie erwartet funktionieren. Es empfiehlt sich, die VBA-Referenzen auf die eigene Version zu prüfen.

2. Was passiert, wenn ich Workbooks("Data.dbf").Saved = True nicht setze? In diesem Fall wird Excel das Speichern-unter-Fenster anzeigen, wenn du versuchst, das Workbook zu schließen, selbst wenn keine Änderungen vorgenommen wurden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige