• DİKKAT

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

Kapalı dosyadan listboxa veri almak

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Merhaba değerli arkadaşlar.

Veri adlı dosyada sayfa 1 de a stünunda klasör altındaki dosyaların (a1,a2,,, gibi) adları var.

Userform açıldığında listbox1'e bu klasör altındaki dosyaların adları gelmektedir. İlgili dosya adını listboxda seçip butona tıkladığımda Listbox2'ye kapalı dosyanın sayfa1'deki a stünunda yazan verileri listbox2 de gösterecek.

Bu konu hakkında yardım edebilir misiniz?
 

Ekli dosyalar

Aşağıdaki kodları ilgili yerlerine yazıp bir deneyiniz;

Module kodları;
Kod:
Sub Auto_Open()
    Dim evn As Object, Dosya As Object
    Dim i As Integer
    Set evn = CreateObject("Scripting.FileSystemObject")
    Range("A3:A50").ClearContents
        For Each Dosya In evn.GetFolder(ThisWorkbook.Path).Files
            If Left(Dosya.Name, 4) <> "veri" Then
                Range("A65536").End(3)(2, 1) = Dosya.Name
            End If
        Next Dosya
    i = Empty: Set Dosya = Nothing: Set evn = Nothing
End Sub
UserForm kodları;
Kod:
Private Sub CommandButton1_Click()
    Dim con As Object, rs As Object
    Dim sorgu As String, dosya As String
    Set con = CreateObject("adodb.connection")
    Set rs = CreateObject("adodb.recordSet")
        Range("B2:B500").ClearContents: ListBox2.Clear
        dosya = ListBox1.Value
        con.Open "Provider=Microsoft.ace.oledb.12.0;Data Source=" & _
        ThisWorkbook.Path & "\" & dosya & ";Extended Properties=""Excel 12.0;hdr=no"""
        sorgu = "Select F1 FROM [Sayfa1$]"
        rs.Open sorgu, con, 1, 1
        Do Until rs.EOF
            ListBox2.AddItem rs(0)
            rs.MoveNext
        Loop
    rs.Close: con.Close
    Set con = Nothing: Set rs = Nothing: dosya = vbNullString
End Sub

Private Sub UserForm_Initialize()
    ListBox1.RowSource = "Sayfa1!A3:A" & Sheets("Sayfa1").[A65536].End(3).Row
End Sub
 
merhaba arkadaşlar deneme ile buldum kod aşağıda ki gibi

Kod:
Workbooks.Open "\\cirmen\DATA\Bilgi\Bolumler\Arge\Ortak\ibrahim\TEMİZLİK VALİDASYONU\02-KONTEYNIR(600L).xlsx"
With Workbooks("02-KONTEYNIR(600L).xlsx")

ListBox3.RowSource = "Revizyon_Son!b9:h10" & Sheets("Revizyon_Son").[a65536].End(3).Row

yanlız şöyle bir sorunum var

kapalı dosyayı açarken kapalı dosyanın adı : 02-KONTEYNIR(600L).xlsx dir
bu adı kod içine direk yazdığımda kodlar sorunsuz çalışıyor. Ancak bana lazım olan bu adı ben bir textboxdan aldırım dosyayı açarken textboxdan almasını istiyorum. aşağıdaki gibi denedim ama dosya bulunamıyor diyor

Kod:
Workbooks.Open "\\cirmen\DATA\Bilgi\Bolumler\Arge\Ortak\ibrahim\TEMİZLİK VALİDASYONU\" & textbox37.value & "xlsx"
With Workbooks(textbox37.value & "xlsx")


bu şekilde dosyanın adını textboxdan alıp açabilmesi için ne yapmalıyım. Dosyanın adını direk kod içine yazdığımda sorun yok, ama aynı dosyayı textboxdan aldırıp açtırmaya çalıştığımda ise dosyayı bulamıyor.
 
Murat hocam elinize sağlık teşekkür ederim.

Aynı anda yazdığımız için mesajınızı ben de yazdıktan sonra gördüm.

Sizin kodlarınız çok profosyonel. Yukarıda benim acemi bir kod şeklinde yazdığım kapalı dosyayı açtırıp veriyi gönderip kaydettirip kapattırıyorum. Bu benim yaptığım kodlarla bir sıkıntı yaşayabilir miyim?

2. cisi ise yukarıda ki bir sorum vardı dosyayı açtırırken textboxdan yazdırmaya çalışıyorum bunu nasıl yapabilirim.

İnşallah fazla yormuyorumdur.

Hakkınızı helal edin.
 
Sorun değil...

İlk sorunuzun cevabını bilmiyorum, bakmak gerekir...

İkinsi sorunuz için ben size bir-iki soru sormak istiyorum: ListBox iptal mi oldu ? TextBox nereden çıktı ?
 
Murat hocam,

Listbox iptal olmadı,

listboxa kapalı dosyada ki verileri yazdığım kod ile aldırdım.
Ama aşağıda dosya yolunu belirttiğim şekilde kapalı dosyadan veri alıyorum.
Kod:
Workbooks.Open "\\cirmen\DATA\Bilgi\Bolumler\Arge\Ortak\ibrahim\TEMİZLİK VALİDASYONU\02-KONTEYNIR(600L).xlsx"
With Workbooks("02-KONTEYNIR(600L).xlsx")

ama burada en son yazan yani "02-KONTEYNIR(600L).xlsx" açtırmak istediğim kapalı dosyam bu veri değişebiliyor. Bu yüzden listboxdaki kapalı dosya adlarına tıklayıp o kapalı dosya adını bir textboxa aldırıyorum.

ve bu dosyayıda yukarıdaki dosya yoluna belirttip açtırmak istiyorum.

"\\cirmen\DATA\Bilgi\Bolumler\Arge\Ortak\ibrahim\TEMİZLİK VALİDASYONU
buraya kadar olan sabit dosya yoludur. TEMİZLİK VALİDASYONU adlı klasörün altında excel dosyalarım var bu dosyalarda listboxa listeleniyor. Listboxa gelen dosya adlarını textboxa aldırıp ordan dosya yoluna aşağıda ki gibi belirtmeye çalışıyorum

Kod:
Workbooks.Open "\\cirmen\DATA\Bilgi\Bolumler\Arge\Ortak\ibrahim\TEMİZLİK VALİDASYONU\"textbox37.value
With Workbooks(textbox37.value)

işte bu şekilde belirtincede dosyayı bulamıyor.

inşallah anlatabilmişimdir hocam. İlgilendiğiniz için teşekkürler.
 
İnanın net bir şey anlamadım. Mesajınız kafamı karıştıyor...

Bu ne demek ?
ama burada en son yazan yani "02-KONTEYNIR(600L).xlsx" açtırmak istediğim kapalı dosyam bu veri değişebiliyor.

Neyse...

Sizn yapmak istediğiniz olay: ListBox'ta seçilen dosyayı açtırmak mı ?
 
Hocam tamam çözdüm.

Dosya yolunu belirtirken bir kalsörün ismini yanlış yazmışım. :)

Yukarıda belirttiğim kodu aşağıda ki gibi yazınca düzeldi.

Kod:
yol = TextBox37
Workbooks.Open "\\cirmen\DATA\Bilgi\Bolumler\Arge\Ortak\ibrahim\TEMİZLİK_VALİDASYONU\" & yol & ".xlsx"
With Workbooks(yol & ".xlsx")

İlginiz ve vakit ayırdığınız için teşekkürler.
 
Yapmak istediğinizi net anlatırsanız: sorunu daha kısa sürede çözebiliriz.. :)

Dilerseniz şöyle yapın: aşağıdaki kodları UserForm kodlarının en üstüne yazın...
Kod:
Private Const yol As String = "\\cirmen\DATA\Bilgi\Bolumler\Arge\Ortak\ibrahim\TEMİZLİK VALİDASYONU"

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Workbooks.Open yol & "\" & ListBox1.Value
End Sub
Şimdi ListBox'taki dosya isimlerine çift tıklarsanız, tıkladığınız dosya açılacaktır...
 
Haklısınız.

Daha kısa ve net çözüm tekrar çok teşekkürler. Hakınızı helal edin.
 
Helâl olsun... ne demek ! :)

İyi günler...
 
Geri
Üst