• DİKKAT

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

Userformda dosya bulma ve açma

  • Konbuyu başlatan Konbuyu başlatan algil
  • Başlangıç tarihi Başlangıç tarihi
Katılım
28 Nisan 2005
Mesajlar
252
Excel Vers. ve Dili
Excel 2010 Türkçe
Merhaba

Benim isteğim C:\Data klasöründe olan dosyaların alfabetik sırayla ListBox'a yazılması ve Listbox'taki dosyalardan herhangi birini çift tıkladığım zaman TextBox'a yazması.

Birde eğer mümkünse textBox'a dosya ismi yazmaya başladığımda otomatik olarak listBox'ı yenilemesi.
Daha açıklayıcı olması için yapmak istediğim ekteki dosyadadır.
 
Dosya isimlerini listboxa almak için aşağıdaki kodu deneyin.

[vb:1:37164a3071]Private Sub CommandButton1_Click()
For Each dosya In CreateObject("Scripting.FileSystemObject").GetFolder("C:\data").Files
c = c + 1
Cells(c, 1) = dosya.Name
Next
Range("A1:A" & [a65536].End(xlUp).Row).Sort Key1:=[a1]
ListBox1.RowSource = "sayfa1!a1:a" & [a65536].End(xlUp).Row
End Sub[/vb:1:37164a3071]

listboxtaki seçilen dosyanın textboxa yazılması içinde listboxa aşağıdaki kodu yazın.

[vb:1:37164a3071]Private Sub ListBox1_Click()
TextBox1 = ListBox1.Value
End Sub[/vb:1:37164a3071]

son sorunuzdan neyi kasdettiğinizi anlayamadım.
 
Merhaba leventm
Yukardaki kodları çalıştırdım ama ikinci istediğim özellik
eğer mümkünse textBox'a dosya ismi yazmaya başladığımda otomatik olarak listBox'ı yenilemesi.
olayını yapabilirmiyiz.
Ben excelin yardım menüsünden aşağıdaki kodu kullandım ama bu dosya ismini full olarak (path'i ile birlikte) A sütununa yazıyor. Ben bunun sadece dosya ismini yazacak hale çeviremedim. Yardımcı olurmusunuz?
Kod:
Sub ara()
Set fs = Application.FileSearch
With fs
    .LookIn = "C:\DATA"
    .SearchSubFolders = True
    .FileType = msoFileTypeExcelWorkbooks
    .Filename = "9052*"
    If .Execute() > 0 Then
        MsgBox "There were " & .FoundFiles.Count & _
         " file(s) found."
        For i = 1 To .FoundFiles.Count
            Cells(i, 1) = .FoundFiles(i)
        Next i
    Else
        MsgBox "There were no files found."
    End If
End With
End Sub
 
Bu benim bilgi sahibi olduğu bir kod yapısı değil ama aşağıdaki gibi deneyin. muhtemelen çok daha pratik bir çözümüde vardır.

[vb:1:e6750a4f4b]Sub ara()
Set fs = Application.FileSearch
With fs
.LookIn = "C:\DATA"
.SearchSubFolders = True
.FileType = msoFileTypeExcelWorkbooks
.Filename = "9052*"
If .Execute() > 0 Then
MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
For i = 1 To .FoundFiles.Count
Cells(i, 1) = Mid(.FoundFiles(i),9, Len(.FoundFiles(i)))
Next i
Else
MsgBox "There were no files found."
End If
End With
End Sub
[/vb:1:e6750a4f4b]
 
teşekkürler leventm
birazcık yavaş çalışıyor ama iyi oldu. :icelim:
 
Geri
Üst