Aktif Olmayan Sayfada Veri Aratıp Veri Çekme

Furkan TARAKÇI

Altın Üye
Katılım
15 Şubat 2022
Mesajlar
51
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2205 Derleme 16.0.15225.20172) 64 bit Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2027
Dim Ara1 As Range
Set Ara1 = Sheets("INFO").Cells.Find("BİM İsmi")

f1 = WorksheetFunction.CountIf(Sheets("INFO").Range(Cells(1, Ara1.Column), Cells(100, Ara1.Column)), "<>") - 1

'If f1 = 1 Then
'DetayBox1.AddItem Cells(Ara1.Row + 1, Ara1.Column)
'Else
'DetayBox1.List = Sheets("INFO").ListObjects("BİM").ListColumns(2).DataBodyRange.Value
'End If

Merhabalar,
INFO sayfası hariç başka bir sayfa aktif olunca olunca f1 satırında hata veriyor. Bu arada aslında ben Range(Cells(1, Ara1.Column), Cells(100, Ara1.Column)) ile aralık verdim ama aslında "Bim ismi" yazan hücrenin bulunduğu bütün sütunda boş olmayan hücreleri saydırmayı hedeflemiştim. Beceremediğimden dolayı 100 e kadar olacak şekilde yazdım. Birde öğrenmek için soruyorum find ile bulduğu değerin hücre satır ve sütün değerlerini ara1.row ara1.Column bulabiliyorum ama sütünün harf olarak değerini nasıl bulabilirim. Yardımcı olabilirseniz sevinirim.
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hata veren satır yerine aşağıdaki kodu yazıp deneyiniz.

C++:
With Sheets("INFO")
f1 = WorksheetFunction.CountIf(.Range(.Cells(1, Ara1.Column), .Cells(100, Ara1.Column)), "<>") - 1
End With
Sütun harfini almak içinse aşağıdaki kodu deneyiniz.

C++:
Sütun = Split(Ara1.Address, "$")(0)
 

Furkan TARAKÇI

Altın Üye
Katılım
15 Şubat 2022
Mesajlar
51
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2205 Derleme 16.0.15225.20172) 64 bit Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2027
Hata veren satır yerine aşağıdaki kodu yazıp deneyiniz.

C++:
With Sheets("INFO")
f1 = WorksheetFunction.CountIf(.Range(.Cells(1, Ara1.Column), .Cells(100, Ara1.Column)), "<>") - 1
End With
Sütun harfini almak içinse aşağıdaki kodu deneyiniz.

C++:
Sütun = Split(Ara1.Address, "$")(0)
Teşekkür ederim @Korhan Ayhan Bey, hata düzeldi fakat split komutunu anlayamadım açıkcası oda benden kaynaklanıyor. :)
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Mesela
Ara1=Range("A55") iken
Ara1.Address =$A$55
Split(Ara1.Address, "$")= {A ,55} sonucu döndürür
Dizinin ilk elemanı olan
Split(Ara1.Address, "$")(0)="A" yani sütun etiketini çevirir.
 

Furkan TARAKÇI

Altın Üye
Katılım
15 Şubat 2022
Mesajlar
51
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2205 Derleme 16.0.15225.20172) 64 bit Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2027
Mesela
Ara1=Range("A55") iken
Ara1.Address =$A$55
Split(Ara1.Address, "$")= {A ,55} sonucu döndürür
Dizinin ilk elemanı olan
Split(Ara1.Address, "$")(0)="A" yani sütun etiketini çevirir.
@ÖmerFaruk Bey, çok teşekkür ederim çok açıklayıcı oldu. Ben çıktıyı görebilmek adına msgbox Split(Ara1.Address, "$")(0) yazdım boş çıktı. msgbox Split(Ara1.Address, "$")(1) yapınca geldi. Yardımlarınız için Korhan Beye de size de çok teşekkürler.
 

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
Mesela
.......
...
Split(Ara1.Address, "$")= {A ,55} sonucu döndürür
Dizinin ilk elemanı olan
Split(Ara1.Address, "$")(0)="A" yani sütun etiketini çevirir.


$A$55 ifadesini göz önüne aldığımızda; geriye 3 elemanlı 0 (sıfır) tabanlı bir dizi döner, 1. eleman "NULL" yani boş olur. Çünkü; string ifadesinde 1. "$" karakterinden önce başka bir karakter yoktur.

{NULL,A,55}

Bu nedenle; Sütun harfi 0 (sıfır) tabanlı dizinin, 1 No'lu index'e sahip olan elemanıdır.

Tıpkı, A1 hücresine $A$55 yazdıktan sonra metni sütunlara dönüştür fonksiyonunda ayraç olarak "$" kullandığımızda ortaya çıkan sonuç gibi....

.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Telefondan cevap yazınca dikkatsiz yazmışım. Neyse ki arkadaşlarım destek olmuşlar.
 
Üst