• DİKKAT

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

Çalışma kitabındaki toplam sayfa sayını öğrenme

Halit bey,

Sayfa isminde tek tırnak olan isimler için replace metodunu koda eklemek gerekiyormuş.

Kod:
Sub sdds()

Set cat = CreateObject("ADOX.Catalog")
Set con = VBA.CreateObject("adodb.Connection")

yol = ThisWorkbook.FullName

con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
yol & ";extended properties=""Excel 12.0;hdr=yes"""

cat.ActiveConnection = con

For Each deg In cat.tables
a = deg.Name
If Replace(deg.Name, "'", "") Like "*" & "$" Then say = say + 1

Next deg

MsgBox say

End Sub
 
merhabalar,
çok teşekkür ederim cevaplarınız için.
bir sorum daha olacaktı.

aşağıdaki kod gizli sayfalardan da veri çekiyor.
gizli sayfalardan, kapalı dosya yöntemi ile veri çekmemenin bir yolu var mıdır?



sub kapali_dosya_veri_alma()
Dosya = Application.GetOpenFilename(FileFilter:="Microsoft Excel Workbooks, *.xml; *.xlsx", Title:="Open Workbook")

Set Katalog = CreateObject("ADOX.Catalog")
Set Tablo = CreateObject("ADOX.Table")
Katalog.ActiveConnection = "Provider=Microsoft.ace.OLEDB.12.0;Data Source=" & Dosya & ";Extended Properties=""Excel 12.0;HDR=Yes"""
dosyaad1 = Katalog.tables(0).Name 'Sayfa1'in adını bulma
Set Katalog = Nothing
Set Tablo = Nothing

With Sheets("aaaa")
Set Baglanti = CreateObject("ADODB.Connection")
Baglanti.Open "provider=microsoft.ace.oledb.12.0;data source=" & Dosya & ";extended properties=""excel 12.0;hdr=no"""
Set Rs = Baglanti.Execute("Select * from [" & dosyaad1 & "]")
Sheets("aaaa").Range("a" & son_0)(1, 1).CopyFromRecordset Rs
End With
Set Baglanti = Nothing
end sub
 
Merhaba,

Aşağıdaki kodu örnek olarak ekliyorum.
Bunu kendi çalışmanıza uyarlayabilirsiniz.
Bu kodu biraz değiştirerek toplam sayfa sayısını'da öğrenebilirsiniz.

Kod:
Sub Test()
    Dim file As String
    Dim sh
    Dim c
    file = "dosya yolu"
    Set sh = GetObject(file).Worksheets
   
    For Each c In sh
    MsgBox c.Visible
    Next

End Sub
 
merhaba Erdem Hocam

sanırım yanlış anlattım. Dış Excel dosyasında gizli sayfalar var. O gizli sayfalardan ado ile veri almasını istemiyorum. Gizli sayfalardan ado ile veri almadan sadece görünür sayfalardan veri almasını sağlayabilir miyiz?
 
ADO(X) ile çalışma sayfalarının gizli veya görünür olduğu tespit edilemez. Bunun için şu yollar izlenebilir:

- Dosya hızlıca açılarak görünür sayfa isimleri bir listeye alınabilir,

- Gizlenen sayfanın örneğin "Z1" hücresine bir işaret yazılarak ExecuteExcel4Macro metodu ile açılmadan gizli olup olmadığı öğrenilebilir. Elbette sayfa görünür yapıldığında da işaretin silinmesi gerekir ki, sayfanın görünür olduğu anlaşılsın,

- Biraz fantastik olacak ama dosya, bir zip library ile açılarak içindeki XML den sayfanın gizli olup olmadığı öğrenilebilir.

Kolay gelsin...
 
Eklediğim kod excel çalışma kitabının özelliklerini veriyor.
Kod'un başına eklemeniz ve for each döngüsüne almanız durumunda istediğiniz olur.
Örnek dosya eklemediğiniz için ben verdiğiniz koda uyarlamadım.
 
merhaba Erdem Hocam

sanırım yanlış anlattım. Dış Excel dosyasında gizli sayfalar var. O gizli sayfalardan ado ile veri almasını istemiyorum. Gizli sayfalardan ado ile veri almadan sadece görünür sayfalardan veri almasını sağlayabilir miyiz?

Esasında Erdem Beyin önermiş olduğu kodu ekli dosyadaki gibi kullanabilirsiniz, veya kendisinin belirttiği gibi bu kodu ADO'ya entegre edebilirsiniz.

Ekli dosyalardan Data.xlsx dosyasında 1 adet gizli sayfa var. Bu dosya kapalıyken, Test.xlsm dosyasındaki kodla, kapalı durumdaki Data.xlsx dosyasının gizli sayfa hariç, diğer 2 sayfanın A1 hücrelerindeki veriler alınmaktadır.

Kodu, kendi isteklerinizi karşılamak üzere geliştirebilirsiniz....


.
 

Ekli dosyalar

Son düzenleme:
merhabalar Yardımcı olabilecek var mıdır?
 
Son düzenleme:
Geri
Üst