sumifs fonksiyonu içinde for değişkeni

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
iyi günler. aşağıdaki kod döngü olmadan çalışıyor fakat for döngüsüne aldığımda j değerine atama yapmıyor. çözemedim yardımcı olurmusunuz.

Kod:
s2.Range("AA11") = Excel.WorksheetFunction.SumIfs(bula, trh, trh1, ebt, ebt3, klt, ebt11)
Kod:
For j = 3 To 3
s2.Range("AA11") = Excel.WorksheetFunction.SumIfs(bula, trh, trh1, ebt, "ebt" & j, klt, ebt11)
Next j
Kod:
For j = 3 To 3
s2.Range("AA11") = Excel.WorksheetFunction.SumIfs(bula, trh, trh1, ebt, ("ebt" & j), klt, ebt11)
Next j
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Fonksiyon içindeki kullandığınız değişkenleri belirtmediğiniz için ben hücre olarak değerlendirip yazıyorum.

Fonksiyon içindeki tanımlamayı dışarıda yaptıktan sonra fonksiyon içinde kullanmalısınız.

"ebt" & j

Bu değişken bir hücre adresi ise ona uygun bir tanımlama yapmalısınız.
 

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
Fonksiyon içindeki kullandığınız değişkenleri belirtmediğiniz için ben hücre olarak değerlendirip yazıyorum.

Fonksiyon içindeki tanımlamayı dışarıda yaptıktan sonra fonksiyon içinde kullanmalısınız.

"ebt" & j

Bu değişken bir hücre adresi ise ona uygun bir tanımlama yapmalısınız.
Korhan hocam bütün kodları yazdım

Kod:
Sub RAPOR()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim s1, s2, s3 As Worksheet
Dim bula, bulb, buld, bule, dkm, ebt, klt, trh, trh1 As Range
Dim ebt2, ebt3, ebt4, ebt5, ebt6, ebt7, ebt8, ebt9, ebt10, ebt11 As Variant
Set s1 = Sheets("Anasayfa")
Set s2 = Sheets("Sonuc")
Set s3 = Sheets("Raporlar")
Set trh = s3.Range("A:A")
Set klt = s3.Range("B:B")
Set dkm = s3.Range("C:C")
Set ebt = s3.Range("D:D")
Set trh1 = s1.Range("T2")
Set bula = s3.Range("H:H")
Set bulb = s3.Range("J:J")
Set bulc = s3.Range("L:L")
Set buld = s3.Range("O:O")

ebt1 = "ürün1"
ebt2 = "ürün2"
ebt3 = "ürün3"
ebt4 = "ürün4"
ebt5 = "ürün5"
ebt6 = "ürün6"
ebt7 = "ürün7"
ebt8 = "ürün8"
ebt9 = "ürün9"
ebt10 = "ürün10"
ebt11 = "ürün11"
ebt12 = "ürün12"
ebt13 = "ürün13"
ebt14 = "ortak"

s2.Range("AA2") = Excel.WorksheetFunction.SumIfs(bula, trh, trh1, ebt, ebt1, dkm, ">=0")
s2.Range("AB2") = Excel.WorksheetFunction.SumIfs(bulb, trh, trh1, ebt, ebt1, dkm, ">=0")
s2.Range("AC2") = Excel.WorksheetFunction.SumIfs(bulc, trh, trh1, ebt, ebt1, dkm, ">=0")
s2.Range("AD2") = Excel.WorksheetFunction.SumIfs(buld, trh, trh1, ebt, ebt1, dkm, ">=0")

's2.Range("AA1") = Excel.WorksheetFunction.SumIfs(bula, trh, trh1, ebt, ebt1, klt, ebt11)  bu şekilde çalışıyor, for döngüsünde çalışmıyor
's2.Range("AB1") = Excel.WorksheetFunction.SumIfs(bulb, trh, trh1, ebt, ebt2, klt, ebt11)
's2.Range("AB1") = Excel.WorksheetFunction.SumIfs(bulc, trh, trh1, ebt, ebt3, klt, ebt11)
's2.Range("AD1") = Excel.WorksheetFunction.SumIfs(buld, trh, trh1, ebt, ebt4, klt, ebt11)

For j = 1 To 13
s2.Range("AA1") = Excel.WorksheetFunction.SumIfs(bula, trh, trh1, ebt, "ebt" & j, klt, ebt11)
s2.Range("AB1") = Excel.WorksheetFunction.SumIfs(bulb, trh, trh1, ebt, "ebt" & j, klt, ebt11)
s2.Range("AC1") = Excel.WorksheetFunction.SumIfs(bulc, trh, trh1, ebt, "ebt" & j, klt, ebt11)
s2.Range("AD1") = Excel.WorksheetFunction.SumIfs(buld, trh, trh1, ebt, "ebt" & j, klt, ebt11)
Next j

Application.ScreenUpdating = False
Application.DisplayAlerts = False
End Sub
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
ebt.. olarak başlayan tanımlamalarınızı dizi içine alırsanız daha pratik olacaktır.

C++:
Dim Urun as Variant
Urun = Array("ürün1, "ürün2", "ürün3", "ürün4", "ürün5", "ürün6", "ürün7", "ürün8", "ürün9", "ürün10", "ürün11", "ürün12", "ürün13", "ürün14", "ortak")

For X = Lbound(Urun, 1) To Ubound(Urun, 1)
     s2.Range("AA1") = Excel.WorksheetFunction.SumIfs(bula, trh, trh1, ebt, Urun(X), klt, ebt11)
Next
 

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
ebt.. olarak başlayan tanımlamalarınızı dizi içine alırsanız daha pratik olacaktır.

C++:
Dim Urun as Variant
Urun = Array("ürün1, "ürün2", "ürün3", "ürün4", "ürün5", "ürün6", "ürün7", "ürün8", "ürün9", "ürün10", "ürün11", "ürün12", "ürün13", "ürün14", "ortak")

For X = Lbound(Urun, 1) To Ubound(Urun, 1)
     s2.Range("AA1") = Excel.WorksheetFunction.SumIfs(bula, trh, trh1, ebt, Urun(X), klt, ebt11)
Next
Sağolun hocam teşekkür ederim emeğinize sağlık
 
Üst