Klasördeki Dosya İsimlerinden Liste Yapma

Katılım
29 Haziran 2018
Mesajlar
297
Excel Vers. ve Dili
2016 TÜRKÇE
Arkadaşlar Merhaba

Kitaplardan oluşan bir klasör düşünelim. Bu klasörde internetten aldığım veya taradığım çeşitli formatta (epub-lit-pdf-doc vb.) kitaplardan oluşan dosyalarım var. Yapmak istediğim bu kitapların bir listesini oluşturmak. Daha sonra bu listeden dosyalara linkler oluşturulup tek listeden tüm kitaplara kolayca ulaşmak.
Mesela Ana klasörümüz E KİTAPLAR olsa. Bunun DİNİ TARİH ANSİKLOPEDİ ROMAN BİLGİSAYAR vb. Alt klasörleri olsa ve bunların içinde yüzlerce kitap olsa bunların isimlerini Mesela Kitaplık Listesi gibi bir excel dosyasına veya word dosyasına listelemek mümkün mü? Kitaplarımın isimleri ile dosya isimleri aynı.
Böyle bir çalışması olup paylaşan veya İlgilenecek arkadaşlara şimdiden teşekkürler.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,602
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaş,
Aradığınız bu mu?
İyi çalışmalar
 

Ekli dosyalar

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

Aşağıdaki kodu hangi sayfa içerisine veriler aktarmak istiyorsan vba düzenekte oraya yapıştır. istersen sayfa içerisine bir buton veya vba düzeneğinde f9 la kodu çalıştırınca önce sana hangi satırdan itibaren sıralamayı başlatacağına dair hücre seçimi gösterecektir. A1 i seçersin ve tamam diyince hangi klasör altında dosyaların isimlerini sıralamasını istiyorsan o dosyayı seçip tamam dedikten sonra aşağıdaki kodda belirlediğin dosya uzantılarını dosyaların isimleri ile birlikte alt alta sıralayacaktır.

Dosya uzantılarını pc üstündeki kitaplara göre ben pdf,PDF,epub,EPUB,doc,DOC,docx,DOCX (büyük küçük algılaması yapıyor o yüzden uzantıların hem büyük hemde küçük hallerini yazdım) Eğer sen farklı dosya uzantıların varsa kodda ****** arasına aldığım satırda gerekli değişiklikleri yapar yada + kod ekleyerek devam edebilirsin.


Kod:
Sub FileNametoExcel()
'UpdatebyExtendoffice201709027
    Dim I As Long
    Dim xRg As Range
    Dim xAddress As String
    Dim xFileName As String
    Dim xFileDlg As FileDialog
    Dim xFileDlgItem As Variant
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Select a cell to place name list:", "Excel.web.tr", xAddress, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xRg = xRg(1)
    xRg.Value = "Dosya Adı"
    With xRg.Font
    .Name = "Arial"
    .FontStyle = "Bold"
    .Size = 10
    End With
    xRg.EntireColumn.AutoFit
    Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
    I = 1
    If xFileDlg.Show = -1 Then
        xFileDlgItem = xFileDlg.SelectedItems.Item(1)
        xFileName = Dir(xFileDlgItem & "\")
        Do While xFileName <> ""
        '***************************************************************************************************************************************************************************************
        '******bu satırda dosya uzantılarını kendin belirleyebilirsin. + InStr(1, xFileName, ".xxx" şeklinde dosya adı uzantısı ekleyerek çekmek istediğin uzantıları çekebilirsin.*****
            If InStr(1, xFileName, ".pdf") + InStr(1, xFileName, ".PDF") + InStr(1, xFileName, ".docx") + InStr(1, xFileName, ".DOCX") + InStr(1, xFileName, ".doc") + InStr(1, xFileName, ".DOC") + InStr(1, xFileName, ".epub") + InStr(1, xFileName, ".EPUB") > 0 Then
        '***************************************************************************************************************************************************************************************
                xRg.Offset(I).Value = xFileName
                I = I + 1
            End If
            xFileName = Dir
        Loop
    End If
    Worksheets("Sheet1").Columns("A").AutoFit

    Application.ScreenUpdating = True
End Sub
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,293
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Yukarıda 2 ve 3 No'lu mesajlardaki kodlar, sadece seçilen bir klasörün içindeki dosyaları listeler.

Ancak 1 No'lu mesajdaki soruda, söz konusu bir klasörün içinde muhtelif adetteki tüm alt klasörlerin içindeki dosyaların listelenmesi ve link oluşturularak, tıklayınca seçilen dosyanın açılması istenmektedir.

Ekte bu amaca yönelik olarak hazırlanan dosya verilmiş olup, koddaki "C:\TestFolder" yerine, bilgisayarınızdaki hedef klasörün yazılması gerekmektedir.

Not: Ek dosya için 13 No'lu mesaja bakın.....
.
 
Son düzenleme:

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,602
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Çok teşekkürler Haluk hocam,
Saygılarımla
 
Katılım
10 Mart 2013
Mesajlar
187
Excel Vers. ve Dili
2016 - İngilizce
Altın Üyelik Bitiş Tarihi
29.05.2018
Merhaba,

Dosya isimlerini aşağıdaki kod ile çekiyorum.

Kod:
Sub Dosya_İsimleri()
Dim ds, dc, f, s
Set ds = CreateObject("Scripting.FileSystemObject")
Set f = ds.GetFolder("C:\Users\RIDVAN\Desktop\RIDVAN")
Set dc = f.Files
For Each Dosya In dc
c = c + 1
Cells(c, 1) = Dosya.Name
Next
End Sub
 
Katılım
29 Haziran 2018
Mesajlar
297
Excel Vers. ve Dili
2016 TÜRKÇE
Arkadaşlar Merhaba. Sayın Üstadlarım İlgi ve alakanıza sonsuz teşekkürler.
Tevfik Kurşun ve Haluk Hocam. Sizlerin isabetli ve çözümleyici cevaplarınızı daima gözlemliyorum. Buradaki dosyalarda da güzel çözümler ürettiğinize inanıyorum. Ancak henüz altın üye olmadığım için dosyalarınıza ulaşamıyorum. Harici bir yerden paylaşırsanız istifade eder minnettar kalırım.
Sayın u.L.a.s ve ridvanucok Üstadlar Verdiğiniz kodlarla dosyamı hazırlamaya çalışacağım. Çok Teşekkürler.
 
Katılım
29 Haziran 2018
Mesajlar
297
Excel Vers. ve Dili
2016 TÜRKÇE
Merhaba Tevfik Hocam. Paylaşım için teşekkür ediyorum. İhtiyacım halinde mutlaka yardımlarınızı isteyeceğim. Saygılar.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,602
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Rica ederim, dönüş yaptığınız için ben teşekkür ederim
Kolay gelsin
 
Katılım
29 Haziran 2018
Mesajlar
297
Excel Vers. ve Dili
2016 TÜRKÇE
Üstadlarım Merhaba. Tevfik Kurşun üstadın paylaştığı dosyalardan "Klasordeki_Dosyalar2.xlsm" isimli dosyayı kendime göre uyarlayıp çalıştırdım. Yanılmıyorsam Haluk Üstadın hazırladığı bu dosya gayet güzel çalışıyor. Ancak;

1- Kodu çalıştırdığım zaman bütün dosya ve klasörleri ayrım yapmadan listeliyor. Oysa alt klasörlerde yapmış olduğum kitap tasnifleri boşa gidiyor. Örneğin DİNİ KİTAPLAR klasörünün içinde: AHİRET AKAİD FIKIH MEZHEPLER FELSEFE HADİS vb. klasörler ve bunlarla ilgili kitaplar var. Örneğin bu DİNİ KİTAPLAR klaörünü listelerken Klasör adını başlık yapsa, AHİRET ismini Alt başlık yapıp içindekileri o alt başlığın altına alfabetik sıralasa;

veya EKİTAPLAR klasörü içindeki klasör adlarına göre sayfalar açıp Örneğin DİNİ KİTAPLAR diye bir sayfa açıp alt klasörleri başlık yapıp sıralatmak mümkün mü?

2- Bazı kitapları alırken internet sayfası olarak aldığımdan bir klasör ve o klasöre bağlı html uzantılı bir dosya (Klasörle aynı ismi taşıyan, öyle ki kopyalarken veya silerken birini silince bağlı klasör de siliniyor) olarak kaydetmişim. Listelemede bu klasörlerin içindeki örneğin her bir resmi bir kitap olarak listeliyor. bunu önlemek için örneğin Sayın u.L.a.s ın kodlarındaki

If InStr(1, xFileName, ".pdf") + InStr(1, xFileName, ".PDF") + InStr(1, xFileName, ".docx") + InStr(1, xFileName, ".DOCX") + InStr(1, xFileName, ".doc") + InStr(1, xFileName, ".DOC") + InStr(1, xFileName, ".epub") + InStr(1, xFileName, ".EPUB") > 0 Then

gibi bir satır eklene bilir mi?

3- Taranacak ana klasör seçilirken kod içine yazmak yerine Sayın u.L.a.s nin kodlarında olduğu gibi seçilse daha kullanışlı olurdu kanaatindeyim. Aynı bilgisayarda bile başka bir klasör taratmaya kalksak yolu yeniden yazmak gerekecektir. Veya bir arkadaş bu dosyadan faydalanmak istese o kodları değiştirip kendine uyarlamadan kullanamaz. Onun için Dosyaları listele deyince açılan pencereden seçim yapmak daha kullanışlı olur diye düşünüyorum.

4- Kitapları A sütununda değil de B sütununda yapsa A sütununa sıra numaraları koysa, olabilir mi acaba? (Böylece hangi başlıkta ne kadar kitap olduğu anlaşılır). Teşekkürler.
 
Son düzenleme:

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,602
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Vurkan Arkadaşım,
Söylediğiniz dosya Haluk hocanın dosyası. Bana laf söylemek düşmez ama, kütüphane her an değişmez, bir sefer tam hazırlarsınız sonradan eklemeleri basit biçimde yapabilirsiniz. Zaten linkler, dosya nerede olursa olsun çalışıyor. Ayrıca ilk 8 - 10 sütunu boş bırakın, o sütunlarda siz planlamanızı yapın, başlıkları ayarlayın, belki numara verin (numara otomatik de verilebilir), vs ...
Bunları yaptığınızda 1. madde çözülmüş olur. 3. ve 4. maddeleri siz kolaylıkla uyarlayabilirsiniz bence, sanırım makrolara bakmamışsınız.
2. maddeye arkadaşlar bir çözüm bulurlar sanırım.
Ben şimdi 2 günlüğüne yola çıkıyorum. Uygun olduğumda yine bakarım.
İyi çalışmalar
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,293
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@vurkan;

Sizin 1. mesajınızda fazla bir detay yoktu.

Hazırladığım dosyada; kodda belirtilen bir klasör içindeki ve içindeki tüm alt klasörlerin içindeki dosyalar listeleniyor, link veriliyor. Ayrıca, bu mesaj ekindeki dosyada alt klasörlerin adı kırmızı renkle başlık olarak belirtilmektedir.

Başka bir bilgisayarda kullanılsa, bahsettiğiniz gibi "kodları değiştirip uyarlamak..." ifadesi de çok abartılı olmuş. Yukarıda 4 No'lu mesajımda belirttiğim gibi; koddaki "C:\TestFolder" yerine, bilgisayarınızdaki hedef klasörün yazılması yeterlidir.

Burada önemli olan; klasör ve içindeki alt klasörlerin içindeki dosyaların listelenmesini sağlamaktır.

Sonrasında, istenilen her türlü düzenlemeyi kendinize göre geliştirebilir, forumdan yardım alabilir veya ücreti karşılığında düzenlenmesini isterseniz özel mesajla bana ulaşabilirsiniz.

.
 

Ekli dosyalar

Son düzenleme:

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,602
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Günaydın Haluk Hocam,
Şimdi daha bir gösterişli olmuş. Elinize sağlık.
Aklıma geleni sorsam çok mu ayıp etmiş olurum. İç içe de klasörler olabilir.
Saygılarımla
 

Ekli dosyalar

Katılım
29 Haziran 2018
Mesajlar
297
Excel Vers. ve Dili
2016 TÜRKÇE
Sayın Üstadlarım. Maksadını aşan bir ifadem olmuşsa özür dilerim. Kodlar hakkında fazlaca bir bilgim olmadığı için bunları yazmıştım. Haluk Hocam bu son dosyalarınızı harici bir linkten paylaşırsanız sevinirim. Saygılar.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,293
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bence Altın Üye olun. Daha rahat edersiniz, forumda binlerce dosya var ...

.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,521
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Haluk Bey;

13. iletiye eklediğiniz dosya, hepimizin yararlanacağı önemli bir paylaşımdır. Emekleriniz için teşekkür ederim.

Haluk bey, "C:\TestFolder" klasörü içindeki dosyaları "Sayfa1"; harici disk "F:\TestFolder" klasörü içindeki klasör ve dosyaları "Sayfa2" de listeleyebilmek için koda nasıl bir ekleme yapmak gerekiyor?

Yardımınızı rica edebilir miyim?

Sevgi ve saygılar.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,521
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,293
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Bu tür dosyalarda herkesin farklı farklı istekleri olabilir (11, 14 ve 17. mesajlarda olduğu gibi).

Ama bütün bunları karşılamam beklenmemeli.

.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,521
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Çok haklısınız. Emek ve paylaşımınız için bir kez daha teşekkür ederim.
 
Üst