• DİKKAT

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

Topla.Çarpım VBA hatası

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Arkadaşlar R1C1 şeklinde Topla.Çarpım çalışırken A1 stilinde type mismatch hatası veriyor bir türlü aşamadım.
Not: office 2007 kullanmaktayım.

Kod:
Sub Makro1()
  [B1] = "=SUMPRODUCT((RC[-1]:R[5]C[-1]<1)* (RC[-1]:R[5]C[-1]))"
  [C1] = WorksheetFunction.SumProduct((Range("A1:A5") < 1) * (Range("A1:A5")))
End Sub
 
Aşağıdaki gibi deneyiniz.

Kod:
[C1] = WorksheetFunction.SumProduct(("A1:A5")<1)*("A1:A5"))
 
Aşağıdaki gibi deneyiniz.
Sayın Korhan bey nette çok aradım ancak fazla ingilezcem olmadığı için birçok yol denedim olmadı Önerinizi acaba yanlış mı yapıyorum dedim tekrar denedim lakin aynı hata veriyor. Peki Range olayını R1C1 içine adapte edebilirmiyiz.,
mesela :
Kod:
[C1] = WorksheetFunction.SumIf(Range("A1:A9"), "<1")
kodu normal çalışıyor.
 
Son düzenleme:
.

VBA'da SUMPRODUCT işlevi bildiğim kadarıyla,

Kod:
[C1] = WorksheetFunction.SumProduct((Range("A1:A5") < 1) * (Range("A1:A5")))

şeklinde çalışmaz.

Aşağıdaki şekillerde olur.

Kod:
Sub Makro1()

  [B1] = "=SUMPRODUCT((RC[-1]:R[5]C[-1]<1)* (RC[-1]:R[5]C[-1]))"
  
  [C1] = Evaluate("=SUMPRODUCT(--(A1:A5<1),--(A1:A5))")
  
  [D1].FormulaLocal = "=SUMPRODUCT((A1:A5<1)*(A1:A5))"

  [E1] = Evaluate("=SUMPRODUCT((A1:A5<1)*(A1:A5))")
 
End Sub


.
 
Merhaba,

TOPLA.ÇARPIM fonksiyonu WorksheetFunction yöntemi ile dizilerin çarpımında hiç kriter olmadan sonuç üretiyor.

Kod:
MsgBox WorksheetFunction.SumProduct([A1:A5], [A1:A5])

Fakat işin içine bir kriter girse dahi sonuç üretmiyor.

Kod:
MsgBox WorksheetFunction.SumProduct([A1:A5<1], [A1:A5])

Bu sebeple WorksheetFunction yöntemi yerine Evalute yöntemini kullanarak sonuca gidebilirsiniz.

İdris beyde bununla ilgili örnekleri zaten verdi. İhtiyacınıza göre kullanabilirsiniz.
 
İdris bey ve Korhan bey ilgilerinize teşekkürler ederim. Anlaşılan 2007 ve altında bu sorun var. Yeni bir çözüm buluncaya kadar. aşağıdakilerden biri hariç kullanmak. Sağ olun var olun.
Kod:
Sub Makro1()

  [B1] = "=SUMPRODUCT((RC[-1]:R[5]C[-1]<1)* (RC[-1]:R[5]C[-1]))"
  
  [C1] = Evaluate("=SUMPRODUCT(--(A1:A5<1),--(A1:A5))")
  
  [COLOR="Red"][B][D1].FormulaLocal = "=SUMPRODUCT((A1:A5<1)*(A1:A5))"[/B][/COLOR]  #AD? hatası veriyor.

  [E1] = Evaluate("=SUMPRODUCT((A1:A5<1)*(A1:A5))")
 
End Sub
 
.
Sayın Vardar07,

Bunu;

Kod:
 [D1].FormulaLocal = "=SUMPRODUCT((A1:A5<1)*(A1:A5))"

Kod:
 [D1].FormulaLocal = "=TOPLA.ÇARPIM((A1:A5<1)*(A1:A5))"

şeklinde dener misiniz?

.
 
Fikrinize sağlık . Çok teşekkürler.
 
Sn. vardar07,

2016 versiyonda aynı sorun devam ediyor. Anlaşılan Microsoft bununla ilgili geliştirme yapmıyor. Ancak yeni fonksiyonlar var. Onlar kullanılabilir.

... Anlaşılan 2007 ve altında bu sorun var. Yeni bir çözüm buluncaya kadar. aşağıdakilerden biri hariç kullanmak. Sağ olun var olun.
 
Geri
Üst