• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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.
 
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
 
Ç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?
 
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
 
Geri
Üst