Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Application.WorksheetFunction.SumProduct

5 réponses
Avatar
JLuc
Bonjour les lecteurs,
Un petit gros problème dont vous seuls, artistes and co, pourrez venir
à bout.
J'ai le code suivant :

Dim sommeout
...
...
NbLignes = Range("A65536").End(xlUp).Row
sommeout = :'(Application.WorksheetFunction.SumProduct _
(Range("C1:C" & NbLignes) = "192.168.100.**", Range("F1:F" &
NbLignes))

et j'obtiens : erreur 13
"Incompatibilité de type"

Pourriez vous éclairer ma petite bougie et m'orienter vers un brin de
solution ?
Je ne suis même pas sûr que la fonction est écrite correctement :oÞ
Merci pour vos reponses

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-\O

5 réponses

Avatar
MichDenis
Il y a ceci :

Adapte le nom de la feuille
Le critère ne tient compte que des
12 premiers caractères et ne tient pas
compte des 3 derniers....

'---------------------------
Dim NbLignes As Long, Crit As String
Dim Adr1 As String, Adr2 As String
Dim SommeOut As Double

Crit = """192.168.100."""
NbLignes = 10
With Worksheets("Feuil2")
NbLignes = .Range("C1:C" & .Range("C65536").End(xlup).row)
Adr1 = .Name & "!" & Range("C1:C" & NbLignes).Address
Adr2 = .Name & "!" & Range("F1:F" & NbLignes).Address
End With
'
SommeOut = Evaluate("SUMPRODUCT((Left(" & Adr1 & ",12)=" & _
Crit & ")*(" & Adr2 & "))")

'---------------------------


"JLuc" a écrit dans le message de news:

Bonjour les lecteurs,
Un petit gros problème dont vous seuls, artistes and co, pourrez venir
à bout.
J'ai le code suivant :

Dim sommeout
...
...
NbLignes = Range("A65536").End(xlUp).Row
sommeout = :'(Application.WorksheetFunction.SumProduct _
(Range("C1:C" & NbLignes) = "192.168.100.**", Range("F1:F" &
NbLignes))

et j'obtiens : erreur 13
"Incompatibilité de type"

Pourriez vous éclairer ma petite bougie et m'orienter vers un brin de
solution ?
Je ne suis même pas sûr que la fonction est écrite correctement :oÞ
Merci pour vos reponses

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O
Avatar
JLuc
*Bonjour MichDenis*,
J'ai essayé ta methode, mais j'ai pas réussi à la faire marcher :/
Je vais reéssayer pour pas paraître ridicule :')
Mais, autrement, je m'en suis tiré avec une pirouette :

Range("A1").AutoFilter Field:=2, Criteria1:="<>192.168.100.**",
Operator:=xlAnd
resultatout = Application.WorksheetFunction.Subtotal(9, Range("F:F"))

Cà me donne le résultat escompté.
Merci quand même pour tes lumières. J'essaye de faire marcher ta proc
et te tiens au courrant

Il y a ceci :

Adapte le nom de la feuille
Le critère ne tient compte que des
12 premiers caractères et ne tient pas
compte des 3 derniers....

'---------------------------
Dim NbLignes As Long, Crit As String
Dim Adr1 As String, Adr2 As String
Dim SommeOut As Double

Crit = """192.168.100."""
NbLignes = 10
With Worksheets("Feuil2")
NbLignes = .Range("C1:C" & .Range("C65536").End(xlup).row)
Adr1 = .Name & "!" & Range("C1:C" & NbLignes).Address
Adr2 = .Name & "!" & Range("F1:F" & NbLignes).Address
End With
'
SommeOut = Evaluate("SUMPRODUCT((Left(" & Adr1 & ",12)=" & _
Crit & ")*(" & Adr2 & "))")

'---------------------------


"JLuc" a écrit dans le message de news:

Bonjour les lecteurs,
Un petit gros problème dont vous seuls, artistes and co, pourrez venir
à bout.
J'ai le code suivant :

Dim sommeout
...
...
NbLignes = Range("A65536").End(xlUp).Row
sommeout = :'(Application.WorksheetFunction.SumProduct _
(Range("C1:C" & NbLignes) = "192.168.100.**", Range("F1:F" &
NbLignes))

et j'obtiens : erreur 13
"Incompatibilité de type"

Pourriez vous éclairer ma petite bougie et m'orienter vers un brin de
solution ?
Je ne suis même pas sûr que la fonction est écrite correctement :oÞ
Merci pour vos reponses


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
MichDenis
Critère du filtre : Criteria1:="<>192.168.100.**",

Critère de sommeprod : 2.168.100.**"

Ce serait surprenant que cela donne le même résultat !

As-tu essayé de modifier la formule comme ceci :

SommeOut = Evaluate("SUMPRODUCT((Left(" & Adr1 & ",12)<>" & _
Crit & ")*(" & Adr2 & "))")

En autant que tu as trouvé la solution qui te va....




"JLuc" a écrit dans le message de news:

*Bonjour MichDenis*,
J'ai essayé ta methode, mais j'ai pas réussi à la faire marcher :/
Je vais reéssayer pour pas paraître ridicule :')
Mais, autrement, je m'en suis tiré avec une pirouette :

Range("A1").AutoFilter Field:=2, Criteria1:="<>192.168.100.**",
Operator:=xlAnd
resultatout = Application.WorksheetFunction.Subtotal(9, Range("F:F"))

Cà me donne le résultat escompté.
Merci quand même pour tes lumières. J'essaye de faire marcher ta proc
et te tiens au courrant

Il y a ceci :

Adapte le nom de la feuille
Le critère ne tient compte que des
12 premiers caractères et ne tient pas
compte des 3 derniers....

'---------------------------
Dim NbLignes As Long, Crit As String
Dim Adr1 As String, Adr2 As String
Dim SommeOut As Double

Crit = """192.168.100."""
NbLignes = 10
With Worksheets("Feuil2")
NbLignes = .Range("C1:C" & .Range("C65536").End(xlup).row)
Adr1 = .Name & "!" & Range("C1:C" & NbLignes).Address
Adr2 = .Name & "!" & Range("F1:F" & NbLignes).Address
End With
'
SommeOut = Evaluate("SUMPRODUCT((Left(" & Adr1 & ",12)=" & _
Crit & ")*(" & Adr2 & "))")

'---------------------------


"JLuc" a écrit dans le message de news:

Bonjour les lecteurs,
Un petit gros problème dont vous seuls, artistes and co, pourrez venir
à bout.
J'ai le code suivant :

Dim sommeout
...
...
NbLignes = Range("A65536").End(xlUp).Row
sommeout = :'(Application.WorksheetFunction.SumProduct _
(Range("C1:C" & NbLignes) = "192.168.100.**", Range("F1:F" &
NbLignes))

et j'obtiens : erreur 13
"Incompatibilité de type"

Pourriez vous éclairer ma petite bougie et m'orienter vers un brin de
solution ?
Je ne suis même pas sûr que la fonction est écrite correctement :oÞ
Merci pour vos reponses


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
JLuc
*ReBonjour MichDenis*,

Tu as commis une petite erreur que j'ai eu du mal à trouvé :
NbLignes = .Range("C1:C" & .Range("C65536").End(xlup).row)
j'ai corrigé comme çà :

NBlignes = .Range("C65536").End(xlUp).Row

Ensuite, pour le Evaluate, j'ai Erreur 13 incompatibilité de type, et
là, je vois pas.En mettant un espion, çà devrait évéluer :

"SUMPRODUCT((Left(MTNA Report 2006-10-02
12h00!$C$1:$C$430,12)="192.168.100.")*(MTNA Report 2006-10-02
12h00!$F$1:$F$430))"

En une seule ligne

Il y a ceci :

Adapte le nom de la feuille
Le critère ne tient compte que des
12 premiers caractères et ne tient pas
compte des 3 derniers....

'---------------------------
Dim NbLignes As Long, Crit As String
Dim Adr1 As String, Adr2 As String
Dim SommeOut As Double

Crit = """192.168.100."""
NbLignes = 10
With Worksheets("Feuil2")
NbLignes = .Range("C1:C" & .Range("C65536").End(xlup).row)
Adr1 = .Name & "!" & Range("C1:C" & NbLignes).Address
Adr2 = .Name & "!" & Range("F1:F" & NbLignes).Address
End With
'
SommeOut = Evaluate("SUMPRODUCT((Left(" & Adr1 & ",12)=" & _
Crit & ")*(" & Adr2 & "))")

'---------------------------


"JLuc" a écrit dans le message de news:

Bonjour les lecteurs,
Un petit gros problème dont vous seuls, artistes and co, pourrez venir
à bout.
J'ai le code suivant :

Dim sommeout
...
...
NbLignes = Range("A65536").End(xlUp).Row
sommeout = :'(Application.WorksheetFunction.SumProduct _
(Range("C1:C" & NbLignes) = "192.168.100.**", Range("F1:F" &
NbLignes))

et j'obtiens : erreur 13
"Incompatibilité de type"

Pourriez vous éclairer ma petite bougie et m'orienter vers un brin de
solution ?
Je ne suis même pas sûr que la fonction est écrite correctement :oÞ
Merci pour vos reponses


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
JLuc
*ReReBonjour MichDenis*, lol
J'ai enlever la declaration de SommeOut, pour voir. En espion, SommeOut
est égale à "Erreur 2015" :-?

Il y a ceci :

Adapte le nom de la feuille
Le critère ne tient compte que des
12 premiers caractères et ne tient pas
compte des 3 derniers....

'---------------------------
Dim NbLignes As Long, Crit As String
Dim Adr1 As String, Adr2 As String
Dim SommeOut As Double

Crit = """192.168.100."""
NbLignes = 10
With Worksheets("Feuil2")
NbLignes = .Range("C1:C" & .Range("C65536").End(xlup).row)
Adr1 = .Name & "!" & Range("C1:C" & NbLignes).Address
Adr2 = .Name & "!" & Range("F1:F" & NbLignes).Address
End With
'
SommeOut = Evaluate("SUMPRODUCT((Left(" & Adr1 & ",12)=" & _
Crit & ")*(" & Adr2 & "))")

'---------------------------


"JLuc" a écrit dans le message de news:

Bonjour les lecteurs,
Un petit gros problème dont vous seuls, artistes and co, pourrez venir
à bout.
J'ai le code suivant :

Dim sommeout
...
...
NbLignes = Range("A65536").End(xlUp).Row
sommeout = :'(Application.WorksheetFunction.SumProduct _
(Range("C1:C" & NbLignes) = "192.168.100.**", Range("F1:F" &
NbLignes))

et j'obtiens : erreur 13
"Incompatibilité de type"

Pourriez vous éclairer ma petite bougie et m'orienter vers un brin de
solution ?
Je ne suis même pas sûr que la fonction est écrite correctement :oÞ
Merci pour vos reponses


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O