Klasör içindeki Dosyalarla İşlem

Excel ile herhangi bir klasor icerisindeki dosyalarla işlem uzerine;

Bu haftasonu site uzerindeki dosyalara sitemizin anasayfasinin ve iletisim linklerinin konulmasi konusunda bir fikre aklim yatti. Once bir kac dosyayi acip bu linkleri yapistirdiktan sonra sizlerle cok fazla dosya ve konu paylasimi icerisinde bulundugumu gordum ve farkli bir yol izlemeye karar verdim.

Fikrin ozu suyduki site uzerindeki tum dosyalari indirecektim ve bir klasor icerisine alacaktim, daha sonra ise bu klasor icerisinde bir for each dongusu yaratarak tum dosyalari acip bu dosyalara sitemizin linkleri bulunan shape nesneleri ekleyecektim.

2013 versiyon excelde bu islemin hic kasmadigini ayrica bildirmek isterim, diger versiyonlar ile yeniden deneme firsatim olmadi.

Bu islem icin ornek dosyayi paylasmadan once kodlari paylasacagim fakat cok fazla anlatima girmeme gerek yok cunku daha onceki konularda ogrendiklerimiz ve kodlar uzerine aldigim notlar ile anlasilabilir duruma geldigini dusunuyorum.

Sub Klasordeki_Dosya_listesi()

Dim fd As FileDialog
Dim Secilen_Dosyanin_Yolu As String
Dim Secilen_Klasor
Dim Secilen_Klasor_Temp
Dim Secili_Yol As FileDialog
Dim fs
Dim Extra_Slash
Extra_Slash = ""
Dim Dosyam

'Secilen dosya yolunun alinmasi
Set Secili_Yol = Application.FileDialog(msoFileDialogFolderPicker)
With Secili_Yol
'Kalici bir pencere acma
.AllowMultiSelect = False
If .Show Then
   'Kullanici bir klasor secer...

   'Klasorun icerisinde bir dongu olusturulur
   For Each Secilen_Klasor In .SelectedItems

       'Secilen klasorun yoluna extradan bir slash ekleme
       Secilen_Dosyanin_Yolu = Secilen_Klasor & Extra_Slash

       Set fs = CreateObject("Scripting.FileSystemObject")
       Set Secilen_Klasor_Temp = fs.GetFolder(Secilen_Dosyanin_Yolu)

           'Klasordeki dosyalar icin dongu
           For Each Dosyam In Secilen_Klasor_Temp.Files
               'MsgBox Dosyam.Name
               'Dosyalarin isimlerini mesaj gostermek icin ornek
               'Workbooks.Open Filename:=Dosyam
               'Ayni sekilde dosyalarinizi acmak icin bir ornek

               'ActiveWorkbook.Save
               'Dosyayi kaydet
               'ActiveWorkbook.Close
               'Dosyayi Kapat
           Next
   Next
End If
End With

End Sub

Ne kadar kodlar uzerine not almis olsamda uzun sayilacak bir kod dizisi o yuzden anlamadiginiz bolumleri lutfen sorunuz, mesajla dosyanin adini yazdirma, kapali dosyayi acmak, kaydetmek, kapatmak gibi ornekleri kapatmak kaydi ile kodlara ekledim, bunlari acarak test edebilirsiniz.

Klasör içindeki Dosyalarla İşlem

Yazar: mmustafaaslan

2004 yilindan itibaren ozel bir sirketin finans departmaninda calismaktadir. Kendini excel, visual basic kullaniminda gelistirmis olan yazarimiz; Meslegi geregi SAP konusunda ileri derecede bilgilidir.

“Klasör içindeki Dosyalarla İşlem” için 3 yorum

  1. Merhabalar

    Web de bakmadığım forum kalmadı.
    Benim sorunum biraz farklı aşağıda izah ettim.

    Bilgisayarım “D” bölümünde
    Onlarca klasör bu klasörlerin içinde yüzlerce dosya var.
    Bütün dosyalarda “Data” adlı sayfalar var.

    Birde açık olan Çalışma Kitabı var ve bu kitaptada “Veri” sayfası var.
    Ben belirli periyotlarla “Veri” sayfasından “Data” sayfalarına veri aktaracağım.

    Aktaracağım veriler
    E,H,I ve J sütununda bulunuyor.
    bu verileri aktarmak için aynı satırın
    B ve C sütunundaki verileri kullanacağız.

    Aktarmanın şu şekilde yapılmasını istiyorum.
    Örneğin;
    “Veri” sayfası (B20) de “Ahmet” var (C20) de “Hülya” var.
    20. satır (E,H,I ve J) verilerini göndermek için
    “Data” sayfası (B4:B100) ve (C4:C100) aralığında
    aynı satırda olmak kaydı ile “Ahmet” ve “Hülya” aranacak

    aradı ve X bir satırda buldu diyelim o satırda
    E, H, I ve J hücreleri kontrol edilecek. bu hücreler boş ise
    “Veri” sayfası 20. satırdaki E, H, I ve J hücrelerinin verileri
    buraya aktarılacak. Aktarılan her veri “Veri” sayfasında
    K sütununda “ok” ile işaretlenecek.

    eğer ilgili hücreler dolu ise eşleşme aramaya devam edecek.

    Bu bilgiler ışığında.
    Fikir düşünce ve yardımlarınızı bekliyorum.

    İyi çalışmalar.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


9 + 7 =