Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Workbook close

Workbook close
18.04.2006 18:44:33
Torsten
Hallo,
ich benötige dringend Hilfe da ich am verzweifeln bin. Ich habe ein Workbook ("Mappe1.xls"), indem ich durch Klick ein anderes Workbook lade ("Mappe2.xls"). Wenn Mappe2.xls geladen wird, so sollte Mappe1.xls automatisch geschlossen werden, was aber nicht passiert.
Fehlermerldung "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs". Wenn ich aber die Mappe1 starte und die Mappe2 direkt über den Explorer statt über das Makro zu starten funktionierts. Habe keine Ahnung woran das liegen könnte.
Vielleicht hat jemand Zeit und Muße mir zu helfen.
' das steht in Mappe1.xls

Private Sub CommandButton1_Click()
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Application")
ExcelSheet.Application.Workbooks.Open Filename:="C:\test\Mappe2.xls", UpdateLinks:=3
End Sub

' und das in Mappe2.xls

Private Sub Workbook_Open()
Workbooks("Mappe1").Close savechanges:=False
End Sub

Vielen Dank für Eure Hilfe
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbook close
18.04.2006 18:58:30
Nepumuk
Hallo Torsten,
du öffnest die Mappe2 in einer eigenen Application. In dieser ist nur die Mappe2 aber nicht Mappe1 geöffnet.
Gruß
Nepumuk

AW: Workbook close
18.04.2006 19:00:35
J.L.
Hallo Torsten,
Das müßte völlig reichen. Den Code in Mappe 2 kannst du komplett weglassen.

Private Sub CommandButton1_Click()
Workbooks.Open Filename:="C:\test\Mappe2.xls", UpdateLinks:=3
Workbooks("Mappe1").Close savechanges:=False
End Sub

Jörg
Anzeige
AW: Workbook close
18.04.2006 19:12:27
Torsten
Jap, funktioniert, danke für Eure Hilfe
Grüße
Torsten
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Automatisches Schließen von Excel-Workbooks mit VBA


Schritt-für-Schritt-Anleitung

Um ein Workbook in Excel mit VBA zu schließen, während ein anderes geöffnet wird, kannst du folgenden Code verwenden. Beachte, dass der Code von einem Button oder einem anderen Trigger in deinem Workbook ausgeführt werden kann.

  1. Öffne dein Haupt-Workbook (z.B. "Mappe1.xls").
  2. Füge einen Button hinzu und öffne den VBA-Editor (Alt + F11).
  3. Füge folgenden Code in das Codefenster des Buttons ein:
Private Sub CommandButton1_Click()
    Workbooks.Open Filename:="C:\test\Mappe2.xls", UpdateLinks:=3
    Workbooks("Mappe1.xls").Close savechanges:=False
End Sub
  1. Speichere die Änderungen und teste den Button. Wenn du auf den Button klickst, sollte "Mappe2.xls" geöffnet werden und "Mappe1.xls" geschlossen werden.

Häufige Fehler und Lösungen

Fehler: Laufzeitfehler 9: Index außerhalb des gültigen Bereichs.

  • Ursache: Du versuchst, auf ein Workbook zuzugreifen, das nicht geöffnet ist. Dies passiert häufig, wenn du ein Workbook in einer neuen Excel-Anwendung öffnest.
  • Lösung: Stelle sicher, dass du das Workbook in der gleichen Excel-Anwendung öffnest. Der oben angegebene Code löst dieses Problem, da er direkt auf das bereits geöffnete Workbook zugreift.

Fehler: Workbook kann nicht geschlossen werden.

  • Ursache: Möglicherweise gibt es ungespeicherte Änderungen in dem Workbook.
  • Lösung: Verwende savechanges:=False, um das Workbook ohne Speichern zu schließen.

Alternative Methoden

Eine alternative Methode, um ein Workbook zu schließen, besteht darin, die Application.Workbooks.Close-Methode zu verwenden:

Application.Workbooks("Mappe1.xls").Close savechanges:=False

Diese Methode ist nützlich, wenn du mehrere Workbooks verwalten möchtest und sicherstellen willst, dass sie korrekt geschlossen werden.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du das Schließen von Workbooks optimieren kannst:

  1. Schließen eines Workbooks mit Bestätigung:
Private Sub CommandButton2_Click()
    Dim response As VbMsgBoxResult
    response = MsgBox("Möchtest du das Workbook wirklich schließen?", vbYesNo)

    If response = vbYes Then
        Workbooks("Mappe1.xls").Close savechanges:=False
    End If
End Sub
  1. Schließen aller geöffneten Workbooks:
Sub CloseAllWorkbooks()
    Dim wb As Workbook
    For Each wb In Workbooks
        wb.Close savechanges:=False
    Next wb
End Sub

Tipps für Profis

  • Verwende On Error Resume Next vor dem Schließen von Workbooks, um Laufzeitfehler zu vermeiden, falls das Workbook nicht geöffnet ist.
  • Überprüfe die Verfügbarkeit des Workbooks, bevor du versuchst, es zu schließen, um Fehler zu vermeiden.
  • Nutze die With-Anweisung für eine klarere Struktur deines Codes:
With Workbooks("Mappe1.xls")
    .Close savechanges:=False
End With

FAQ: Häufige Fragen

1. Wie kann ich ein Workbook schließen, ohne Änderungen zu speichern? Du kannst dies erreichen, indem du beim Schließen savechanges:=False verwendest. Beispiel: Workbooks("Mappe1.xls").Close savechanges:=False.

2. Kann ich ein Workbook schließen, das von einem anderen Benutzer geöffnet ist? Nein, du kannst nur Workbooks schließen, die du geöffnet hast. Wenn ein anderes Workbook von einem anderen Benutzer geöffnet ist, wird ein Fehler angezeigt, wenn du versuchst, es zu schließen.

3. Was ist der Unterschied zwischen Workbooks.Close und Application.Workbooks.Close? Workbooks.Close bezieht sich auf das spezifische Workbook, während Application.Workbooks.Close sich auf alle geöffneten Workbooks in der aktuellen Excel-Anwendung bezieht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige