• DİKKAT

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

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.
 
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
 
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.
 
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
 
Alternatif olarak,

Kod:
sonA = Cells(Rows.Count, "A").End(3).Row
Range("A2:A" & sonA).Find("", Range("A" & sonA), xlValues, xlByRows, xlPrevious).Select
 
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?
 
Range("A1:A" & sonA).Find("*", Range("A" & sonA), xlValues, , xlByRows, xlPrevious).Select
 
Son düzenleme:
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
 
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
 
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.
 
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
 
Geri
Üst