Formule SumProduct avec variables en VBA

Le
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
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
Daniel
Le #4528571
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" 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



Ellimac
Le #4528551
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" 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








Daniel
Le #4528121
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" 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" 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










Daniel
Le #4528101
Erratum.
Lire : la formule que je t'ai retournée
;-))
Daniel
"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" 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" 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














Publicité
Poster une réponse
Anonyme