sumif fonksiyonu

Katılım
7 Şubat 2014
Mesajlar
2
Excel Vers. ve Dili
Excel 2010
merhaba,

vba yı yeni öğreniyorum. aşağıdaki sumif fonksiyonunu hazırladım. Fakat birden fazla satıra bu kodu uygulamak istiyorum.

Yani aşağıda koyu ve alt çizgili yazdığım seçimi G2:G11 aralığı için yapmasını istiyorum.

Sub etopla_benim_yazdigim()
[G2:G11].Value = WorksheetFunction.SumIf(Sheets("kk_iade").Range("A:A"), Range("A2"), Sheets("kk_iade").Range("G:G"))
End Sub

Yardımlarınızı esirgemezseniz çok sevinirim.

Şimdiden teşekkür ederim.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,405
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Şu şekilde döngü ile alabilirsiniz.
Kod:
Sub etopla_benim_yazdigim()
For a = [COLOR="red"]2 To 11[/COLOR]
    Cells(a, [COLOR="Red"]"G"[/COLOR]) = WorksheetFunction.SumIf(Sheets("kk_iade").Range("A:A"), Cells(a, [COLOR="red"]"A"[/COLOR]), Sheets("kk_iade").Range("G:G"))
Next
End Sub
Veya formulü direkt yazdırıp değere çevirebilirsiniz.
Kod:
Sub etopla_benim_yazdigim()
With Range("[COLOR="Red"]G2:G11"[/COLOR])
    .Formula = "[COLOR="red"]=SUMIF(kk_iade!A:A,A2,kk_iade!G:G)[/COLOR]"
    .Value = .Value
End With
End Sub
 
Katılım
7 Şubat 2014
Mesajlar
2
Excel Vers. ve Dili
Excel 2010
Çok teşekkür ederim yardımınız için.

Makroyu çalışıyor. Fakat 200.000 satır veri var. 10 dakika kadar sürüyor. daha hızlı bir formülü var mıdır acaba?
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,405
Excel Vers. ve Dili
2007 Türkçe
Yukarıdaki mesajda yazdığım 2. kodu denediniz mi? Epey hızlı olması lazım.
Bir de şunu deneyiniz:
Kod:
Sub etopla_benim_yazdigim1()
son = Range("A1000000").End(3).Row
dz = Range("G2:G" & son)
For a = 2 To son
    dz(a - 1, 1) = WorksheetFunction.SumIf(Sheets("kk_iade").Range("A:A"), Cells(a, "A"), Sheets("kk_iade").Range("G:G"))
Next
Range("G2:G" & son) = dz
End Sub
 
Üst