SUMPRODUCT incrémentée

Le
Jacky
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #23067951
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
JB
Le #23067941
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"
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
Jacky
Le #23068131
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"
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




Jacky
Le #23068111
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"
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"
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
Jacky
Le #23068101
Oupss!
"Ce que je fais actuellement"

--
Salutations
JJ


"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"
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








michdenis
Le #23068251
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
Jacky
Le #23068371
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"
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


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

MichD
--------------------------------------------
Jacky
Le #23068471
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"

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

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

Publicité
Poster une réponse
Anonyme