AW: verknüpfte Mappe nur in Verbind mit Quelle öffnen
Ulf
Mir war nicht ganz klar, was mit WEG-ERG.XLS passieren soll, wenn
WEG2004.XLS geschlossen wird?
Ich habs mal so gemacht, dass die automatisch geschlossen wird, wenn
keine Veränderungen vorgenommen wurden, ansonsten wird nachgefragt,
ob die Änderungen gespeichert werden sollen.
Keine ganz leichte Kost:
''Der Code muss in deine PERSONL.XLS
'=========================================================
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Unset_Class
End Sub
'=========================================================
Private Sub Workbook_Open()
Call Set_Class
End Sub
'=========================================================
''Dieser Code muss in ein Standardmodul der PERSONL.XLS
Option Explicit
Dim AppObject As New clsWorkbook
'=========================================================
Sub Set_Class()
If AppObject.App Is Nothing Then Set AppObject.App = Application
End Sub
'=========================================================
Sub Unset_Class()
Set AppObject.App = Nothing
End Sub
'=========================================================
''Dieser Code muss in ein Klassenmodul innerhalb der PERSONL.XLS
''Das Klassenmodul muss zwingend clsWorkbook heißen
Option Explicit
Public WithEvents App As Application
Const M1 As String = "WEG2004.XLS"
Const M2 As String = "WEG-ERG.XLS"
Dim bolOffen As Boolean, bolConfirm As Boolean, msg As Integer
''=================================================================================
Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
If UCase(Wb.Name) = M1 Then bolOffen = False
If bolConfirm Then Exit Sub
If Not bolOffen Then
For Each Wb In Workbooks
If UCase(Wb.Name) = M2 Then
If Workbooks(M2).Saved = False Then
bolConfirm = True
msg = MsgBox("Die Mappe " & M2 & " wird geschlossen!" & Space(10) & Chr(10) & _
"Sollen die Änderungen gespeichert werden?", 32 + 4)
If msg = vbYes Then
Workbooks(M2).Close True
Else
Workbooks(M2).Close False
End If
Else
Workbooks(M2).Close False
End If
End If
Next
End If
End Sub
''=================================================================================
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
bolConfirm = False
For Each Wb In Workbooks
If UCase(Wb.Name) = M1 Then
bolOffen = True
Exit For
End If
Next
If Not bolOffen Then
For Each Wb In Workbooks
If UCase(Wb.Name) = M2 Then
MsgBox "Mappe " & M2 & " kann nur geöffnet, wenn auch" & Space(10) & Chr(10) & _
"die Mappe " & M1 & " geöffnet ist!", 64, "weise hin..."
Workbooks(M2).Close False
End If
Next
End If
End Sub
''=================================================================================
Gutes Gelingen, Ulf