OVH Cloud OVH Cloud

R1C1 & FormulaArray

2 réponses
Avatar
Quaisako
Bonsoir le Forum,

En VBA, j'essaie de la traduire cette formule matricielle.
{=$J$1-SOMMEPROD(D$2:D16*(B$2:B16<>"Nantes")*(B$2:B16<>"Bordeaux"))}

Je me rend compte que je dois absoluement passer par les "R1C1" avec un
"FormulaArray".

J'ai essayé un tas de manip, et je me plante, et sur le Net, je n'ai pas
trouvé énormément d'infos.

J'ai donc tenté avec l'enregistreur de macros, ceci:
Range("F" & Fin).FormulaArray =
"=R1C10-SUMPRODUCT(R2C[-4]:RC[-4]*(R2C[-6]:RC[-6]<>""Nantes"")*(R2C[-6]:RC[-6]<>""Bordeaux""))"

Je peux comprendre que "R1C10" = J1

mais à quoi correspond "C[-4]:" ?
Merci d'avance pour vos infos.
Jipé

2 réponses

Avatar
JB
Bonjour,

SommeProd() peut être écrite comme une formule non matricielle.

Sub essai()
Range("a1").FormulaLocal =
"=SOMMEPROD(D2:D100*(B2:B100<>""Nantes"")*(B2:B100<>""bordeaux""))"
End Sub

C[-4] spécifie une cellule 4 colonnes à gauche de la cellule où la
formule est écrite.

Cordialement JB
Avatar
Quaisako
Un très grand merci, JB!
pour ta patience, tes soluces, tes infos.

J'ai la tête dure, mais je progresse (à mon rythme) :-)))
Jipé

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

Bonjour,

SommeProd() peut être écrite comme une formule non matricielle.

Sub essai()
Range("a1").FormulaLocal "=SOMMEPROD(D2:D100*(B2:B100<>""Nantes"")*(B2:B100<>""bordeaux""))"
End Sub

C[-4] spécifie une cellule 4 colonnes à gauche de la cellule où la
formule est écrite.

Cordialement JB