SUMİFS vba kodu

Katılım
17 Şubat 2013
Mesajlar
12
Excel Vers. ve Dili
2007 türkçe
Sumifs(toplam aralığı, kriter aralığı1, kriter1, kriter aralığı2, kriter2, .......) kodunu kullanırken kriter eğer bakılacak aralıktan bir ölçüt seçilirse sorunsuz çalışıyor. Örneğin bir tarih seçilirse o tarihlere karşılık gelen toplam aralığındaki sayılar toplanıyor. Ancak vba kodu ile iki tarih arasını toplatmak için kritere ">=" veya "<=" gibi mantıksal ifadeler yazdığımda kod satırı sarı renge dönüşüyor ve çalışmıyor.
Sumifs vba kodu ile A sütunundaki iki tarih arasına karşılık gelen B sütunundaki sayıları nasıl toplatabiliriz? Şimdiden ilgileriniz için teşekkür ederim. Saygılarımla..!
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Makro Kodunda bu sorunu "And" ifadesini kullanarak çözebilirsiniz.
Örnek:
If Cells(1,1).Value >= Cells(1,5).Value And Cells(1,1).Value <= Cells(1,6).Value Then
Not: bundan sonra koda nasıl bir toplama yapması yazılır...

gibi
Bu durumda
E1 hücresinde Başlangıç Tarihi
F1 hücresinde Bitiş Tarihi
bulunmaktadır.
A1 hücresindeki tarihi E1 ile F1 tarihleri arasındaysa işlem yapacaktır.
Bu ÖRNEK bir kod parçasıdır.
İhtiyaca göre farklı şekillerde kurgulamak mümkündür.


Bir başka yöntem olarak:
Sumifs kullanmak istediğiniz hücreler veya Range için;(Örneğin A1:A20 aralığında kullanmak isterseniz)
With Range("A1:A20")
.Formula="=Sumifs(................)"
.Value=.Value
End with
şeklinde de kullanabilirsiniz.

Veya,
Application.WorksheetFunction.SumIfs(.............)
şeklinde de uygulama yapabilirsiniz.

Bu alternatifler, kullanma ihtiyacınıza göre değişebilir.
 
Son düzenleme:
Katılım
6 Mart 2005
Mesajlar
6,233
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
22/12/2022
C Sütunda toplanacak değer,A sütununda tarih olduğu varsayılmıştır.CEtop(tarihler doğrudan yazılmıştır).TEtop(Tarihler sütundan alınmıştır)
CDbl(CDate ile yazarak sonuça ulaşabilirsiniz.
Kod:
Sub Coketopla()
CEtop = Application.WorksheetFunction.SumIfs(Range("C2:C12"), Range("A2:A12"), ">" & CDbl(CDate("05/10/2018")), Range("A2:A12"), "<" & CDbl(CDate("09/10/2018")))
TEtop = Application.WorksheetFunction.SumIfs(Range("C2:C12"), Range("A2:A12"), ">" & CDbl(CDate(Range("D1"))), Range("A2:A12"), "<" & CDbl(CDate(Range("E1"))))

End Sub
 
Katılım
17 Şubat 2013
Mesajlar
12
Excel Vers. ve Dili
2007 türkçe
CDbl(Date ile kriter oluşturmayı öğrenmiş oldum. Bu konuda bir eğitim almadım, kendim kod yazmayı çözüyorum. Bu konu benim için çok önemliydi. İlginiz ve yardımınız için çok memnun oldum, üstesinden gelemediğim konularda yine yardım edebilir misiniz ?
 
Katılım
6 Mart 2005
Mesajlar
6,233
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
22/12/2022
CDbl(Date ile kriter oluşturmayı öğrenmiş oldum. Bu konuda bir eğitim almadım, kendim kod yazmayı çözüyorum. Bu konu benim için çok önemliydi. İlginiz ve yardımınız için çok memnun oldum, üstesinden gelemediğim konularda yine yardım edebilir misiniz ?
Sayın excell_28;
Bildiğim bir konuda sorunuz olur ise yardımcı olaçağımdan emin olablirsiniz.Kaldı ki forumda sorduğunuz bir soruya yardımcı olaçak uzman arkadaşlar ve benden çok daha konulara hakim olan gönüllü arkadaşlar olaçakdır.Kısaca forumda rahatlıkla sorularınız sorabilirsiniz.Sorularınız kurallar dahilinde ve örnek dosya ile sorduğunuzda kısa sürede cevap alabilirsiniz diye düşünüyorum.Çalışmalarınızda başarılar dilerim.
 
Üst