Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '-----Workbook B-----'
- Option Explicit
- Private Sub Workbook_Open()
- Dim fso As New FileSystemObject
- Dim strPfad As String
- Dim strAblagePfad As String
- Dim lokaleDatei As String
- Dim serverDatei As String
- If MsgBox("Start?", vbYesNo, "Start") = vbNo Then
- Exit Sub
- End If
- ' zentrales Verzeichnis
- strPfad = ThisWorkbook.Path
- ' lokales Verzeichnis
- strAblagePfad = ThisWorkbook.Path
- lokaleDatei = Dir(strAblagePfad & "\WorkbookA********.xlsm")
- serverDatei = Dir(strPfad & "\WorkbookA********.xlsm")
- If serverDatei <> "" Then
- If lokaleDatei <> "" Then
- If getDate(serverDatei) > getDate(lokaleDatei) Then
- Call fso.CopyFile(strPfad & "\" & serverDatei, strAblagePfad & "\" & serverDatei, True)
- On Error Resume Next
- Call fso.DeleteFile(strAblagePfad & "\" & lokaleDatei)
- On Error GoTo 0
- End If
- Else
- Call fso.CopyFile(strPfad & "\" & serverDatei, strAblagePfad & "\" & serverDatei, True)
- End If
- End If
- Application.Workbooks.Open (strAblagePfad & "\" & serverDatei)
- End Sub
- Private Function getDate(inputString As String) As Date
- Dim dateString As String
- Dim dummy As String
- Dim i As Integer
- dateString = Right(Left(inputString, Len(inputString) - 5), 8)
- For i = 1 To Len(dateString)
- If i = 3 Or i = 5 Then
- dummy = dummy & "."
- End If
- dummy = dummy & Mid(dateString, i, 1)
- Next i
- If IsDate(dummy) Then
- getDate = CDate(dummy)
- Else
- getDate = CDate("01.01.2024")
- End If
- End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement