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

SUMPRODUCT incrémentée

9 réponses
Avatar
Jacky
Bonjour en cette journée ensoleillée

J'ai ceci
derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 =Cells(Rows.Count, 3).End(3).Row
Range("d2:d" & derlg1).Formula = "=SUMPRODUCT((" & Range("b2:b" & derlg).Address & "=c2)*1)"
qui me donne bien en "d2:derlg" la formule
=SOMMEPROD(($B$2:$B$2100=C2)*1)
=SOMMEPROD(($B$2:$B$2100=C3)*1)
-----
-----
=SOMMEPROD(($B$2:$B$2100=C20)*1)

Je cherche à mettre le resultat à la place de la formule (sans boucle)
J'ai testé "Evaluate" sous plusieurs forme sans succès

A l'impossible nul n'est tenu ??
Ou est-ce mon neurone
--
Salutations
JJ

9 réponses

Avatar
DanielCo
Bonjour.
derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 = Cells(Rows.Count, 3).End(3).Row
Range("d2:d" & derlg1).FormulaR1C1 = "=SUMPRODUCT((" & _
Range("bd2:b" & derlg).Address(, , xlR1C1) & "=" & _
ActiveCell.Offset(, -1).Address(, , xlR1C1) & ")*1)"
Cordialement.
Daniel


Bonjour en cette journée ensoleillée

J'ai ceci
derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 Îlls(Rows.Count, 3).End(3).Row
Range("d2:d" & derlg1).Formula = "=SUMPRODUCT((" & Range("b2:b" &
derlg).Address & "Â)*1)"
qui me donne bien en "d2:derlg" la formule
=SOMMEPROD(($B$2:$B$2100Â)*1)
=SOMMEPROD(($B$2:$B$2100Ã)*1)
-----
-----
=SOMMEPROD(($B$2:$B$2100Â0)*1)

Je cherche à mettre le resultat à la place de la formule (sans boucle)
J'ai testé "Evaluate" sous plusieurs forme sans succès

A l'impossible nul n'est tenu ??
Ou est-ce mon neurone
Avatar
JB
Bonjour,

derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 = Cells(Rows.Count, 3).End(3).Row
For lig = 2 To derlg1
Cells(lig, 4).Value = Evaluate("=SUMPRODUCT((" & Range("b2:b" &
derlg).Address & "=c" & lig & ")*1)")
Next

JB
http://boisgontierjacques.free.fr/

On 30 jan, 11:34, "Jacky" wrote:
Bonjour en cette journée ensoleillée

J'ai ceci
derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 Îlls(Rows.Count, 3).End(3).Row
Range("d2:d" & derlg1).Formula = "=SUMPRODUCT((" & Range("b2:b" & der lg).Address & "Â)*1)"
qui me donne bien en "d2:derlg"  la formule
=SOMMEPROD(($B$2:$B$2100Â)*1)
=SOMMEPROD(($B$2:$B$2100Ã)*1)
-----
-----
=SOMMEPROD(($B$2:$B$2100Â0)*1)

Je cherche à mettre le resultat à la place de la formule (sans boucle )
J'ai testé "Evaluate" sous plusieurs forme sans succès

A l'impossible nul n'est tenu ??
Ou est-ce mon neurone
--
Salutations
JJ
Avatar
Jacky
Bonjour Daniel

Ta proposition retourne une formule dans la plage (ce que je fait actuellement)
=SOMMEPROD(($B$2:$B$2100=$C$4)*1)
Avec une référence absolue "$C$4"
Je suppose une erreur de frappe en "** Range("bd2:b" & derlg).Address **"

Or je souhaite le resultat de la formule dans la plage
Je cherche à mettre le resultat à la place de la formule (sans boucle)






--
Salutations
JJ


"DanielCo" a écrit dans le message de news: ii3hp4$kv2$
Bonjour.
derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 = Cells(Rows.Count, 3).End(3).Row
Range("d2:d" & derlg1).FormulaR1C1 = "=SUMPRODUCT((" & _
Range("bd2:b" & derlg).Address(, , xlR1C1) & "=" & _
ActiveCell.Offset(, -1).Address(, , xlR1C1) & ")*1)"
Cordialement.
Daniel


Bonjour en cette journée ensoleillée

J'ai ceci
derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 Îlls(Rows.Count, 3).End(3).Row
Range("d2:d" & derlg1).Formula = "=SUMPRODUCT((" & Range("b2:b" & derlg).Address & "Â)*1)"
qui me donne bien en "d2:derlg" la formule
=SOMMEPROD(($B$2:$B$2100Â)*1)
=SOMMEPROD(($B$2:$B$2100Ã)*1)
-----
-----
=SOMMEPROD(($B$2:$B$2100Â0)*1)

Je cherche à mettre le resultat à la place de la formule (sans boucle)
J'ai testé "Evaluate" sous plusieurs forme sans succès

A l'impossible nul n'est tenu ??
Ou est-ce mon neurone




Avatar
Jacky
Bonjour Jacques

Certes oui !
A la boucle je préfère un copier / collage spécial ==> valeurs
Ce que j'utilise actuellement
Mais mon souhait serait
Je cherche à mettre le resultat à la place de la formule (sans boucle)




Dois-je en conclure que ce n'est pas possible ?

--
Salutations
JJ


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

Bonjour,

derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 = Cells(Rows.Count, 3).End(3).Row
For lig = 2 To derlg1
Cells(lig, 4).Value = Evaluate("=SUMPRODUCT((" & Range("b2:b" &
derlg).Address & "=c" & lig & ")*1)")
Next

JB
http://boisgontierjacques.free.fr/

On 30 jan, 11:34, "Jacky" wrote:
Bonjour en cette journée ensoleillée

J'ai ceci
derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 Îlls(Rows.Count, 3).End(3).Row
Range("d2:d" & derlg1).Formula = "=SUMPRODUCT((" & Range("b2:b" & derlg).Address & "Â)*1)"
qui me donne bien en "d2:derlg" la formule
=SOMMEPROD(($B$2:$B$2100Â)*1)
=SOMMEPROD(($B$2:$B$2100Ã)*1)
-----
-----
=SOMMEPROD(($B$2:$B$2100Â0)*1)

Je cherche à mettre le resultat à la place de la formule (sans boucle)
J'ai testé "Evaluate" sous plusieurs forme sans succès

A l'impossible nul n'est tenu ??
Ou est-ce mon neurone
--
Salutations
JJ
Avatar
Jacky
Oupss!
"Ce que je fais actuellement"

--
Salutations
JJ


"Jacky" a écrit dans le message de news: ii3jao$ou2$
Bonjour Daniel

Ta proposition retourne une formule dans la plage (ce que je fait actuellement)
=SOMMEPROD(($B$2:$B$2100=$C$4)*1)
Avec une référence absolue "$C$4"
Je suppose une erreur de frappe en "** Range("bd2:b" & derlg).Address **"

Or je souhaite le resultat de la formule dans la plage
Je cherche à mettre le resultat à la place de la formule (sans boucle)






--
Salutations
JJ


"DanielCo" a écrit dans le message de news: ii3hp4$kv2$
Bonjour.
derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 = Cells(Rows.Count, 3).End(3).Row
Range("d2:d" & derlg1).FormulaR1C1 = "=SUMPRODUCT((" & _
Range("bd2:b" & derlg).Address(, , xlR1C1) & "=" & _
ActiveCell.Offset(, -1).Address(, , xlR1C1) & ")*1)"
Cordialement.
Daniel


Bonjour en cette journée ensoleillée

J'ai ceci
derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 Îlls(Rows.Count, 3).End(3).Row
Range("d2:d" & derlg1).Formula = "=SUMPRODUCT((" & Range("b2:b" & derlg).Address & "Â)*1)"
qui me donne bien en "d2:derlg" la formule
=SOMMEPROD(($B$2:$B$2100Â)*1)
=SOMMEPROD(($B$2:$B$2100Ã)*1)
-----
-----
=SOMMEPROD(($B$2:$B$2100Â0)*1)

Je cherche à mettre le resultat à la place de la formule (sans boucle)
J'ai testé "Evaluate" sous plusieurs forme sans succès

A l'impossible nul n'est tenu ??
Ou est-ce mon neurone








Avatar
michdenis
Bonjour,

Si j'ai compris, tu n'étais pas très loin de la solution :

même en VBA, on peut désigner le caractère absolu ou relatif
d'une adresse comme dans Range("C2").Address(0, 0) qui est
une adresse relative. Lors de la copie, cette dernière s'incrémente
comme si tu la copiais directement dans ta plage de cellule en
tirant vers le bas...

'--------------------------------------
With Range("d2:d" & derlg1)
.Formula = "=SUMPRODUCT((" & Range("b2:b" & derlg).Address & "=" _
& Range("C2").Address(0, 0) & ")*1)"
End With
'--------------------------------------


MichD
--------------------------------------------
"Jacky" a écrit dans le message de groupe de discussion : ii3er1$eei$

Bonjour en cette journée ensoleillée

J'ai ceci
derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 Îlls(Rows.Count, 3).End(3).Row
Range("d2:d" & derlg1).Formula = "=SUMPRODUCT((" & Range("b2:b" & derlg).Address & "Â)*1)"
qui me donne bien en "d2:derlg" la formule
=SOMMEPROD(($B$2:$B$2100Â)*1)
=SOMMEPROD(($B$2:$B$2100Ã)*1)
-----
-----
=SOMMEPROD(($B$2:$B$2100Â0)*1)

Je cherche à mettre le resultat à la place de la formule (sans boucle)
J'ai testé "Evaluate" sous plusieurs forme sans succès

A l'impossible nul n'est tenu ??
Ou est-ce mon neurone
--
Salutations
JJ
Avatar
Jacky
Bonjour Denis

Ta proposition donne exactement le même résultat que ce que je fais actuellement.
Je ne sais pas ce qui se passe ce jour, mais ni toi , ni Daniel, ni Jacques n'avaient réellement compris ce
que je souhaite.
Ce doit être moi qui m'explique mal ;o))
Je souhaite mettre le resultat (pas la formule) dans la plage (sans faire de boucle)

Actuellement, j'y place la formule et je fais un copier / collage spécial==>valeurs
Ainsi j'obtiens ce que je veux, mais je voulais savoir si je peux me passer de ce collage spécial
Ce qui n'est peut-être pas possible.....

--
Salutations
JJ


"michdenis" a écrit dans le message de news: ii3ktq$srt$
Bonjour,

Si j'ai compris, tu n'étais pas très loin de la solution :

même en VBA, on peut désigner le caractère absolu ou relatif
d'une adresse comme dans Range("C2").Address(0, 0) qui est
une adresse relative. Lors de la copie, cette dernière s'incrémente
comme si tu la copiais directement dans ta plage de cellule en
tirant vers le bas...

'--------------------------------------
With Range("d2:d" & derlg1)
.Formula = "=SUMPRODUCT((" & Range("b2:b" & derlg).Address & "=" _
& Range("C2").Address(0, 0) & ")*1)"
End With
'--------------------------------------


MichD
--------------------------------------------
"Jacky" a écrit dans le message de groupe de discussion : ii3er1$eei$

Bonjour en cette journée ensoleillée

J'ai ceci
derlg = Cells(Rows.Count, 2).End(3).Row
derlg1 Îlls(Rows.Count, 3).End(3).Row
Range("d2:d" & derlg1).Formula = "=SUMPRODUCT((" & Range("b2:b" & derlg).Address & "Â)*1)"
qui me donne bien en "d2:derlg" la formule
=SOMMEPROD(($B$2:$B$2100Â)*1)
=SOMMEPROD(($B$2:$B$2100Ã)*1)
-----
-----
=SOMMEPROD(($B$2:$B$2100Â0)*1)

Je cherche à mettre le resultat à la place de la formule (sans boucle)
J'ai testé "Evaluate" sous plusieurs forme sans succès

A l'impossible nul n'est tenu ??
Ou est-ce mon neurone
--
Salutations
JJ


Avatar
michdenis
With Range("d2:d" & derlg1)
.Formula = "=SUMPRODUCT((" & Range("b2:b" & derlg).Address & "=" _
& Range("C2").Address(0, 0) & ")*1)"
.value = .value '<====== à ajouter
End With

MichD
--------------------------------------------
Avatar
Jacky
Parfait, merci Denis
D'ou le (grand) intérêt du "With"
Dire que je cherche depuis 2 heures

"news.aioe.org" encore en rade pour l'envoi

--
Salutations
JJ


"michdenis" a écrit dans le message de news: ii3msp$1tj$

With Range("d2:d" & derlg1)
.Formula = "=SUMPRODUCT((" & Range("b2:b" & derlg).Address & "=" _
& Range("C2").Address(0, 0) & ")*1)"
.value = .value '<====== à ajouter
End With

MichD
--------------------------------------------