vba da son dolu hücreyi bulma işlemi hk.

Katılım
12 Şubat 2019
Mesajlar
115
Excel Vers. ve Dili
Vera. 10 Dil Türkçe
Merhaba bir dosyadaki son dolu hücreyi bulmak için aşağıdaki kodu kullanıyorum.

ActiveSheet.Range("A1").Select
ActiveCell.End(xlDown).Select
i6 = ActiveCell.Row

ama dosyada sadece satır başlıkları olunca ve başka veri olmayınca yukarıdaki kod beni en son satıra götürüyor. yani 1048576. satıra.

alternatif olarak aşağıdaki kodu denedim fakat o da olmadı. beni a sütunundaki 17. satıra götürüyor.

ActiveSheet.Range("A1").Select
ActiveSheet.Range("a" & Cells(1048576, 3).End(xlUp).Row).Select
i6 = ActiveCell.Row

konu hakkında yardımlarınızı rica ederim.
 
Katılım
18 Ocak 2019
Mesajlar
234
Excel Vers. ve Dili
Office 2013
Merhaba @Öz1.618

Deneyiniz.

A sütunu son dolu hücrenin satır no için:
Kod:
 sonA = Cells(Rows.Count, "A").End(3).Row
A sütununda son dolu hücreyi seçmek için:
Kod:
 Cells(Cells(Rows.Count, "A").End(3).Row, "A").Activate
 
Katılım
12 Şubat 2019
Mesajlar
115
Excel Vers. ve Dili
Vera. 10 Dil Türkçe
Merhaba @Öz1.618

Deneyiniz.

A sütunu son dolu hücrenin satır no için:
Kod:
 sonA = Cells(Rows.Count, "A").End(3).Row
A sütununda son dolu hücreyi seçmek için:
Kod:
 Cells(Cells(Rows.Count, "A").End(3).Row, "A").Activate
dosyamda sadece 1. satırda başlık 2. satırda veri olmasına rağman bu kod
Kod:
 sonA = Cells(Rows.Count, "A").End(3).Row
17. satırı gösteriyor.
 
Katılım
18 Ocak 2019
Mesajlar
234
Excel Vers. ve Dili
Office 2013
Sanırım hücreler boş değil.
Hücrelerde formül var ve formül sonucu boş ise ;
Kod:
sonA = Evaluate("=LOOKUP(2,1/(A1:A10000<>""""),ROW(A1:A10000))")
Cells(sonA, "A").Activate
 

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,121
Excel Vers. ve Dili
office2010
Alternatif olarak,

Kod:
sonA = Cells(Rows.Count, "A").End(3).Row
Range("A2:A" & sonA).Find("", Range("A" & sonA), xlValues, xlByRows, xlPrevious).Select
 
Katılım
12 Şubat 2019
Mesajlar
115
Excel Vers. ve Dili
Vera. 10 Dil Türkçe
Alternatif olarak,

Kod:
sonA = Cells(Rows.Count, "A").End(3).Row
Range("A2:A" & sonA).Find("", Range("A" & sonA), xlValues, xlByRows, xlPrevious).Select
hocam son dolu satırdan sonraki boş satıra gidiyor sizin verdiğiniz kod. Son dolu satıra gitmek için ne yapmak gerekiyor?
 

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,121
Excel Vers. ve Dili
office2010
Range("A1:A" & sonA).Find("*", Range("A" & sonA), xlValues, , xlByRows, xlPrevious).Select
 
Son düzenleme:
Katılım
12 Şubat 2019
Mesajlar
115
Excel Vers. ve Dili
Vera. 10 Dil Türkçe
Range("A1:A" & sonA).Find("*", Range("A" & sonA), xlValues, , xlByRows, xlPrevious).Select
hocam olmamış kusura bakmayın.
sitede araştırma yaptım.
aşağıdaki kodu buldum. son dolu olanhücreye götürüyor aşağıdaki kod beni.
ama şöyle bir durum var. Son dolu hücre g sütununda olduğu için oraya götürüyor beni. ben a sütununda son dolu hücreye götürsün istiyorum beni.
bunun için aşağıdaki kodda nasıl bir değişiklik yapabiliriz acaba?

ActiveSheet.Cells.Find(What:="*", After:=Cells(1, 1), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Select
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2021 Excel Tr
Bunu denediniz mi?
Kod:
Sub son()
Dim SonSat As Long
SonSat = Range("A" & Rows.Count).End(xlUp).Row 'A sütununun son dolu satırı
Cells(SonSat, "A").Select
End Sub
 
Katılım
12 Şubat 2019
Mesajlar
115
Excel Vers. ve Dili
Vera. 10 Dil Türkçe
Bunu denediniz mi?
Kod:
Sub son()
Dim SonSat As Long
SonSat = Range("A" & Rows.Count).End(xlUp).Row 'A sütununun son dolu satırı
Cells(SonSat, "A").Select
End Sub
hocam problem şuradan kaynaklanıyor galiba. Benim asıl dosyam üzerinde vba kullanarak yardımcı bir dosya açıyorum. asıl dosyamda çalıştırdığım makro ile başka bir excel dosyası açıyorum ve makro yardımıyla sizin kodu yazınca 17. satıra geliyor. Çünkü ana dosyamda son dolu satır 17. satır. Şimdi farkettim bende.
Ana dosyamdaki son satır hangisiyse makro yardımıyla açtığım dosyadaki o satıra gdiyor kod.
 
Katılım
12 Şubat 2019
Mesajlar
115
Excel Vers. ve Dili
Vera. 10 Dil Türkçe
sizin koda sadece activesheet komutunu ekledim. sorun çözüldü.

SonSat = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row 'A sütununun son dolu satırı
ActiveSheet.Cells(SonSat, "A").Select
 
Üst