• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Klasördeki Xlsx Dosyaları Listeleme

Katılım
15 Haziran 2021
Mesajlar
147
Excel Vers. ve Dili
Office 2016
Merhaba arkadaşlar

Bir excel kitabında bir makro ile kitabın bulunduğu klasörde kendisinden hariç olan tüm xlsx dosyalarının adlarını a2 hücresinden başlayıp aşağı doğru sıralamak istiyorum böyle bir şey mümkün müdür?
 
Aslında aramıştım zaten forumda konular çok eski bağlantıların çoğu kırılmış. Siz paylaşınca tekrar baktım aradığım sonuç yok.
 
Merhaba

Şöyle bir kod ile istediğim işlemi yaptırdım. Ama XLS dosyalarını buluyor.

Kod:
Sub listele()
Dim evn As Object
Set evn = CreateObject("scripting.filesystemobject")
Set klasor = evn.getfolder(ThisWorkbook.Path & "\deneme\")
sonsat = Sayfa1.Range("A" & Rows.Count).End(xlUp).Row + 1
For Each dosyalar In klasor.Files
If VBA.Right(dosyalar.Name, 3) = "xls" Then
Sayfa1.Range("A" & sonsat) = (dosyalar.Name)
sonsat = sonsat + 1
End If
Next
End Sub


If VBA.Right(dosyalar.Name, 3) = "xls" Then

Bu satırı xlsx olarak değiştiriyorum sonuç vermiyor.

Neden yapıyor bunu=
 
Merhaba,

C++:
If LCase(dosyalar.Name) Like "*.xl??" Then
 
Son düzenleme:
Hangisi kullanmak istiyorsanız, sadece ilgili satırdaki tek tırnağı kaldırın. Diğer seçimlere tek tırnak ekleyin.
Burada yapılan işlem, dosyanın uzantısını almak ve buna göre gerekli koşulu kontrol etmek.

C#:
Sub listele()
Dim evn As Object
Set evn = CreateObject("scripting.filesystemobject")
Set klasor = evn.getfolder(ThisWorkbook.Path & "\deneme\")
sonsat = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row + 1
For Each dosyalar In klasor.Files

'Sadece XLSX leri almak için
If UCase(Right(dosyalar.Name, Len(dosyalar.Name) - InStrRev(dosyalar.Name, "."))) = "XLSX" Then

'Sadece XLS leri almak için
'If UCase(Right(dosyalar.Name, Len(dosyalar.Name) - InStrRev(dosyalar.Name, "."))) = "XLS" Then

'XLS*   uzantısı XLS ile başlayan dosyaları almak için
'If InStr(UCase(Right(dosyalar.Name, Len(dosyalar.Name) - InStrRev(dosyalar.Name, "."))), "XLS") > 0 Then


Sheets(1).Range("A" & sonsat) = (dosyalar.Name)
sonsat = sonsat + 1
End If
Next
End Sub
 
...
If VBA.Right(dosyalar.Name, 3) = "xls" Then

Bu satırı xlsx olarak değiştiriyorum sonuç vermiyor.

Neden yapıyor bunu?

Merhaba, kırmızı olan yerde; dosya adının sağ tarafından 3 karakter xls ise diyor yani burayı
4 yapıp xlsx yaparsanız dosyalarınızı bulacaktır.

iyi çalışmalar.
 
Geri
Üst