Es gibt eine Masterdatei, welche sich Werte aus zahlreiche Quelldateien (an jeweils unterschiedlicher Stelle) holt. Grundsätzlich funktioniert das Aktualisieren der Daten. Es sei denn, ein User hat eine der Quelldateien umbenennt oder verschoben. Oder der User, welche die Masterdatei öffnet, hat keine Leseberechtigung für eine oder alle Quelldateien.
Ziel:
Ich möchte folgendes Verhalten beim Öffnen der Masterdatei:
- Es soll eine Meldung erfolgen bei fehlender Berechtigung auf die Quelldatei(en)
- Es soll eine Meldung erfolgen, wenn Quelldatei(en) nicht existieren
- Die Werte sollen gleich beim Öffnen aktualisiert werden
- Die Masterdatei soll offen bleiben im Anschluss an eine Meldung
Mit meinen bescheidenen VBA-Kenntnissen stehe ich nun an folgenden Punkten an:
- Wie bekomme ich die unterschiedlichen Dateipfade in ein Array? (in Realität sind es deutlich mehr als drei Dateien)
- Motivation für das Array: ich möchte mit einer Schleife die Berechtigung, die Datei-Existenz und das letzte Speicherdatum prüfen/abfragen.
- Mein rudimentärer Ansatz funktioniert nur bedingt: bei Bestätigung einer Error-Meldung schliesst sich Excel, was in diesem Fall unerwünscht ist.
- Ziel ist, dass die Fehlermeldung differenziert ausfällt.
Danke für eure Hilfe.
Mein bisheriger Code:
Option Explicit
Private Sub Workbook_Open()
'Variablen
Dim dirBCH As String
Dim dirKKJ As String
Dim dirTMP As String
'Stellenplan-Excel-Quelldateien
dirBCH = "\\PfadA\bch.xlsx"
dirKKJ = "\\PfadB\kkj.xlsx"
dirTMP = "\\PfadC\tmp.xlsx"
On Error GoTo Fehler
'Alle Stellenplan-Excel-Quellendateien aktualisieren
Call ThisWorkbook.UpdateLink(Name:=ThisWorkbook.LinkSources, Type:=xlLinkTypeExcelLinks)
'Aktualisieren Speicherdatum Stellenplan-Excel-Quelldateien
'BCH
Range("U6").Value = FileDateTime(dirBCH)
Range("U15").Value = FileDateTime(dirBCH)
Range("U16").Value = FileDateTime(dirBCH)
Range("U27").Value = FileDateTime(dirBCH)
'KKJ
Range("U8").Value = FileDateTime(dirKKJ)
Range("U18").Value = FileDateTime(dirKKJ)
Range("U29").Value = FileDateTime(dirTMP)
MsgBox "Alle Daten wurden aktualisiert!"
Exit Sub
Fehler
MsgBox "Keine Aktualisierung der verknüpften Werte! Berechtigung auf X, Y fehlt bzw. Folder A, B existiert nicht."
End Sub