Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciai ringhio1975,
ho un problema con la formula in oggetto; la sintassi che ho provato è la seguente:
x= = Evaluate("=sumproduct(--(range(cells(2,4).address & "":"" & cells(var3,4).address), =""PH"")&--(range(cells(2,6).address & "":"" cells(var3,6.address), <>""PH"")");
mi restituisce #valore come risultato, c'è un' errore nella mia sintassi?
Credo che talvolta valga la pena essere verboso e rende la vita più semplice!
Quindi, prova qualcosa del genere:
'=========>>
Option Explicit
'--------->>
Public Sub Tester()
Dim SH As Worksheet
Dim Rng1 As Range, Rng2 As Range
Dim X As Variant
Dim sAdd1 As String, sAdd2 As String
Dim sStr As String
Const sFoglio As String = "Foglio1"
Const DQUOTE = """" ' \ Un carattere "
Const sCriterio As String = "PH"
Const var3 = 8'\ ad esempio
Set SH = ThisWorkbook.Sheets(sFoglio)
With SH
Set Rng1 = .Range(.Cells(2, 4), .Cells(var3, 4))
Set Rng2 = .Range(.Cells(2, 6), .Cells(var3, 6))
End With
sAdd1 = Rng1.Address
sAdd2 = Rng2.Address
sStr = "=SUMPRODUCT(--(" & sAdd1 & "=" _
& DQUOTE & sCriterio & DQUOTE _
& "),--(" & sAdd2 & "=" _
& DQUOTE & sCriterio & DQUOTE & "))"
X = Evaluate(sStr)
End Sub
'<<=========
Nota che, per evitare eventuali problemi dovuto a quale foglio dovesse essere attivo, ho esplicitamente qualificato tutti gli intervalli.
===
Regards,
Norman