Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro
#1
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
Antworten Top
#2
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
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
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
Antworten Top
#4
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Thumbs Up 
Danke RPP63 - funktioniert einwandfrei!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste