Soru pdf dosyalarını başka bir klasöre taşıma

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,164
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Bir klasör içerisinde tc kimlik numarası isim sicil şeklinde personelin özel güvenlik kimlik bilgileri tutulmaktadır.

Zamanı geçen (eski) özel güvenlik kimlik kartlarını TC kimlik numarasına göre (ilk 11 karaktere göre yada ilk boşluğu kadar olan şeklinde kıssas alınabilir) belirtilen başka bir klasöre kopyalama veya taşımak için ayrı bir kod,

Silmek için ise ayrı bir kod istiyorum.

Konu gayet açık olduğu için örnek dosya hazırlamadım. Yardımcı olabilecek arkadaşlarıma şimdiden teşekkür ediyorum.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,345
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Eski ve yeni pdf ler bir arada ise, eski veya yeni olduğu nasıl tespit edilecek? Bu durumda eski kimlik numaralarının bir listesi gerekli.
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,164
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Hocam eski den maksadım, son kullanma tarihi geçmiş olan özel güvenlik kimlik kartlarının yenisinin pdf dosyasını ile ben değiştiriyorum, buradaki amacım tarihi geçenleri başka bir klasöre taşımak, yerine yenisini ben kopyalayacağım zaten, yani a sütununda belirttiğim tc kimlik numarası ile başlayanları başka birklasöre taşımak istiyorum.
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,164
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Konu güncel sayın hocalarım.
 

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
Taşımak için:

C#:
Sub KlasoreTasi80()
kimlikler = ThisWorkbook.Path & "\Kimlikler\"
eskikimlik = ThisWorkbook.Path & "\Eskikimlik\"

Set fds = CreateObject("scripting.filesystemobject")
Set klasor = fds.GetFolder(kimlikler)

If fds.folderexists(kimlikler) = False Then MsgBox "Kimlikler Klasörü bulunamadı", , "Www.***************": Exit Sub
If fds.folderexists(eskikimlik) = False Then MsgBox "Eskikimlik Klasörü bulunamadı", , "Www.***************": Exit Sub

    For Each dosya In klasor.Files
    uzanti = Trim(Mid(dosya.Name, InStrRev(dosya.Name, ".", -1, 1) + 1))
    If uzanti = "pdf" Then
        For xd = 2 To Cells(Rows.Count, 1).End(xlUp).Row
            If Val(Left(dosya.Name, 11)) = Val(Cells(xd, 1)) Then
            fds.movefile dosya.Path, eskikimlik & "\" & dosya.Name
            Exit For
            End If
        Next
    End If
    Next
MsgBox "Belirtilen dosyalar taşındı", vbInformation + vbMsgBoxRtlReading, "ww.***************"
End Sub

Silmek için:

C#:
Sub PDFsil80()

eskikimlik = ThisWorkbook.Path & "\Eskikimlik\"

Set fds = CreateObject("scripting.filesystemobject")
Set klasor = fds.GetFolder(eskikimlik)

If fds.folderexists(eskikimlik) = False Then MsgBox "Eskikimlik Klasörü bulunamadı", , "Www.***************": Exit Sub

    For Each dosya In klasor.Files
    uzanti = Trim(Mid(dosya.Name, InStrRev(dosya.Name, ".", -1, 1) + 1))
    If uzanti = "pdf" Then
        For xd = 2 To Cells(Rows.Count, 1).End(xlUp).Row
            If Val(Left(dosya.Name, 11)) = Val(Cells(xd, 1)) Then
            Kill eskikimlik & "\" & dosya.Name
            Exit For
            End If
        Next
    End If
    Next
MsgBox "Belirtilen dosyalar Silindi", vbInformation + vbMsgBoxRtlReading, "ww.***************"
End Sub
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,164
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Sn. metehan8001, her iki kodu uyguladım, tam istediğim sonuç. Çok teşekkür ediyorum. Elinize fikrinize sağlık.

Özellikle taşıma olayı için adres yolunu kod içinde değil de hücre den aldırabilirsek, örneğin e1 hücresine C:\a_grubu\ dediğinizde C dizinine kendisi a_grubu adlı bir klasör açım bu klasöre kopyalayabilirse çok güzel olacak. Teşekkürler
 

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
Rica ederim Tahsin hocam ayrıca belirttiğiniz işlemi aşağıdaki şekilde yapabilirsiniz.
kimlikler = Range("e1") şeklinde olur.
 
Son düzenleme:

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,164
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
eskikimlik = Range("e1")
MkDir Range("e1")
Bu şekilde yaptım oldu, hocam teşekkürler.
 

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
Iyi çalışmalar hocam
 
Üst