Hallo Lutz,
Edit: :)
Oder ganz ohne VBA als Aufgabenbereich ablegen.
https://www.youtube.com/watch?v=QA46kmZNzc8
hier mal die Alternative mit VBA
mit dem Nachteil das es Mobil nicht funktionieren würde!
Der Code müsste in "DieseArbeitsmappe" deines "Masterfiles"
denke aber daran das die Datei nun die Endung .xlsm haben muss. Deine bestehenden Verknüpfungen aber sicherlich noch auf xlsx sind.
Option Explicit
'##################################
'anpassen wenn die Dateien in verschiedenen Ordnern liegen müsste der Code ein wenig umgebaut werden.
Const strPath As String = "P:\Temp"
Dim arrFiles
'#################################
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Integer
Dim objWB As Object
'###################
'Achtung beim Schließen wird auch gespeichert!
ThisWorkbook.Save
'##################
For i = 0 To UBound(arrFiles)
Set objWB = fCheckFile(strPath & arrFiles(i))
If Not objWB Is Nothing Then
objWB.Close True
End If
Set objWB = Nothing
Next
End Sub
Private Sub Workbook_Open()
Dim i As Integer
Dim objWB As Object
'#################################
'anpassen
arrFiles = Array("FileA.xlsx", "FileB.xlsx", "FileC.xlsx", "FileD.xlsx", "FileE.xlsx")
'#################################
For i = 0 To UBound(arrFiles)
Set objWB = fCheckFile(strPath & arrFiles(i))
If objWB Is Nothing Then
Set objWB = Workbooks.Open(strPath & arrFiles(i))
If objWB.ReadOnly Then
MsgBox "Achtung! Mappe: " & objWB.Name & " ist schreibgeschützt.!" & Chr(10) & _
"Änderungen werden in dieser Mappe nicht berücksichtigt, diese Mappe wird jetzt geschlossen!"
objWB.Close False
End If
End If
Set objWB = Nothing
Next
ThisWorkbook.Activate
End Sub
Private Function fCheckFile(strFullPath As String) As Workbook
Dim objWB As Workbook
For Each objWB In Application.Workbooks
If objWB.FullName = strFullPath Then
Set fCheckFile = objWB
Exit For
End If
Next
End Function