ETopla Formülünün makro karşılığı ve yineleme

Katılım
17 Haziran 2006
Mesajlar
348
Excel Vers. ve Dili
2003 - TR / 2007 - TR
Merhabalar..
Aşağıdaki formülü nasıl yineletebilirim...

Sub topla()
toplam = WorksheetFunction.SumIf(Sheets("10HaneliSeriNo").[B2:B65536], [B2], Sheets("10HaneliSeriNo").[A2:A65536])
[h2] = toplam
End Sub

B2 nin B3, B4 ... bir alt hücreden referans alması
H2 nin H3, H4 ... bir alt hücreye yazdırılması

Diğer bir şekilde açıklamak gerekirse aşağıdaki formülün makro karşılığı,
=+ETOPLA('10HaneliSeriNo'!$B$3:$B$65536;"*"&$B2&"*";'10HaneliSeriNo'!$A$3:$A$65536)

Teşekkürler...
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kodlar umarım size bu konuda fikir verebilir.

Kod:
Sub MYSUMIF()
Set s1 = Sheets("10HaneliSeriNo")
Range("h2:h1000").ClearContents
For i = 2 To s1.[b65536].End(3).Row
Cells(i, "h").Value = WorksheetFunction.SumIf(s1.[b2:b65536], Cells(i, "b"), s1.[a2:a65536])
Next i
Set s1 = Nothing
End Sub
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,701
Excel Vers. ve Dili
Excel 2019 Türkçe
Aşağıdaki şekilde dener misiniz?
Kod:
Sub topla()
kacsatir = 5'Kaç satır kopyalayacaksanız o satır sayısını yazın
For i = 2 To kacsatir
toplam = WorksheetFunction.SumIf(Sheets("10HaneliSeriNo").Range("B" & i & ":B65536"), Cells(i, "b") , Sheets("10HaneliSeriNo").Range("a" & i & ":a65536"))
Cells(i, "h") = toplam
End Sub
 
Katılım
17 Haziran 2006
Mesajlar
348
Excel Vers. ve Dili
2003 - TR / 2007 - TR
Cevabınız için çok teşekkür ederim.. İstediğim sonuca %80 ulaştım..her iki cevapta aynı sonucu veriyor...
Tek bir eksik kaldı referans "b", cümle içinde ise sonuç vermiyor. Bunu nasıl düzeltebilirim. Yani içerir fonksiyonu gibi nasıl kullanabilirim...

Tekrar teşekkürler..
 
Son düzenleme:

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,701
Excel Vers. ve Dili
Excel 2019 Türkçe
Aşağıdaki şekilde dener misiniz?
Kod:
Sub topla()
kacsatir = 5 'Kaç satır kopyalayacaksanız o satır sayısını yazın
For i = 2 To kacsatir
toplam = WorksheetFunction.SumIf(Sheets("10HaneliSeriNo").Range("B" & i & ":B65536"), "*" & Cells(i, "b") & "*", Sheets("10HaneliSeriNo").Range("a" & i & ":a65536"))
Cells(i, "h") = toplam
End Sub
 
Katılım
17 Haziran 2006
Mesajlar
348
Excel Vers. ve Dili
2003 - TR / 2007 - TR
Sayın Hamitcan,
Cevabınızı uyguladım önce hata vermişti next ile kapatılmadığını farkettim, düzeldi... Sonuç verdi sadece 6 satırda hata var..
Aynı uygulamayı "*" kombinasyonunu sayın ripek'in makrosuna uyguladım doğru sonuç verdi fakat 154 satırda nasıl sonuçlandırabilirim..65536 doğru devam ediyor..
Teşekkürler...
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Verileriniz 154.satırda bitiyorsa

Range("h2:h1000").ClearContents
For i = 2 To s1.[b65536].End(3).Row

satırını

Range("h2:h154").ClearContents
For i = 2 To 154

olarak değiştirebilirsiniz.
 
Katılım
17 Haziran 2006
Mesajlar
348
Excel Vers. ve Dili
2003 - TR / 2007 - TR
Sayın Ripek ve Sayın Hamitcan, çok çok teşekkürler... Sonuca ulaşılmıştır..
 
Üst