Excel Forum

Excel Forum (http://www.excel.web.tr/index.php)
-   Makro-VBA (http://www.excel.web.tr/forumdisplay.php?f=48)
-   -   Kod ile bir sütundaki sayıların alttoplamını aldırma (http://www.excel.web.tr/showthread.php?t=169471)

bhdr 03-01-2018 14:01

Kod ile bir sütundaki sayıların alttoplamını aldırma
 
1 Eklenti(ler)
Herkese iyi günler,

konu ile alakalı forumda arama yaptım ancak tam olarak istediğim şeyi kodlarla oynamama rağmende yapamadım.

İstediğim Ek' te gönderdiğim dosyanın A sütunun da ki sayıların sarı dolgulu noktaya alttoplam olarak toplatılmasıdır.

Yardımlarınız için şimdiden teşekkürler.

Ömer BARAN 03-01-2018 14:24

Merhaba.

Anladığım kadarıyla A1 hücresinden aşağı doğru ilk boş hücreye kadarki alanda yer alan sayıların toplamını,
ilk boş hücrenin bir altındaki hücreye toplamını almak istiyorsunuz.
.
Kod:

son = [A1].End(xlDown).Row
Cells(son + 2, "A") = WorksheetFunction.Sum(Range("A1:A" & son))


askm 03-01-2018 14:38

Kod:

Sub askm_Toplam()
Dim son As Long
Application.ScreenUpdating = False
son = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To son
    Toplam = Toplam + Cells(i, 1)
Next i
Cells(i + 1, 1) = Toplam
Application.ScreenUpdating = True
MsgBox "işleminiz tamam...", vbInformation, "ASKM"
End Sub


tunchasan 03-01-2018 14:49

Her iki kodda çalışıyor Teşekkürler.

son = Range("A" & Rows.Count).End(xlUp).Row

son = [A1].End(xlDown).Row

İki kodda aynı işleve sahip sanırım. Mantıkları nedir

tunchasan 03-01-2018 14:51

Sayfa1.Range("A62652").End(3).Row bu kodda aynı işlevi görür değil mi

Haluk 03-01-2018 15:02

Alıntı:

tunchasan tarafından gönderildi (Mesaj 924350)
Sayfa1.Range("A62652").End(3).Row bu kodda aynı işlevi görür değil mi

En son sayı A62652'den sonraki bir hücredeyse, aynı işi görmez.

Cevaplayan arkadaşlar, bütün A sütunu için hazırlamışlar kodlarını.

.

Ömer BARAN 03-01-2018 15:17

Tekrar merhaba.

Benim verdiğim kod'da son değişkeni; A1 hücresinden aşağı doğru son dolu hücrenin satır numarası (verilerin A1'den itibaren boşluksuz olarak lislelendiğini varsayarak),
anlamına geliyor ve bunun iki satır sonrasına toplam alıyor.

Sayın askm'ın verdiği kod'da ise son değişkeni; A sütununda en son satırdan (excel versiyonuna göre 65536 veya 1048576'ncı satır) yukarı doğru ilk dolu hücrenin satır numarası anlamına geliyor ve bu hücrenin 1 altına toplam alıyor.

Sayın askm tarafından verilen ve benim verdiğim kod'u üst üste bir'den fazla kez çalıştırırsanız farklı sonuç alırsınız.
Benim verdiğim kod toplamı hep aynı hücreye alırken, Sayın askm'ın verdiği kod ikinci çalıştırmada, son aldığı toplamı da dahil ederek bir alt satıra tekrar toplam alır.

Tabi bu sorunun temelinde sizin sorunuzu, gerçek belgenizle aynı yapıda örnek belge üzerinden sormamanız ve muğlak kalan yönleri olacak şekilde sormanızdan kaynaklanıyor.
.

bhdr 03-01-2018 15:21

Her iki cevap veren arkadaşlara çok teşekkür ederim.Ellerinize ve emeğinize sağlık.

bhdr 03-01-2018 16:15

Alıntı:

Ömer BARAN tarafından gönderildi (Mesaj 924360)
Tekrar merhaba.

Benim verdiğim kod'da son değişkeni; A1 hücresinden aşağı doğru son dolu hücrenin satır numarası (verilerin A1'den itibaren boşluksuz olarak lislelendiğini varsayarak),
anlamına geliyor ve bunun iki satır sonrasına toplam alıyor.

Sayın askm'ın verdiği kod'da ise son değişkeni; A sütununda en son satırdan (excel versiyonuna göre 65536 veya 1048576'ncı satır) yukarı doğru ilk dolu hücrenin satır numarası anlamına geliyor ve bu hücrenin 1 altına toplam alıyor.

Sayın askm tarafından verilen ve benim verdiğim kod'u üst üste bir'den fazla kez çalıştırırsanız farklı sonuç alırsınız.
Benim verdiğim kod toplamı hep aynı hücreye alırken, Sayın askm'ın verdiği kod ikinci çalıştırmada, son aldığı toplamı da dahil ederek bir alt satıra tekrar toplam alır.

Tabi bu sorunun temelinde sizin sorunuzu, gerçek belgenizle aynı yapıda örnek belge üzerinden sormamanız ve muğlak kalan yönleri olacak şekilde sormanızdan kaynaklanıyor.
.

Ömer Bey, açıklamanız ve yardımlarınız için çok teşekkür ederim.saygılarımla.


Saat 05:45

Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.