Userform üzerinde Makro ile Bir dizinde klasör oluşturma ve o klasöre dosya kopyalama

Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Merhabalar


Resimde gördüğünüz gibi bir userform üzerinde bir text satırında girdiğim bir veriyi Sayfa1 de A1 hücresine yazdırıyorum.

A1 hücresine yazan veri ne ise aynı isimde C:\Users\ dizini altında klasör oluşturuyor.

Örnek resimde SA0001 yazdım ve C:\Users\SA0001 klasörü oluşuyor.

Bunuda şu formülle yapıyorum
Kod:
Sub Create_Folder()
Dim kls, yol, a
Set kls = CreateObject("Scripting.FileSystemObject")
For i = 1 To [a65536].End(3).Row
yol = "C:\Users\" & Cells(i, "a")
a = kls.FolderExists(yol)
If a = True Then
MsgBox yol & " ayni klasor daha once olusturulmus", 256, "UYARI"
Else
kls.CreateFolder yol
End If
Next i
MsgBox "Folder has been created"
Set ds = Nothing
End Sub
Sorum şudur
Bu oluşturduğum klasör örneğin SA0001 klasörü içerisine başka bir yerden dosya kopyalamak istiyorum. Bu dosyalarda C:\Users\BDH klasörü altındadır.

BDH altında farklı uzantılarda 5-6 tane dosya var bu dosyaları oluşan bu klasör içerisine kopyalasın istiyorum.

Bilgi ve yardımlarınızı rica ederim


 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,428
Excel Vers. ve Dili
2019 Türkçe
Eğer C:\Users\BDH klasörünün içindekilerinin tamamı kopyalanacaksa BDH klasörünü kopyalamak daha kısa olur

Kod:
kls.CreateFolder yol
satırını silin onun yerin eaşağıdakini yazın

Kod:
kls.CopyFolder "C:\Users\BDH", yol
 
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Ama bu kodum benim sadece userform üzerinde folder oluşturmaya yönelik.

bu kodun içine birde kopyalama işlemini ekleyebilirmiyiz. naısl yaparız?
 
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Sorumu örnek dosya ile yineliyorum

Ben üzerinde çalıştığım dosyanın kopyasını buraya ekliyorum

http://s3.dosya.tc/server31/RuSAdW/DirectoryE.rar.html

İstediğim şudur
Alttaki resimde gördüğünüz üzere bir userform var.

bu userformda SİCİL NO yazılı satıra bir veri giriyorum. Bu veriyi alıp Excel çalışma sayfasında A1 hücresine yazıyor.

Daha sonra A1 hücresinde yazan bu veri ne ise aynı isimde C:\Users klasörü altına klasör oluşturuyor.

burada excelwebtr yazdım ve Users klasörünüde aşağıda görüyorsunuz orada bir excelwebtr klasörü oluşmuş haldedir.

Şimdi bu kısım tamam.

Benim istediğim ise. oluşan bu klasöre C:\Users\BDH klasörünü görüyorsunuz. onun içinde 3-5 tane farklı uzantıda dosyalar var.

Bu dosyaları kopyalayıp oluşturduğum bu klasörün için yapıştırsın.

Başka bir veri girersem yine bir klasör oluşturacak ve yine BDH klasörü içerisindeki dosyaları yine yeni oluşan klasöre atacak. her oluşturduğum klasöre aynı işlemi yapsın istiyorum.

 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,428
Excel Vers. ve Dili
2019 Türkçe
Açıklamanıza göre üstte dediğim şekilde yapınca sorununuz kalmıyor. Eğer boş Klasör oluşturma kodlarınızı başka bir yerde kullanıyorsanız o kodlar kalsın dediğim şekilde yeni kodları yukarıda gösterdiğiniz OK tuşuna ekleyin.

Yani yapmanız gereken şey OK tuşuna tıklatınca çalışan kodları değil de aşağıdaki kodları çalıştırmak.

Kod:
Sub OK_Click()
Dim kls, yol, a
Set kls = CreateObject("Scripting.FileSystemObject")
For i = 1 To [a65536].End(3).Row
yol = "C:\Users\" & Cells(i, "a")
a = kls.FolderExists(yol)
If a = True Then
MsgBox yol & " ayni klasor daha once olusturulmus", 256, "UYARI"
Else
kls.CopyFolder "C:\Users\BDH", yol
End If
Next i
MsgBox "Folder has been created"
Set ds = Nothing
End Sub
 
Üst