14.09.2020, 12:21
Hallo zusammen,
ich lasse ein Macro nach der neusten Datei suchen auf einem Netzwerklaufwerk, öffnen, kopiere was raus und schließe es wieder.
Funktioniert auch. Aber sobald das neuste File schon von jemand anderes (oder mir selber!) geöffnet ist, öffnert er nix und es kommt eine VBA fehlermeldung wegen dem kopierversuch.
Dim WBPalZiel As Workbook
Dim WBPalQuelle As Workbook, WSPalZiel As Worksheet
Set WBPalZiel = ThisWorkbook
Dim fdr As Scripting.Folder
Dim target As Scripting.file
Dim strFile As String
For Each fdr In CreateObject("Scripting.FileSystemObject").GetFolder("O:\.....\Q3").SubFolders
For Each target In fdr.Files
If InStr(1, UCase(target), UCase("Dateiname.xls")) > 0 Then
If target.DateLastModified > dteFile Then
dteFile = target.DateLastModified
strFile = target
End If
End If
Next
Next
If Len(Dir(strFile)) Then
Set WBPalQuelle = Workbooks.Open(strFile)
End If
With WBPalQuelle
WBPalZiel.Sheets("Sheet5").Range("B1:H218").Value = Sheets("Sheet1").Range("A1:G219").Value
.Close savechanges:=False
End With
Nun hab ich aus Set WBPalQuelle = Workbooks.Open(strFile) ein Set WBPalQuelle = Workbooks.Open(strFile, ReadOnly=True) gemacht, hilft aber nix.
Es wird trotzdem nicht geöffnet. Wenn es niemand offen hat geht es.
Hat da jemand eine Idee warum das ReadOnly=True nicht funktioniert? Vielleicht an der falschen Stelle?
ich lasse ein Macro nach der neusten Datei suchen auf einem Netzwerklaufwerk, öffnen, kopiere was raus und schließe es wieder.
Funktioniert auch. Aber sobald das neuste File schon von jemand anderes (oder mir selber!) geöffnet ist, öffnert er nix und es kommt eine VBA fehlermeldung wegen dem kopierversuch.
Dim WBPalZiel As Workbook
Dim WBPalQuelle As Workbook, WSPalZiel As Worksheet
Set WBPalZiel = ThisWorkbook
Dim fdr As Scripting.Folder
Dim target As Scripting.file
Dim strFile As String
For Each fdr In CreateObject("Scripting.FileSystemObject").GetFolder("O:\.....\Q3").SubFolders
For Each target In fdr.Files
If InStr(1, UCase(target), UCase("Dateiname.xls")) > 0 Then
If target.DateLastModified > dteFile Then
dteFile = target.DateLastModified
strFile = target
End If
End If
Next
Next
If Len(Dir(strFile)) Then
Set WBPalQuelle = Workbooks.Open(strFile)
End If
With WBPalQuelle
WBPalZiel.Sheets("Sheet5").Range("B1:H218").Value = Sheets("Sheet1").Range("A1:G219").Value
.Close savechanges:=False
End With
Nun hab ich aus Set WBPalQuelle = Workbooks.Open(strFile) ein Set WBPalQuelle = Workbooks.Open(strFile, ReadOnly=True) gemacht, hilft aber nix.
Es wird trotzdem nicht geöffnet. Wenn es niemand offen hat geht es.
Hat da jemand eine Idee warum das ReadOnly=True nicht funktioniert? Vielleicht an der falschen Stelle?