makroda son 3 satır

Katılım
24 Ocak 2007
Mesajlar
27
Excel Vers. ve Dili
excel 2003
Bir makroda kullanıcıdan i tane (10 olsun) değer istiyoruz. ve sonra bu i değerin son 3 tanesini seçip işlem yapıcaz mesela toplama. ama kullanıcının kaç değer gireceği belli değil. bu son 3 satırı nasıl seçip işlem yapabiliriz.
Ayrıca bir makroda aldığımız bu i değerini başka bir makro içinde kullanabilir miyiz? :yardim:
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
Öncelikle Formumuza Hoş Geldiniz.

altta belirtiğim kodlar size Yardımcı olur mu bilemicem ama Örnek dosya eklemiş olsaydınız daha sağlıklı olurdu.

1.Kodda Son 3 satırı msgbox a yazdırır senın olayı gormen ıcın hazırladım.

Kod:
Sub Sonucsatırıbulur()
a = [a65536].End(3).Row
MsgBox (Cells(a, 1) & "," & Cells(a - 1, 1) & "," & Cells(a - 2, 1))
End Sub
2.Kodda ise son 3 satırı seçer sonrası senın yapmak istediğin kodlarla birleştirirsin.

Kod:
Sub Sonucsatırısec()
son = [a65536].End(3).Row
ilk = son - 3 + 1
Rows(ilk & ":" & son).Select
End Sub

Yukarıdaki veriler xls sayfasının A kolonu için geçerlidir.
 
Katılım
24 Ocak 2007
Mesajlar
27
Excel Vers. ve Dili
excel 2003
teşekkür ederim hoşbulduk. verdiğiniz kodlar ile son 3 satırın tümü seçiliyor. ben mesela b5:b7 arasındaki sayıları oplatmak isiyorum. bir de yazdığınız kodlardaki "son = [b65536].End(3).Row" bu satırın mantığı ne b65536 nerden geliyo. açıklayabilirseniz sevinirm.
 
Katılım
24 Ocak 2007
Mesajlar
27
Excel Vers. ve Dili
excel 2003
teşekkür ederim hoşbulduk. verdiğiniz kodlar ile son 3 satırın tümü seçiliyor. ben mesela b5:b7 arasındaki sayıları oplatmak isiyorum. bir de yazdığınız kodlardaki "son = [b65536].End(3).Row" bu satırın mantığı ne b65536 nerden geliyo. açıklayabilirseniz sevinirm.
ayrıca örnek bi dosya da gönderiyorum yardımcı olması açısından.
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
Kod:
Sub aratopla()
rakam = InputBox("Değeri Gir")

bul = Range("b4:b65536").Find(rakam) + 3
toplam = Cells(bul - 2, 3).Value * 1 + Cells(bul - 1, 3).Value * 1 + Cells(bul, 3).Value * 1
MsgBox toplam
End Sub
Dosyaya uyguladım ınceleyınız.
 
Katılım
24 Ocak 2007
Mesajlar
27
Excel Vers. ve Dili
excel 2003
başka bir makroda rakam = InputBox("Değeri Gir") bu değer alama işlemini ve ek başka işlemler yaptım.
şimdi de bu toplama işlemini başka bir makroda yapmam gerekiyor.
ilk makroda aldığım değeri nasıl bu makroda kullanıcam?
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
Toplama işlemini msgbox a değilde sayfa içerisinde bir yere yazdırınız.Diğer makronuzdada yazdırdıgın değeri okutturursun.
 
Katılım
24 Ocak 2007
Mesajlar
27
Excel Vers. ve Dili
excel 2003
çok teşekkür ederim buraya kadar oldu ama bişey daha var. şimdi kullanıcı 10 değer girmişti mesela. bende son 3 tanesinin toplayarak yeni bi değer buldum. bunu 11. değer olarak 10.değerin altına yazdırmam gerekiyor. yani kullanıcının girdiği değerlerin altına yeni bir değer yazdırıcam. bunu nasıl yaparım. ok soru sordum ama kusura bakmayın
 
Katılım
24 Ocak 2007
Mesajlar
27
Excel Vers. ve Dili
excel 2003
yukarıdaki sorunu hallettm. fakat yeni birşey çıktı. şimdi yapmamız gereken önce kullanıcıdan bi değer almak atıyorum 2. bu değer bize işlemi kaç defa yapacağımızı gösterecek. sonra son 3 değeri toplayarak yeni bir değer elde ettm. ve bunu atıyorum 10.değer olarak yazdırdım. şimdi kullanıcıdan 2 değerini aldığımız için bu işlemi bu sefer bulduğumuz 10. değeri de dahil edip son 3 değeri alıp toplayarak yeni bir değer elde edicez. bunu da 11. değer olarak yazdırıcaz.
aşağıda açıklayıcı bir örnek verdim.
 
Üst