Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Nur Dateien der letzten 3 Monate kopieren

Forumthread: Nur Dateien der letzten 3 Monate kopieren

Nur Dateien der letzten 3 Monate kopieren
19.01.2016 17:07:23
hasiro
Wie kann ich in Excel nur Die Dateien mit der Endung *.csv der letzten 3 Monate kopieren? In meinem jetzigen Skript wird mir immer alles kopiert.
Grüsse aus der Schweiz

Private Sub Workbook_Open()
Dim FSO As Object
Dim src As String
Dim dst As String
src = "G:\BU Medical\MED Production\MED Assembling\MED Seriedocu\40-Consumables_Dossier\20 E- _
Ventile und Membranen C1T1MR1\10 EVPS_PBM785399\*.csv"
dst = "G:\BU Medical\MED Production\MED Product and Process Care\MED Process Care\30  _
Prozessunterhalt\40-Prozessdaten Auswertung Consumables\E-Ventil Statistik\EVPSdaten\"
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile src, dst, True
Exit Sub
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur Dateien der letzten 3 Monate kopieren
19.01.2016 19:52:28
Michael
Hallo hasiro,
wenn man das Beispiel aus https://www.herber.de/mailing/Arbeitsmappe_blitzschnell_kopieren.htm etwas ändert und stattdessen den Kommandozeilenbefehl xcopy verwendet, rennt es.
Du mußt halt Deine Pfadangaben wieder einsetzen...
Option Explicit
Public Const PROCESS_QUERY_INFORMATION = &H400
Public Const WAIT_TIMEOUT = &H102&
Declare Function OpenProcess Lib "kernel32" ( _
ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Declare Function WaitForSingleObject Lib "kernel32" ( _
ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long
Sub Win32WaitTilFinished(ProgEXE As String)
Dim ProcessID As Long
Dim hProcess As Long
Dim RetVal As Long
ProcessID = Shell(ProgEXE, vbHide)
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, ProcessID)
Do
DoEvents
RetVal = WaitForSingleObject(hProcess, 50)
Loop Until RetVal  WAIT_TIMEOUT
MsgBox ProcessID
End Sub
Sub Kopieren()
Dim src As String
Dim dst As String
Dim monat As Long, jahr As Long
Dim sFile As String, sPath As String
src = "c:\A_Herber\*.xls"
dst = "C:\Dein_Ordner\Dein_Unterordner\"
' aus der Hilfe von xcopy:
'/D:M-T-J  Kopiert nur die an oder nach dem Datum ge„nderten Dateien.
'            Ist kein Datum angegeben, werden nur Dateien kopiert,
'            die neuer als die bestehenden Zieldateien sind.
monat = Month(Now) - 3: jahr = Year(Now)
If monat 
Für 64-bit muß das allerdings leicht geändert werden.
Es gibt auch eine FSO-Alternative, sinngemäß hier nachzulesen:
http://stackoverflow.com/questions/26241927/copying-files-from-one-folder-to-another-using-vba
Schöne Grüße,
Michael
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige