Klasörlerden dosya taşımak

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba; Formda bulduğum dosyaları listeleme ile klasörlerin içindeki dosyaları listeliyorum. Listede sonda TAH.pdf yazan dosyaları masaüstünde ki TAHAKKUK klasörüne toplu olarak aktarmak istiyorum. Site aradım ancak bulamadım. Teşekkür ederim.
238316
 

Ekli dosyalar

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin. Forum içinde movefile kelimesi ile de arama yapabilirsiniz.

Kod:
Set nesne = CreateObject("Scripting.FileSystemObject")

For a = 3 To Cells(Rows.Count, "B").End(3).Row

If InStr(Cells(a, "B"), "TAH") > 0 Then
nesne.MoveFile Cells(a, "A") & Cells(a, "B"), "C:\Users\XXXX\Desktop\TAHAKKUK\" & Cells(a, "B")
End If

Next
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba; Yazdığınız makroyu adapte edemedim. Ancak forum sitesinde çalışabileceğim makro buldum. Gerçi sade tahakkukları taşımıyor ama bu şekilde de kullanabilir. Gerçi dosyalar Beyanname klasörünün içindeki klasöre taşınıyor. Masaüstüne klasör açıp oraya taşısa daha kullanışlı olurdu. Form sitesi çok faydalı oluyor. Emeği geçenlere teşekkür ederim.
Kod:
Sub Dosya_Listele()
Set ds = CreateObject("Scripting.FileSystemObject")
anayol = CreateObject("WScript.Shell").SpecialFolders("desktop") & "\Beyanname"
yol = anayol
Columns(1).Clear
Application.ScreenUpdating = False
Do
Tekrar:
If ds.GetFolder(yol).subfolders.Count > 0 Then
    For Each kls In ds.GetFolder(yol).subfolders
        If kls <> anayol & "\topla" Then klslst = klslst & "{" & kls
    Next
End If
x = x + 1
deg = Split(klslst, "{")
yol = deg(x)
dosya = Dir$(yol & "\*.*")
Do While dosya <> ""
Say = Say + 1
ds.CopyFile yol & "\" & dosya, anayol & "\topla\" & dosya
dosya = Dir$()
Loop
If x = 1 And ds.GetFolder(yol).subfolders.Count > 0 Then GoTo Tekrar
Loop While UBound(deg) <> x
End Sub
 
Üst