Advertisement
Guest User

Untitled

a guest
Feb 4th, 2025
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VisualBasic 1.59 KB | Source Code | 0 0
  1. '-----Workbook B-----'
  2. Option Explicit
  3.  
  4. Private Sub Workbook_Open()
  5.  
  6. Dim fso As New FileSystemObject
  7. Dim strPfad As String
  8. Dim strAblagePfad As String
  9. Dim lokaleDatei As String
  10. Dim serverDatei As String
  11.  
  12. If MsgBox("Start?", vbYesNo, "Start") = vbNo Then
  13.     Exit Sub
  14. End If
  15.  
  16. ' zentrales Verzeichnis
  17. strPfad = ThisWorkbook.Path
  18. ' lokales Verzeichnis
  19. strAblagePfad = ThisWorkbook.Path
  20.  
  21.  
  22. lokaleDatei = Dir(strAblagePfad & "\WorkbookA********.xlsm")
  23. serverDatei = Dir(strPfad & "\WorkbookA********.xlsm")
  24.  
  25. If serverDatei <> "" Then
  26.     If lokaleDatei <> "" Then
  27.         If getDate(serverDatei) > getDate(lokaleDatei) Then
  28.             Call fso.CopyFile(strPfad & "\" & serverDatei, strAblagePfad & "\" & serverDatei, True)
  29.             On Error Resume Next
  30.             Call fso.DeleteFile(strAblagePfad & "\" & lokaleDatei)
  31.             On Error GoTo 0
  32.         End If
  33.     Else
  34.         Call fso.CopyFile(strPfad & "\" & serverDatei, strAblagePfad & "\" & serverDatei, True)
  35.     End If
  36. End If
  37.  
  38. Application.Workbooks.Open (strAblagePfad & "\" & serverDatei)
  39.  
  40. End Sub
  41.  
  42. Private Function getDate(inputString As String) As Date
  43.  
  44.     Dim dateString As String
  45.     Dim dummy As String
  46.     Dim i As Integer
  47.     dateString = Right(Left(inputString, Len(inputString) - 5), 8)
  48.    
  49.     For i = 1 To Len(dateString)
  50.         If i = 3 Or i = 5 Then
  51.             dummy = dummy & "."
  52.         End If
  53.         dummy = dummy & Mid(dateString, i, 1)
  54.     Next i
  55.    
  56.     If IsDate(dummy) Then
  57.         getDate = CDate(dummy)
  58.     Else
  59.         getDate = CDate("01.01.2024")
  60.     End If
  61. End Function
  62.  
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement