Clever-Excel-Forum

Normale Version: Makro
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
habe folgendes Problem - vielleicht kann jemand mir bitte weiterhelfen!

Folgende Makro funktioniert einwandfrei wenn beide Dateien offen sind. Wenn nur eine geöffnet wird, dann kommt folgende Meldung:      

Laufzeitfehler 9
Index außerhalb des gültigen Bereichs

 Sub DateiSchließen_mit_speichern()
'Datei schließen mit speichern:
Workbooks("Offene Beträge 2023.xlsm").Close SaveChanges:=True
Workbooks("Barkassa 2023.xlsm").Close SaveChanges:=True
End Sub

Wie ist diese Meldung zu berichtigen?


Lg Ubi5
Hi,

da solltest Du erst mal prüfen, ob die Dateien geöffnet sind, bevor Du sie schließt.

https://online-excel.de/excel/singsel_vba.php?f=54
http://www.capri-soft.de/blog/?p=1201
Hallo Ubi,

eine einfache Prüfung könnte so aussehen:

Sub DateiSchließen_mit_speichern()
'Datei schließen mit speichern:
Dim WB As Workbook
    For Each WB In Workbooks
            If WB.Name = "Offene Beträge 2023.xlsm" Then
                Workbooks("Offene Beträge 2023.xlsm").Close SaveChanges:=True
            End If
            If WB.Name = "Barkassa 2023.xlsm" Then
                Workbooks("Barkassa 2023.xlsm").Close SaveChanges:=True
            End If
    Next WB
End Sub


Gruß Sigi
Moin!
Keine "Verbesserung", sondern nur ein kürzerer Ansatz:
Code:
Sub DateiSchließen_mit_speichern()
'Datei schließen mit speichern:
Dim WB As Workbook
  For Each WB In Workbooks
    Select Case WB.Name
      Case "Offene Beträge 2023.xlsm", "Barkassa 2023.xlsm": WB.Close True
    End Select
  Next WB
End Sub

Gruß Ralf
Danke RPP63 - funktioniert einwandfrei!