Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

BeforeClose andere Datei Schließenn

Betrifft: BeforeClose andere Datei Schließenn von: Andreas
Geschrieben am: 28.01.2020 20:45:31

Hallo,

würde gern beim Schließen der Mappe vorher eine zweite Datei Speichern und Schließen- ohne Nachfrage und Hinweise. Die zweite Datei ist jedoch nicht immer geöffnet- nur ab und zu.

Habe dazu in "Diese Arbeitsmappe" folgenden Code geschrieben.
Klappt nur nicht ganz...

  • Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    
    Workbooks(„ProtokollnR1.xlsm“).Close SaveChanges:=True
    
    
    If ThisWorkbook.Saved = False Then
    ThisWorkbook.Save
    End If
    
    
    End Sub



  • Gruß Andreas

    Betrifft: AW: BeforeClose andere Datei Schließenn
    von: Hajo_Zi
    Geschrieben am: 28.01.2020 20:49:09

    Hallo Andreas,
    Prüfen ob Datei schon offen
    Private Sub Workbook_Open()
        Dim BoOffen As Boolean
        Dim WoDatei As Workbook
        For Each WoDatei In Workbooks
            If WoDatei.Name = "test.xls" Then
                MsgBox "Datei ist schon geöffnet!"
                BoOffen = True
                Exit For
            End If
        Next
        If BoOffen = False Then
            MsgBox "Test wird automatisch geöffnet!"
            Workbooks.Open Filename:="C:\Eigene Dateien\Test.xls"
        End If
    End Sub
    
    GrußformelHomepage

    Betrifft: AW: BeforeClose andere Datei Schließenn
    von: Andreas
    Geschrieben am: 28.01.2020 21:38:33

    Danke Hajo,

    war noch nicht ganz die Lösung, habe mal versucht das Makro abzuändern. Leider noch nicht ganz der Erfolg.
    Private Sub Workbook_Workbook_BeforClosed(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim BoOffen As Boolean
        Dim WoDatei As Workbook
        For Each WoDatei In Workbooks
            If WoDatei.Name = "ProtokollnR1.xlsm" Then
                MsgBox "Datei wird geschlossen!"
                BoOffen = True
                Exit For
            End If
        Next
        If BoOffen = False Then
        
            Worksheets(ProtokollnR1.xlsm).Close SaveChanges:=True
        End If
    End Sub
    Gruß Andreas

    Betrifft: AW: BeforeClose andere Datei Schließenn
    von: Werner
    Geschrieben am: 28.01.2020 22:39:25

    Hallo,

    so?
    Private Sub Workbook_Workbook_BeforClosed(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim WoDatei As Workbook
    
    For Each WoDatei In Workbooks
        If WoDatei.Name = "ProtokollnR1.xlsm" Then
            WoDatei.Close True
            Exit For
        End If
    Next WoDatei
    
    If ThisWorkbook.Saved = False Then
        ThisWorkbook.Save
    End If
    
    End Sub

    Gruß Werner

    Betrifft: AW: BeforeClose andere Datei Schließenn
    von: Hajo_Zi
    Geschrieben am: 29.01.2020 05:36:28

    Hallo Andreas,

    Gut das muss auf einen Fehler Fehler laufen.
    Wenn die Dateio nicht offen ist möchtest Du Sie schließen.
    Ich habe keine Ahnung warum.

    Gruß Hajo

    Betrifft: AW: BeforeClose andere Datei Schließenn
    von: Luschi
    Geschrieben am: 29.01.2020 07:45:03

    Hallo Andreas,

    dieses Ereignis gibt es nicht:
    Private Sub Workbook_Workbook_BeforClosed(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    sondern
    Private Sub Workbook_BeforClose(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    und muß sich im Klassenmodul 'DieseArbeitsmappe' bzw. 'ThisWorkbook' befinden.
    statt: If BoOffen = False Then
    so: If BoOffen = True Then
    oder noch besser: If BoOffen Then
    denn 'BoOffen = True' ist doppelt-gemoppelt, denn 'If' prüfst immer selbst schon auf Wahrheitswert der boolschen Variable

    Gruß von Luschi
    aus klein-Paris

    Betrifft: Augen wie ein Luchs...
    von: Werner
    Geschrieben am: 29.01.2020 18:30:10

    Hallo Luschi,

    ...eine sehr gute Seehilfe - war mir gar nicht aufgefallen.

    Gruß Werner

    Betrifft: Danke
    von: Andreas
    Geschrieben am: 29.01.2020 22:45:38

    Danke an Hajo, Werner und Luschi.

    Jetzt ist es Perfekt.

    Mache wenig mit VBA und arbeite mich langsam durch.


    Gruß Andreas

    Betrifft: Gerne u. Danke für die Rückmeldung. o.w.T.
    von: Werner
    Geschrieben am: 29.01.2020 23:28:49



    Beiträge aus dem Excel-Forum zum Thema "BeforeClose andere Datei Schließenn"