Soru İki tarih arasındaki dosyaları kopyalamak

Katılım
17 Haziran 2008
Mesajlar
1,871
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Merhaba arkadaşlar;

örnek klasörde dosyalarım mevcut. alttaki kod ile kopyalama yapıyorum. Ancak istenen filtreleme ile kopyalama yapmıyor?. Tamamını kopyalıyor...

yardımcı arkadaşa şimdiden teşekkürler.

* bat dosyasıda çözüm olabilir...

C#:
Sub Dosya_kopyala()
    Dim ds, dc, f, s
    Yol = "D:\10_03_2023"
    Set ds = CreateObject("Scripting.FileSystemObject")
    Set f = ds.GetFolder(Yol)
    Set dc = f.Files
    For Each dosya In dc
        If dosya.Name Like "*_01_2023*" And dosya.Name Like "*_02_2023*" Then GoTo 10
        ds.CopyFile Yol & "\" & dosya.Name, Yol & "\yedek\"
10
    Next
MsgBox "Kopyalama İşlemi Bitti"
End Sub
 
Son düzenleme:

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
745
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Merhaba, deneyiniz.

Kod:
Sub Dosya_kopyala()
    Dim ds, dc, f, s
    Yol = "D:\10_03_2023"
    Set ds = CreateObject("Scripting.FileSystemObject")
    Set f = ds.GetFolder(Yol)
    Set dc = f.Files
    For Each dosya In dc
        If dosya.Name Like "*_01_2023*" Or dosya.Name Like "*_02_2023*" Then
            ds.CopyFile Yol & "\" & dosya.Name, Yol & "\yedek\"
        End If
    Next
    MsgBox "Kopyalama İşlemi Bitti"
End Sub
*Dosya yoksa işleme devam etmez.

Kod:
Sub Dosya_kopyala()
    Dim ds, dc, f, s
    Yol = "D:\10_03_2023"
    Set ds = CreateObject("Scripting.FileSystemObject")
    Set f = ds.GetFolder(Yol)
    Set dc = f.Files
    Dim dosyaAdi As String
    For Each dosya In dc
        dosyaAdi = dosya.Name
        If InStr(1, dosyaAdi, "_01_2023") > 0 Or InStr(1, dosyaAdi, "_02_2023") > 0 Then
            ds.CopyFile Yol & "\" & dosyaAdi, Yol & "\yedek\"
        End If
    Next
    MsgBox "Kopyalama İşlemi Bitti"
End Sub
 
Katılım
17 Haziran 2008
Mesajlar
1,871
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Cevap için çok teşekkürler.

1 ve 2 ay olduğunda kod düzgün çalışıyor...

Ancak 2. ayı 3 yaptığımızda ; sadece 1 ve 3. aydakileri kopyalıyor. istediğim : 3 ay ve geriye doğru 1. ay a kadar olanları kopyalasın.

Kodu 3. aya göre düzenledim.

1 ve 3 aylar tamam. Ama 2 . ay lar yok . :(





Kod:
Sub Dosya_kopyala()
    Dim ds, dc, f, s
    Yol = "D:\10_03_2023"
    Set ds = CreateObject("Scripting.FileSystemObject")
    Set f = ds.GetFolder(Yol)
    Set dc = f.Files
    For Each dosya In dc
        If dosya.Name Like "*_01_2023*" Or dosya.Name Like "*_03_2023*" Then
            ds.CopyFile Yol & "\" & dosya.Name, Yol & "\yedek\"
        End If
    Next
    MsgBox "Kopyalama İşlemi Bitti"
End Sub
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
745
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Edit,
Kod bloğu hatalı.
 
Son düzenleme:
Katılım
17 Haziran 2008
Mesajlar
1,871
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Hocam tarih biçimleri sizin yapmış olduğunuz slaş ile ayrılmış şekilde değil...

başlangıç tarihi formatı ( aynı zamanda dosya adıdır...) = *_01_2023*
bitiş tarihi formatı ( aynı zamanda dosya adıdır...) = *_03_2023*


bu biçime göre olmalıdır. Dosyanın öznitelik tarihinden gidemeyiz maalesef...



Kod:
Tarih1 = InputBox("Kopyalanacak dosyaların başlangıç tarihini girin (GG/AA/YYYY)")
Tarih2 = InputBox("Kopyalanacak dosyaların bitiş tarihini girin (GG/AA/YYYY)")
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
745
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Hocam tarih biçimleri sizin yapmış olduğunuz slaş ile ayrılmış şekilde değil...

başlangıç tarihi formatı ( aynı zamanda dosya adıdır...) = *_01_2023*
bitiş tarihi formatı ( aynı zamanda dosya adıdır...) = *_03_2023*


bu biçime göre olmalıdır. Dosyanın öznitelik tarihinden gidemeyiz maalesef...



Kod:
Tarih1 = InputBox("Kopyalanacak dosyaların başlangıç tarihini girin (GG/AA/YYYY)")
Tarih2 = InputBox("Kopyalanacak dosyaların bitiş tarihini girin (GG/AA/YYYY)")
4. mesajdakini tekrar deneyiniz.
 
Katılım
17 Haziran 2008
Mesajlar
1,871
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Altın Üyelik Bitiş Tarihi
26-03-2020
Bu satırda hata veriyor.

Kod:
        DosyaTarihi = DateSerial(Mid(dosya.Name, 8, 4), Mid(dosya.Name, 6, 2), Mid(dosya.Name, 4, 2))
 
Üst