Üye olmak için ExcelDestek sitemizi kullanabilirsiniz. Üyelik otomatik olarak aktarılmaktadır. Eski sitemizdeki tüm içerikler ExcelDestek'te korunmaktadır.

Dosyalar

Excel Vba Aralık Toplama

Excel Vba Aralık Toplama, Makrolar ile sayfa üzerinde toplama yapmaya yarayan Visual Basic kodlarını kullanmaktadır.

Excel Vba Aralık Toplama Yapma

Bazen veri yazdıkça en üst satırda toplam gelmesini istenmektedir. Bu istek, Excel'in TOPLA formülü ile de kolayca gerçekleşmektedir. Ancak, formülde belirlenen aralığın dışında bir aralığa değer girilmişse, o değer toplama dahil edilmemektedir. Bunun formül yönteminde de çözümleri mevcuttur. Lakin, dosyada makro ile nasıl yapılması ele alınmaktadır.

A sütununda girilen değerler bulunmaktadır. A1 hücresine yeni değer girildiğinde, toplam rakamlarının yer alması istenmektedir.

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

Bu işin en basit hali üstteki kod parçacığıdır. Bu kod, bir makroya atandığında ve çalıştırıldığında, A3:A100 aralığındaki değerleri toplamaktadır. Lakin, otomatik olarak toplaması istendiğinde, kodun sayfanın Change olayına eklenmesi gerekmektedir.

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 eklenmelidir. Kod, A3:A100 aralığına veri yazıldıkça A1 hücresinde o verilerin toplamını otomatik olarak vermektedir. Ancak, bu kod Excel sayfasının neresinde işlem yapılırsa yapılsın, sorun yaratacaktır. Dolayısıyla, sadece A sütununda bir değişiklik olursa çalışması için aşağıdaki gibi revize edilmelidir.

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

Şu anda sadece A sütununda işlem gördüğünde çalışmaktadır. Lakin, yazılan değerler 101. satıra gelirse, artık bu kod doğru sonuç vermeyecektir. Bununda üstesinden aşağıdaki gibi küçük bir dokunuşla gelinmektedir.

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 olursa olsun, A1 hücresinde otomatik olarak toplanmaktadır.

Faydalı olması temennisiyle.

Dosya Bilgileri

Dosya Adı: aralik_toplama.xlsm
Dosya Boyutu: 21.03 KB
Toplam İndirme Sayısı: 0
Bu içerikteki dosyayı indirmek için giriş yapmalısınız. ExcelDepo üyelik bilgileriniz ile bu siteye de giriş yapabilirsiniz.
Giriş Yap

Benzer İçerikler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu

Reklam Engelleyici Kullanmaktasınız

Merhaba,Sitenin reklamlar sayesinde ayakta kaldığını bilmenizi isteriz. İçeriklerimizi eklemeye devam edebilmemiz için, lütfen reklam engelleyicinizi bu siteye özel olarak kapatır mısınız?Teşekkürler