Merhaba,
Yaptığım bir çalışmada Topla.çarpım (SumProduct) fonksiyonunu kullanmam gerekiyor. Ancak fonksiyonun hangi sayfadaki veriyi alacağını bir Combobox üzerinden getirmem gerekiyor. Ayrıca getirilecek değerlerin bulunacağı sütunu da değişkenden getireceğim için R1C1 başvuru sitili kullanmaya karar verdim.
Ancak ne yazık ki istediğim formülü kurabilmeme rağmen kod "Type mismatch" hatası veriyor.
Kod aşağıdadır.
Kodun içinde geçen Cmb_Proje bir combobox ve içinde sayfa adları var. O kısımda hiçbir sorun olmadığını biliyorum.
Kodda yer alan SumProduct fonksiyonunu formül olarak değil de string olarak bir hücreye aldığımda ve bu stringi olduğu gibi (değişkensiz) yeni bir makroda çalıştırdığımda hiçbir hata almıyorum. O kod da aşağıda:
Sitede arattım, hatta SumProduct fonksiyonunun VBA projelerinde kullanımını açıklayan güzel bir yazıyı da Üyelere Özel bölümünün altında buldum. Ancak orada belirtilenleri de denememe rağmen sonuç hep aynı oldu.
Yardımcı olabilirseniz sevinirim.
Yaptığım bir çalışmada Topla.çarpım (SumProduct) fonksiyonunu kullanmam gerekiyor. Ancak fonksiyonun hangi sayfadaki veriyi alacağını bir Combobox üzerinden getirmem gerekiyor. Ayrıca getirilecek değerlerin bulunacağı sütunu da değişkenden getireceğim için R1C1 başvuru sitili kullanmaya karar verdim.
Ancak ne yazık ki istediğim formülü kurabilmeme rağmen kod "Type mismatch" hatası veriyor.
Kod aşağıdadır.
Kod:
Sub FncVeriAlaniEkleLst(VeriTuru As String)
Dim Bassat As Integer, Bitsat As Long, Bassut As Integer, Bitsut As Integer, a As Long, b As Long, ProjeKriteri As String
Dim Sayfa As Worksheet, SSayfa As Worksheet
'
Bassat = 11: Bitsat = 2000
For Each SSayfa In Worksheets
If SSayfa.Name = Cmb_Rapor.Value Then
Set Sayfa = SSayfa
Exit For
End If
Next
'
If VeriTuru = "B" Then
Bassut = 53: Bitsut = 103
Else
Bassut = 105: Bitsut = 155
End If
'
If Cmb_Proje.Value = "Konsolide" Or Cmb_Proje.Value = "Genel Merkez" Then
ProjeKriteri = Cmb_Rapor.Value & "!R" & Bassat & "C2:R" & Bitsat & "C2<>""""" & Cmb_Proje.Value & """"""
Else
ProjeKriteri = Cmb_Rapor.Value & "!R" & Bassat & "C2:R" & Bitsat & "C2=""""" & Cmb_Proje.Value & """"""
End If
'
For a = Bassut To Bitsut
If Sayfa.Cells(10, a) <> "" Then
MsgBox Evaluate("=SumProduct((" & ProjeKriteri & ")*(1=1)*(" & Cmb_Rapor.Value & "!R" & Bassat & "C" & a & ":R" & Bitsat & "C" & a & "))")
End If
Next a
End Sub
Kodun içinde geçen Cmb_Proje bir combobox ve içinde sayfa adları var. O kısımda hiçbir sorun olmadığını biliyorum.
Kodda yer alan SumProduct fonksiyonunu formül olarak değil de string olarak bir hücreye aldığımda ve bu stringi olduğu gibi (değişkensiz) yeni bir makroda çalıştırdığımda hiçbir hata almıyorum. O kod da aşağıda:
Kod:
Sub Macro1()
Range("AA15").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Sayfa1!R11C2:R2000C2=""Girişler"")*(1=1)*(Sayfa1!R11C105:R2000C105))"
End Sub
Sitede arattım, hatta SumProduct fonksiyonunun VBA projelerinde kullanımını açıklayan güzel bir yazıyı da Üyelere Özel bölümünün altında buldum. Ancak orada belirtilenleri de denememe rağmen sonuç hep aynı oldu.
Yardımcı olabilirseniz sevinirim.
