Formüllü hücrelerde Son boş hücre

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
446
Excel Vers. ve Dili
Windows 2011 TR
MS Office 2021 TR - 64bit

VBA, Selenium ve VBS
Altın Üyelik Bitiş Tarihi
08-04-2026
Merhabalar,
Bu sorunun cevabı sitenizde vardı ama bulamadım. Ben bugüne kadar son dolu hücreyi bulmak için

son_sat = Sheets("DATA").Range("O" & Rows.Count).End(xlUp).Row

yazıyordum. Sayfamda formül var. formül sonucu boş ("") olsa da yukarıdaki kod dolu gibi gösteriyor.
Nasıl bir kod yazmalıyım. Teşekkür ederim.
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
445
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Formülle boş (“”) görünen hücreleri de dolu olarak algılamayan bir yöntem için, hücrelerin gerçekten veri içerip içermediğini kontrol eden bir VBA kodu kullanabilirsiniz. Aşağıdaki kod, formül sonucu boş olan hücreleri atlayarak son dolu hücreyi bulur:

Kod:
Dim son_sat As Long
With Sheets("DATA")
    son_sat = .Cells(.Rows.Count, "O").End(xlUp).Row
    Do While .Cells(son_sat, "O").Value = ""
        son_sat = son_sat - 1
    Loop
End With
Bu kod, önce Range("O" & Rows.Count).End(xlUp).Row ile son dolu hücreyi bulur, ardından Do While döngüsüyle hücre değeri gerçekten boş ("") ise bir üst satıra geçer. Bu şekilde, formül sonucunda boş olan hücreler atlanır ve son gerçekten dolu olan hücreye ulaşılır.
 

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
446
Excel Vers. ve Dili
Windows 2011 TR
MS Office 2021 TR - 64bit

VBA, Selenium ve VBS
Altın Üyelik Bitiş Tarihi
08-04-2026
Teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,307
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Döngüsüz daha hızlı sonuç verecek alternatifler..

C++:
Option Explicit

Sub Last_Row_1()
    Dim Last_Row As Long
    
    Last_Row = Columns("O").Find(What:="*", LookIn:=xlValues, SearchDirection:=xlPrevious).Row
    
    MsgBox "Son dolu hücre satır numarası: " & Last_Row
End Sub
C++:
Option Explicit

Sub Last_Row_2()
    Dim Last_Row As Long
    
    Last_Row = Evaluate("LOOKUP(2,1/(O:O<>""""),ROW(O:O))")
    
    MsgBox "Son dolu hücre satır numarası: " & Last_Row
End Sub
 

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
446
Excel Vers. ve Dili
Windows 2011 TR
MS Office 2021 TR - 64bit

VBA, Selenium ve VBS
Altın Üyelik Bitiş Tarihi
08-04-2026
Çok teşekkür ederim hocam
Döngüsüz daha hızlı sonuç verecek alternatifler..

C++:
Option Explicit

Sub Last_Row_1()
    Dim Last_Row As Long
   
    Last_Row = Columns("O").Find(What:="*", LookIn:=xlValues, SearchDirection:=xlPrevious).Row
   
    MsgBox "Son dolu hücre satır numarası: " & Last_Row
End Sub
C++:
Option Explicit

Sub Last_Row_2()
    Dim Last_Row As Long
   
    Last_Row = Evaluate("LOOKUP(2,1/(O:O<>""""),ROW(O:O))")
   
    MsgBox "Son dolu hücre satır numarası: " & Last_Row
End Sub
 
Üst