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