Merhaba Osman Bey,
sutun = Split(ActiveCell.Address, "$")(1)
komut satırında sütun'un harfini bulduk. (Nasıl olduğunu açıklayamam. Yabancı siteden buldum.
)
Aslında açıklayabileceğim yöntem ile de bulurduk ama biraz uzatmış olacaktık kodları... Neyse.
son = sutun & 65530
son_satir = Range(son).Offset(0, -1).End(3).Row
End(3) 'ü bulduğumuz sütun numarasının 65530. satırından yukarıya doğru tarayarak ilk dolu hücrenin satır numarasını bulmak için kullandık. Diğer bir değişle, belirtilen sütundaki aşağı doğru dolu en son hücrenin satır numarası...
Şu şekilde de kullanabilirdik:
son_satir = Range(son).Offset(0, -1).End(xlUp).Row
MsgBox Range("C65530").End(xlUp).Row ---> C65530'dan yukarıya doğru dolu ilk hücrenin satır numarasını bulur.
MsgBox Range("C1").End(xlDown).Row ---> C1'den aşağı doğru dolu son hücrenin satır numarası...
Bülent bey bir sorun daha var;
verileri alt alta girerken otomatik olarak hesaplamıyor, ancak formülün üstüne gelip formül çubuğunda tıklayıp enter yapınca hesaplama yapıyor!
Evet, bunu
Application.Volatile komut satırı (Sayfada herhangi bir işlem yapıldığında fonksiyonumuzu güncellemesi için) kullanarak çözmeyi düşündüm ancak fonksiyonun birden fazla hücrede kullanımı hesaplama hatasına sebep oldu.
Sonuç:Yukarıdaki çözümü çöpe atabilirz.