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

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,623
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
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
 
Katılım
25 Mart 2017
Mesajlar
177
Excel Vers. ve Dili
2013
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
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,623
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
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
 
Katılım
25 Mart 2017
Mesajlar
177
Excel Vers. ve Dili
2013
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?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,334
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
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...
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,623
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
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.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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:
Katılım
25 Mart 2017
Mesajlar
177
Excel Vers. ve Dili
2013
merhabalar Yardımcı olabilecek var mıdır?
 
Son düzenleme:
Üst