Excel Formül Sorusu Sor

Bir Excel formülüne dair sorunuz varsa, bu alanı kullanarak bize iletin.

Excel Makro Sorusu Sor

Bir Excel VBA koduna dair sorunuz varsa, bu alanı kullanarak bize iletin.

Genel Excel Sorusu Sor

Excel'in ön sayfasındaki FORMÜL haricinde olan sorularınızı buradan sorabilirsiniz.

Excel Vba Aralık Toplama​

Excel Vba Aralık Toplama isimli bu dosyamızı, Excel Makroları ile sayfa üzerinde toplama yapmanıza yarayacak vba kodunu eklemek için hazırladık.

Excel'de bazen veri yazdıkça en üst satırda toplam gelmesini isteyebilirsiniz. Bu istek, Excel'in TOPLA formülü ile de kolayca gerçekleşir. Buradaki küçük nüans, formülde belirlediğiniz aralığın dışında bir aralığa değer girilmişse, o değerin toplama dahil edilmeyecek olmasıdır. Bunun da elbet kolay çözümleri vardır ama makalemize konu makro ile toplam alma olacağı için, bunun üzerinde duracağız.

Diyelim ki; A sütununda gireceğiniz değerler yer alsın. Siz A1 hücresinde değer girildikçe toplam rakamlarının yer almasını istiyorsunuz.

Range("A1").Value = WorksheetFunction.Sum(Range("A3:A100"))


Bu işin en basit hali üstteki kod parçacığıdır. Bu kodu, bir makroya atıp çalıştırdığınızda A3:A100 aralığındaki değerleri toplar. Lakin otomatik olarak toplamasını istiyorsanız, kodu sayfanın Change olayına eklemeniz gerekecektir, yani şu şekilde:

Private Sub Worksheet_Change(ByVal Target As Range)
Range("A1").Value = WorksheetFunction.Sum(Range("A3:A100"))
End Sub


Bu kod, Module olarak değil, sayfanın kod kısmına eklenecektir. Kodumuz, siz A3:A100 aralığına veri yazdıkça A1 hücresinde o verilerin toplamını otomatik olarak verecektir.

Lakin bu kod Excel sayfasında nerede işlem yaparsanız yapın çalışacağı için sorun yaratacaktır. Dolayısıyla bunu da aşağıdaki gibi ufak bir dokunuşla sadece A sütununda bir değişiklik olursa çalışsın şeklinde revize edebiliriz.

Private Sub Worksheet_Change(ByVal Target As Range)
If If Target.Column = 1 And Target.Row >= 3 And Target.Row <= 100 Then
Range("A1").Value = WorksheetFunction.Sum(Range("A3:A100"))
End If End Sub


Evet, şimdi kodumuz sadece A sütununda işlem gördüğünde çalışacaktır. Lakin yazdığımız değerler 101. satıra gelirse, artık bu kod bize doğru sonuç vermeyecektir. Bununda üstesinden aşağıdaki gibi küçük bir dokunuşla geliriz.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row >= 3 And Target.Row <= Range("A" & Rows.Count).End(xlUp).Row Then
Range("A1").Value = WorksheetFunction.Sum(Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row))
End If End Sub


Artık A sütununda ne kadar veri yazarsak yazalım, A1 hücresinde otomatik olarak toplanacaktır.

Faydalı olması temennisiyle.

Bu Dosyada Kullanılan Excel Özellikleri​

Resul Kurt Danışmanlık

Son incelemeler

Paylaşıma teşekkür ederim.
Geri
Üst