Gerard2348
Gebruiker
- Lid geworden
- 24 okt 2013
- Berichten
- 370
Beste allemaal,
Onderstaande macro gebruik ik om bestanden te openen die aan een bepaalde datum voldoen. Deze macro kijkt in directory D:\data\ en de subdirectory's en opent dan de bestanden die voldoen aan de data in cel C2 uit D:\data en alle subdirectory's . Kan ik dezelfde macro gebruiken om bestanden te kopiëren uit D:\data en alle subdirectory's die voldoen aan de datum in cel C2 naar een nieuwe locatie, bv D:\test\.
ik heb het geprobeerd om de volgende regel te veranderen van
in
maar dat werkt niet.
Iemand een suggestie.
Bvd
Onderstaande macro gebruik ik om bestanden te openen die aan een bepaalde datum voldoen. Deze macro kijkt in directory D:\data\ en de subdirectory's en opent dan de bestanden die voldoen aan de data in cel C2 uit D:\data en alle subdirectory's . Kan ik dezelfde macro gebruiken om bestanden te kopiëren uit D:\data en alle subdirectory's die voldoen aan de datum in cel C2 naar een nieuwe locatie, bv D:\test\.
Code:
Sub openfilesdatum ()
Dim sDatum As String, sDir As String, sn, i As Integer
sDir = "d:\data\" 'je directory
sDatum = "*" & Format(Sheets("Blad1").Range("C2"), "dd-mm-yyyy") & ".xls*" 'filename waarop je filtert
If Range("C2").Value = "" Then
Range("C2").Select
MsgBox vbCrLf & _
" Vul eerst de datum in " & vbCrLf & _
"" & vbCrLf & _
"", vbInformation + vbOKOnly, " "
ElseIf Range("C2").Value Then
sn = Split(CreateObject("wscript.shell").Exec("cmd /c Dir """ & sDir & sDatum & """ /b /s").StdOut.ReadAll, vbCrLf) 'array maken met alle filenames 'array maken met alle filenames
If UBound(sn) > 0 Then 'minstens 1
For i = 0 To UBound(sn) - 1 'laatste is leeg
On Error Resume Next 'mogelijks is die al open en krijg je een fout
Workbooks.Open (sn(i)) 'openen bestanden
On Error GoTo 0
Next
End If
End If
End Sub
ik heb het geprobeerd om de volgende regel te veranderen van
Code:
Workbooks.Open (sn(i))
in
Code:
FileCopy (sn(i)), "D:\test\"
maar dat werkt niet.
Iemand een suggestie.
Bvd
Laatst bewerkt: