• DİKKAT

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

makroda son 3 satır

  • Konbuyu başlatan Konbuyu başlatan priorix
  • Başlangıç tarihi Başlangıç tarihi
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:
 
Ö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.
 
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.
 
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.
 
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.
 
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?
 
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.
 
ç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
 
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.
 
Geri
Üst