Kapalı Çalışma Kitabındaki Çalışma Sayfalarını ComboBoxa getirip açmak.

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
883
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Kapalı Çalışma Kitabındaki Çalışma Sayfalarını ComboBoxa getirip açmak.

Uzunca bir başlık oldu ama maruzatı ifade açısından önemli olsa gerek.Efendim herkese öncelikle iyi akşamlar.Niyetim oluppta yapamadığım şu:Ana bir çalışma kitabı üzerinde çalışan bir userformum var ben bunun üzerine ekledğim bir combobox aracılığı ile c:\aylık çalışmalar\aile\017a.xls çalışma kitabındaki tüm çalışma sayfalarını listelemek istiyorum.Doğal olarak sayfa seçildiğinde o çalışma sayfasının açılmasını istiyorum.Umarım anlatabildim.
 
Son düzenleme:

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
883
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Yanıt gelmeyince konu başlığını değişeyim dedim.Dünden beri forumu tarıyorum ama konuya ilişkin bir örnek bulamadım.Umarım yardımcı olacak bir arkadaş çıkar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ekli dosyayı inceleyin.
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
883
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Sayın leventm her zamanki gibi ilginize teşekkürler.Ancak olmuyor şöyle ki sayfadaki butona tıkladığımda hata verip direk çalışma kitabını açıyor.oysa istediğim bu değildi .Ben UserFormun görüntiilenmesini ,userform üzerindeki comboboxta çalışma kitabındaki sayfaların listelenmesini istiyorum.Buradan yani comboboxtan setiğim sayfanın da açılmasını istiyordum.teşekkürler.
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
883
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Yok mu arkadaşlar bu soruna bir yanıt.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sayın leventm her zamanki gibi ilginize teşekkürler.Ancak olmuyor şöyle ki sayfadaki butona tıkladığımda hata verip direk çalışma kitabını açıyor.oysa istediğim bu değildi .Ben UserFormun görüntiilenmesini ,userform üzerindeki comboboxta çalışma kitabındaki sayfaların listelenmesini istiyorum.Buradan yani comboboxtan setiğim sayfanın da açılmasını istiyordum.teşekkürler.
Zaten yukarıdaki eklediğim dosya bu işlemi yapıyor. Dosya içindeki notlarıda dikkate alınız. Sadece butona userformu açan kodu bağlamayı atlamışım, onuda düzelterek eki yeniledim. Tekrar inceleyin.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Dosyayı açmadan da tablo isimleri listelenebilir.

Kod:
Sub Tablolar()
Dim cat As Object, t As Object, i As Integer

Set cn = CreateObject("ADODB.Connection")
Set cat = CreateObject("ADOX.Catalog")

cn.Open _
"Driver={Microsoft Excel Driver (*.xls)};Dbq=" & ThisWorkbook.Path & "\aaa.xls;"
cat.ActiveConnection = cn
    
    For Each t In cat.Tables
        i = i + 1
        Cells(i, 1) = Left$(t.Name, Len(t.Name) - 1)
    Next

Set t = Nothing
Set cat = Nothing

End Sub
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
883
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Arkadaşlar ilginize teşekkürler ancakişin içinden çıkamadığım için çalışmamın ana çalışma kitabını gönderiyorum.Yapmak istediğimi anlatmaya çalıştım .İlglenecek olanlara şimdiden teşekkürler.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyayı açmadan da tablo isimleri listelenebilir.

Kod:
Sub Tablolar()
Dim cat As Object, t As Object, i As Integer

Set cn = CreateObject("ADODB.Connection")
Set cat = CreateObject("ADOX.Catalog")

cn.Open _
"Driver={Microsoft Excel Driver (*.xls)};Dbq=" & ThisWorkbook.Path & "\aaa.xls;"
cat.ActiveConnection = cn
    
    For Each t In cat.Tables
        i = i + 1
        Cells(i, 1) = Left$(t.Name, Len(t.Name) - 1)
    Next

Set t = Nothing
Set cat = Nothing

End Sub
Bu durumda sayfada ad ile tanımlanmış alan ismi ve belirlenmiş yazdırma alanlarıda sayfa ismi olarak listeleniyor.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba,
Sayfa isimlerinin sağdan 1. karakteri "$" işretidir. Buna göre sınama yapılabilir.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Sayın anemos.Tamamdır O zaman olur.
Teşekkür ederim.
Excel gerçek anlamda veritabanı olsaydı "If t.Type = "TABLE" Then" şeklinde sistem tabloları dışındaki (kullanıcı tabloları) listelemek mümkündü.

Excelde durum farklı olduğundan bu şekilde kullanmak daha uygun olur Evren Bey.

Kod:
Sub Tablolar()
Dim cat As Object, t As Object, i As Integer

Set cn = CreateObject("ADODB.Connection")
Set cat = CreateObject("ADOX.Catalog")

cn.Open _
"Driver={Microsoft Excel Driver (*.xls)};Dbq=c:\a.xls;"
cat.ActiveConnection = cn

' If t.Type = "TABLE" Then alan isimlerini döndürür.

    For Each t In cat.Tables
        If t.Type = "SYSTEM TABLE" Then
            i = i + 1
            Cells(i, 1) = Left$(t.Name, Len(t.Name) - 1)
        End If
    Next

Set t = Nothing
Set cat = Nothing

End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın anemos teşekkür ederim.
Ben sonundaki "$" işaretini sorgulayıp listeleme yapabilmiştim.
Bu şimdi dağada iyi oldu.:)
 
Katılım
12 Ocak 2008
Mesajlar
11
Excel Vers. ve Dili
office xp
Sayın Evren Gizlen ve ustalarım ekte bulunan dosyayı inceleyerek bana yardımcı olurmusunuz.
 
Üst