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

Formule SumProduct avec variables en VBA

4 réponses
Avatar
Ellimac
Bonjour,

J'intègre une fonction SumProduct dans un module VBA et je cherche à
variabiliser le nom d'un classeur et d'une feuille. Mais cela plante en
erreur 1004.

Nom = "AV_" & Right(Year(Now), 2) & Format(Month(Now), "00") _
& " Tout.xls"
Nom2 = Left(Nom, 7)

ActiveCell = _
"=SUMPRODUCT((LEFT('[AV_0705
Tout.xls]AV_0705'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[AV_0705
Tout.xls]AV_0705'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[AV_0705
Tout.xls]AV_0705'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[AV_0705
Tout.xls]AV_0705'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[AV_0705
Tout.xls]AV_0705'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[AV_0705
Tout.xls]AV_0705'!R2C11:R5000C11)"

'essai
ActiveCell = _
"=SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 &
"'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[" & Nom & "]" & Nom2 &
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 &
"'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 &
"'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[" & Nom & "]" & Nom2 &
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2
'!R2C11:R5000C11)"
Bien sûr c'est la 2nde qui ne fonctionne pas.

Si quelqu'un a une idée ou une autre solution que ce calcul ?

Merci

Camille

4 réponses

Avatar
Daniel
Bonjour.
Essaie :

ActiveCell = _
"=SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 & _
"'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 & _
"'!R2C11:R5000C11)"

Cordialement.
Daniel
"Ellimac" a écrit dans le message de
news:
Bonjour,

J'intègre une fonction SumProduct dans un module VBA et je cherche à
variabiliser le nom d'un classeur et d'une feuille. Mais cela plante en
erreur 1004.

Nom = "AV_" & Right(Year(Now), 2) & Format(Month(Now), "00") _
& " Tout.xls"
Nom2 = Left(Nom, 7)

ActiveCell = _
"=SUMPRODUCT((LEFT('[AV_0705
Tout.xls]AV_0705'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[AV_0705
Tout.xls]AV_0705'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[AV_0705
Tout.xls]AV_0705'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[AV_0705
Tout.xls]AV_0705'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[AV_0705
Tout.xls]AV_0705'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[AV_0705
Tout.xls]AV_0705'!R2C11:R5000C11)"

'essai
ActiveCell = _
"=SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 &
"'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[" & Nom & "]" & Nom2 &
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 &
"'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 &
"'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[" & Nom & "]" & Nom2 &
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2
'!R2C11:R5000C11)"
Bien sûr c'est la 2nde qui ne fonctionne pas.

Si quelqu'un a une idée ou une autre solution que ce calcul ?

Merci

Camille



Avatar
Ellimac
Bonjour Daniel,

J'ai trouvé mon erreur un oubli de & dans la fin de formule.
Sinon il me semble qu'xl ne digère pas les renvois à la ligne dans une
formule de calcul.

Camille

"Daniel" wrote:

Bonjour.
Essaie :

ActiveCell = _
"=SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 & _
"'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 & _
"'!R2C11:R5000C11)"

Cordialement.
Daniel
"Ellimac" a écrit dans le message de
news:
Bonjour,

J'intègre une fonction SumProduct dans un module VBA et je cherche à
variabiliser le nom d'un classeur et d'une feuille. Mais cela plante en
erreur 1004.

Nom = "AV_" & Right(Year(Now), 2) & Format(Month(Now), "00") _
& " Tout.xls"
Nom2 = Left(Nom, 7)

ActiveCell = _
"=SUMPRODUCT((LEFT('[AV_0705
Tout.xls]AV_0705'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[AV_0705
Tout.xls]AV_0705'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[AV_0705
Tout.xls]AV_0705'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[AV_0705
Tout.xls]AV_0705'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[AV_0705
Tout.xls]AV_0705'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[AV_0705
Tout.xls]AV_0705'!R2C11:R5000C11)"

'essai
ActiveCell = _
"=SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 &
"'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[" & Nom & "]" & Nom2 &
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 &
"'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 &
"'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[" & Nom & "]" & Nom2 &
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2
'!R2C11:R5000C11)"
Bien sûr c'est la 2nde qui ne fonctionne pas.

Si quelqu'un a une idée ou une autre solution que ce calcul ?

Merci

Camille








Avatar
Daniel
J'ai essayé avec la formule que je t'ai retourné. Il ne doit pas y avoir de
problème tant que le renvoi n'est pas dans une zone entre guillemets.
Daniel
"Ellimac" a écrit dans le message de
news:
Bonjour Daniel,

J'ai trouvé mon erreur un oubli de & dans la fin de formule.
Sinon il me semble qu'xl ne digère pas les renvois à la ligne dans une
formule de calcul.

Camille

"Daniel" wrote:

Bonjour.
Essaie :

ActiveCell = _
"=SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 & _
"'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 & _
"'!R2C11:R5000C11)"

Cordialement.
Daniel
"Ellimac" a écrit dans le message de
news:
Bonjour,

J'intègre une fonction SumProduct dans un module VBA et je cherche à
variabiliser le nom d'un classeur et d'une feuille. Mais cela plante en
erreur 1004.

Nom = "AV_" & Right(Year(Now), 2) & Format(Month(Now), "00") _
& " Tout.xls"
Nom2 = Left(Nom, 7)

ActiveCell = _
"=SUMPRODUCT((LEFT('[AV_0705
Tout.xls]AV_0705'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[AV_0705
Tout.xls]AV_0705'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[AV_0705
Tout.xls]AV_0705'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[AV_0705
Tout.xls]AV_0705'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[AV_0705
Tout.xls]AV_0705'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[AV_0705
Tout.xls]AV_0705'!R2C11:R5000C11)"

'essai
ActiveCell = _
"=SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 &
"'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[" & Nom & "]" & Nom2 &
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 &
"'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 &
"'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[" & Nom & "]" & Nom2 &
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2
'!R2C11:R5000C11)"
Bien sûr c'est la 2nde qui ne fonctionne pas.

Si quelqu'un a une idée ou une autre solution que ce calcul ?

Merci

Camille










Avatar
Daniel
Erratum.
Lire : la formule que je t'ai retournée
;-))
Daniel
"Daniel" a écrit dans le message de news:
%
J'ai essayé avec la formule que je t'ai retourné. Il ne doit pas y avoir
de problème tant que le renvoi n'est pas dans une zone entre guillemets.
Daniel
"Ellimac" a écrit dans le message de
news:
Bonjour Daniel,

J'ai trouvé mon erreur un oubli de & dans la fin de formule.
Sinon il me semble qu'xl ne digère pas les renvois à la ligne dans une
formule de calcul.

Camille

"Daniel" wrote:

Bonjour.
Essaie :

ActiveCell = _
"=SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 & _
"'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[" & Nom & "]" & Nom2 & _
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 & _
"'!R2C11:R5000C11)"

Cordialement.
Daniel
"Ellimac" a écrit dans le message de
news:
Bonjour,

J'intègre une fonction SumProduct dans un module VBA et je cherche à
variabiliser le nom d'un classeur et d'une feuille. Mais cela plante
en
erreur 1004.

Nom = "AV_" & Right(Year(Now), 2) & Format(Month(Now), "00") _
& " Tout.xls"
Nom2 = Left(Nom, 7)

ActiveCell = _
"=SUMPRODUCT((LEFT('[AV_0705
Tout.xls]AV_0705'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[AV_0705
Tout.xls]AV_0705'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[AV_0705
Tout.xls]AV_0705'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[AV_0705
Tout.xls]AV_0705'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[AV_0705
Tout.xls]AV_0705'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[AV_0705
Tout.xls]AV_0705'!R2C11:R5000C11)"

'essai
ActiveCell = _
"=SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 &
"'!R2C4:R5000C4,LEN(RC1))=RC1)*(LEFT('[" & Nom & "]" & Nom2 &
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2 &
"'!R2C11:R5000C11)+SUMPRODUCT((LEFT('[" & Nom & "]" & Nom2 &
"'!R2C4:R5000C4,1+LEN(RC1))="" ""&RC1)*(LEFT('[" & Nom & "]" & Nom2 &
"'!R2C7:R5000C7,LEN(R4C[-1]))=R4C[-1])*'[" & Nom & "]" & Nom2
'!R2C11:R5000C11)"
Bien sûr c'est la 2nde qui ne fonctionne pas.

Si quelqu'un a une idée ou une autre solution que ce calcul ?

Merci

Camille