Kapalı Dosyaya Sayfa Adına Bakarak Veri İşlemek

Katılım
3 Ocak 2006
Mesajlar
11
Merhaba,

Forumdaki örnekleri inceledim fakat merakımı giderecek bir örneğe rastlayamadım. kapalı bir dosyaya veri işlerken genelde şu kodlar kullanılıyor:

StockDB = "C:\...\abc.xls"
Set NewXL = New Excel.Application
NewXL.Workbooks.Open StockDB


NewXL.Workbooks(Dir(StockDB)).Sheets(1).[b65536].End(3).Offset(1, 0).Value = Now()

Fakat bu durumda çalışma sayfasının sırası değiştirilmemelidir.


Çalışma kitabındaki sayfa ismi örneğin "Tarih" ise şöyle de yazabiliriz:

NewXL.Workbooks(Dir(StockDB)).Sheets("Tarih").[b65536].End(3).Offset(1, 0).Value = Now()

Fakat bu durumda da çalışma sayfasının isminin değiştirilmemesi gerekir.

Sormak istediğim burada çalışma sayfasının "Properties" seçeneklerindeki "Name" özelliğine atadığımız ismi kullanabilir miyiz?(bkz.Resim1) Böylece kullanıcı sayfaların sırasını ya da issimlerini değiştirse bile kodlarımız düzgün çalışacaktır. Ben bir kaç deneme yaptım fakat olumlu bir sonuç alamadım. Eğer bu konuda bilgisi olan arkadaşlar varsa ve paylaşırlarsa sevinirim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,606
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

İstediğiniz işlem bana pek mantıklı gelmedi.

Şöyleki;

Kapalı dosyaya veri işlerken ya sayfanın index numarasını yada adını kullanabiliyoruz.

Siz demişsinizki "Properties" seçeneklerindeki "Name" özelliğine atadığımız ismi kullanabilir miyiz?

Peki kapalı dosyadaki hangi sayfanın bu özelliğinin alınacağını nasıl belirleyeceğiz?

Sonuç itibari ile bu işlem içinde sayfa index numarasını yada adını belirtmemiz gerekiyor. Bu durumda tekrar başa dönmüş oluyoruz. Zaten ben sayfanın index numarasını yada adını biliyorsam koda direk bunu yazarak sorunu çözmüş olurum.

Umarım açıklayıcı olmuştur.
 
Katılım
3 Ocak 2006
Mesajlar
11
Kapalı Dosyaya Sayfa Adına Bakarak Veri İşlemek (Name özelliğini kullanabilmek)

Sn. Korhan Bey,

Öncelikle yanıtınız için teşekkürler. Gayet açıklayıcı.

"Peki kapalı dosyadaki hangi sayfanın bu özelliğinin alınacağını nasıl belirleyeceğiz?" demişsiniz. Ben de bunu anlamak istemiştim. Örneğin:

NewXL.Workbooks(Dir(StockDB)).Sheets("Tarih").[b65536].End(3).Offset(1, 0).Value = Now()

yazarak abc.xls çalışma kitabının, "Tarih" isimli çalışma sayfasına veri işliyoruz.
Burada "Sheets("Tarih")" bizim Tarih isimli sayfaya ulaşmamızı sağlıyor. Şimdi, aynı sayfanın "Tarih" isimli çalışma kitabının Name property'sini "Genel" diye isimlendirsek ve "varsayalım" buna şöyle ulaşabilsek:

NewXL.Workbooks(Dir(StockDB)).Sheets.Name("Genel").[b65536].End(3).Offset(1, 0).Value = Now()

artık bir kullanıcı -sayfayı silmediği sürece- o sayfanın adını değiştirse ya da yanlışlıkla 1. sıradan 5. sıraya taşısa bile bu bizi bağlamayacaktır. Ya da bir başka deyişle bu, kullanıcıya esneklik sağlayacaktır.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,606
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sizin asıl amacınız bilgi girişi yapmak istediğiniz sayfanın kapalı dosyada olup olmadığını sorgulamak mı? Eğer cevabınız evet ise döngü ile bu işlemi yapabilirsiniz. Eğer sayfa yoksa işlem bitirilebilir yada istediğiniz isimde sayfa eklenerek bilgi girişi tamamlanabilir.
 
Üst