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

SOMMEPROD et ESTREF

8 réponses
Avatar
billy bob
Bonjour,

je souhaite faire la somme de cellules r=E9parties sur plusieurs
feuilles,

les feuilles concern=E9es de mon classeur sont list=E9es dans une colonne
A avec possibilit=E9 de valeur vide et je les appelle avec une fonction
INDIRECT =E0 l'int=E9rieur d'un sommeprod :
=3DSOMMEPROD(SOMME.SI(INDIRECT($A1:$A20&"!D22");"<>0"))
Jusqu'ici tout va bien
(presque puisque je ne comprend pas pourquoi je ne peux obtenir la
somme qu'en passant par un SOMME.SI...)

Le probl=E8me r=E9side dans le fait que je peux avoir une cellule vide au
milieu, l'indirect ne renvoie donc nulle part et la formule plante, je
voudrais donc int=E9grer une condition NON(ESTREF()), =E9ventuellement =E0
la place du "<>0" qui ne me sert en r=E9alit=E9 =E0 rien.

L=E0 je coince, apr=E8s avoir essay=E9 tellement de choses que je ne me
souviens plus de tout.

Si quelqu'un a une piste, d'avance merci.

Billy Bob

8 réponses

Avatar
Fredo P.
Bonjour Billy
Chez moi je n'ai pas ce pb (xl97) pour une cellule vide, par contre pour une
cellule d'erreur, ça renvoit l'erreur.

"billy bob" a écrit dans le message de news:

Bonjour,

je souhaite faire la somme de cellules réparties sur plusieurs
feuilles,

les feuilles concernées de mon classeur sont listées dans une colonne
A avec possibilité de valeur vide et je les appelle avec une fonction
INDIRECT à l'intérieur d'un sommeprod :
=SOMMEPROD(SOMME.SI(INDIRECT($A1:$A20&"!D22");"<>0"))
Jusqu'ici tout va bien
(presque puisque je ne comprend pas pourquoi je ne peux obtenir la
somme qu'en passant par un SOMME.SI...)

Le problème réside dans le fait que je peux avoir une cellule vide au
milieu, l'indirect ne renvoie donc nulle part et la formule plante, je
voudrais donc intégrer une condition NON(ESTREF()), éventuellement à
la place du "<>0" qui ne me sert en réalité à rien.

Là je coince, après avoir essayé tellement de choses que je ne me
souviens plus de tout.

Si quelqu'un a une piste, d'avance merci.

Billy Bob
Avatar
Fredo P.
Bonjour Billy
Chez moi je n'ai pas ce pb (xl97) pour une cellule vide, par contre pour une
cellule d'erreur, ça renvoie l'erreur.

"billy bob" a écrit dans le message de news:

Bonjour,

je souhaite faire la somme de cellules réparties sur plusieurs
feuilles,

les feuilles concernées de mon classeur sont listées dans une colonne
A avec possibilité de valeur vide et je les appelle avec une fonction
INDIRECT à l'intérieur d'un sommeprod :
=SOMMEPROD(SOMME.SI(INDIRECT($A1:$A20&"!D22");"<>0"))
Jusqu'ici tout va bien
(presque puisque je ne comprend pas pourquoi je ne peux obtenir la
somme qu'en passant par un SOMME.SI...)

Le problème réside dans le fait que je peux avoir une cellule vide au
milieu, l'indirect ne renvoie donc nulle part et la formule plante, je
voudrais donc intégrer une condition NON(ESTREF()), éventuellement à
la place du "<>0" qui ne me sert en réalité à rien.

Là je coince, après avoir essayé tellement de choses que je ne me
souviens plus de tout.

Si quelqu'un a une piste, d'avance merci.

Billy Bob
Avatar
Fredo P.
Celle ci a l'air et la musique de ne pas tenir compte des cellules d'erreur
=SOMMEPROD(SOMME.SI(INDIRECT($F3:$F5&"!D2");">0";INDIRECT($F3:$F5&"!D2")))
"billy bob" a écrit dans le message de news:

Bonjour,

je souhaite faire la somme de cellules réparties sur plusieurs
feuilles,

les feuilles concernées de mon classeur sont listées dans une colonne
A avec possibilité de valeur vide et je les appelle avec une fonction
INDIRECT à l'intérieur d'un sommeprod :
=SOMMEPROD(SOMME.SI(INDIRECT($A1:$A20&"!D22");"<>0"))
Jusqu'ici tout va bien
(presque puisque je ne comprend pas pourquoi je ne peux obtenir la
somme qu'en passant par un SOMME.SI...)

Le problème réside dans le fait que je peux avoir une cellule vide au
milieu, l'indirect ne renvoie donc nulle part et la formule plante, je
voudrais donc intégrer une condition NON(ESTREF()), éventuellement à
la place du "<>0" qui ne me sert en réalité à rien.

Là je coince, après avoir essayé tellement de choses que je ne me
souviens plus de tout.

Si quelqu'un a une piste, d'avance merci.

Billy Bob
Avatar
billy bob
Bonjour Fredo

Merci pour ta recherche,
effectivement j'ai oublié de préciser que je suis en version Excel
2003.

Et en relisant ton message je m'aperçoit que j'ai peut être mal
expliqué un point :
la potentielle cellule vide qui me pose problême n'est pas dans les
autres feuilles, mais dans la liste de la colonne A
Je ne sais pas si c'était bien ça que tu avais compris.

Quoi qu'il en soit (je doute de tout sur ce pb), après avoir fait
l'essai ta formule ne supporte pas ce cas de figure, mais merci quand
même.

De mon côté je continue à chercher (j'ai une usine à gaz en tête)

Billy Bob


On 13 mar, 11:10, "Fredo P."
wrote:
Celle ci a l'air et la musique de ne pas tenir compte des cellules d'erreu r
=SOMMEPROD(SOMME.SI(INDIRECT($F3:$F5&"!D2");">0";INDIRECT($F3:$F5&"!D2") ))
"billy bob" a écrit dans le message de news:

Bonjour,

je souhaite faire la somme de cellules réparties sur plusieurs
feuilles,

les feuilles concernées de mon classeur sont listées dans une colonne
A avec possibilité de valeur vide et je les appelle avec une fonction
INDIRECT à l'intérieur d'un sommeprod :
=SOMMEPROD(SOMME.SI(INDIRECT($A1:$A20&"!D22");"<>0"))
Jusqu'ici tout va bien
(presque puisque je ne comprend pas pourquoi je ne peux obtenir la
somme qu'en passant par un SOMME.SI...)

Le problème réside dans le fait que je peux avoir une cellule vide au
milieu, l'indirect ne renvoie donc nulle part et la formule plante, je
voudrais donc intégrer une condition NON(ESTREF()), éventuellement à
la place du "<>0" qui ne me sert en réalité à rien.

Là je coince, après avoir essayé tellement de choses que je ne me
souviens plus de tout.

Si quelqu'un a une piste, d'avance merci.

Billy Bob


Avatar
Fredo P.
--



Sans les berouettes
"billy bob" a écrit dans le message de news:

Bonjour Fredo

Merci pour ta recherche,
effectivement j'ai oublié de préciser que je suis en version Excel
2003.

Et en relisant ton message je m'aperçoit que j'ai peut être mal
expliqué un point :
la potentielle cellule vide qui me pose problême n'est pas dans les
autres feuilles, mais dans la liste de la colonne A
Je ne sais pas si c'était bien ça que tu avais compris.

Effectivement je n'étais pas sur la bonne piste.
Je ne vois plus que cette solution: AV! ohé AV! ohé AV! ohé AV! ohé AV!!!!
Avatar
billy bob
En désespoir de cause:

J'obtiens presque le résultat voulu en utilisant la formule

=SOMME(SI(ESTVIDE(A1:A20);0;INDIRECT(A1:A20&"!D22")))
validé en matriciel (ctrl alt entrée)

au détail près que le résultat correspond en fait au nombre de cellule
non vide en A multiplié par la valeur en D22 de la première feuille,
ce qui devient catastrophique d'ailleurs lorsque A1 est vide

même résultat avec
=SOMMEPROD(SI(ESTVIDE($A$54:$A$56);0;INDIRECT($A$54:$A$56& "!D22"))*1)
aussi validé avec ctrl alt entrée.

Si quelqu'un voit une solution, grand merci d'avance.

Billy Bob


On 13 mar, 14:03, "Fredo P."
wrote:
--


Sans les berouettes
"billy bob" a écrit dans le message de news:

Bonjour Fredo

Merci pour ta recherche,
effectivement j'ai oublié de préciser que je suis en version Excel
2003.

Et en relisant ton message je m'aperçoit que j'ai peut être mal
expliqué un point :
la potentielle cellule vide qui me pose problême n'est pas dans les
autres feuilles, mais dans la liste de la colonne A
Je ne sais pas si c'était bien ça que tu avais compris.

Effectivement je n'étais pas sur la bonne piste.
Je ne vois plus que cette solution: AV! ohé AV! ohé AV! ohé AV! oh é AV!!!!


Avatar
Fredo P.
Ou cette soluce en vba, à toi d'y affecter un bouton de commande ou autre
méthode
Public Sub Addition()
Application.ScreenUpdating = False
Dim Res!, c As Object
Res = 0
For Each c In Sheets("Feuil1").Range("A1:A30")
If c.Value <> "" Then
Res = Res + Evaluate("=" & c.Value & "!D22")
End If
Next c
[D5] = Res
End Sub


Sans les berouettes
"billy bob" a écrit dans le message de news:

En désespoir de cause:

J'obtiens presque le résultat voulu en utilisant la formule

=SOMME(SI(ESTVIDE(A1:A20);0;INDIRECT(A1:A20&"!D22")))
validé en matriciel (ctrl alt entrée)

au détail près que le résultat correspond en fait au nombre de cellule
non vide en A multiplié par la valeur en D22 de la première feuille,
ce qui devient catastrophique d'ailleurs lorsque A1 est vide

même résultat avec
=SOMMEPROD(SI(ESTVIDE($A$54:$A$56);0;INDIRECT($A$54:$A$56& "!D22"))*1)
aussi validé avec ctrl alt entrée.

Si quelqu'un voit une solution, grand merci d'avance.

Billy Bob


On 13 mar, 14:03, "Fredo P."
wrote:
--


Sans les berouettes
"billy bob" a écrit dans le message de news:

Bonjour Fredo

Merci pour ta recherche,
effectivement j'ai oublié de préciser que je suis en version Excel
2003.

Et en relisant ton message je m'aperçoit que j'ai peut être mal
expliqué un point :
la potentielle cellule vide qui me pose problême n'est pas dans les
autres feuilles, mais dans la liste de la colonne A
Je ne sais pas si c'était bien ça que tu avais compris.

Effectivement je n'étais pas sur la bonne piste.
Je ne vois plus que cette solution: AV! ohé AV! ohé AV! ohé AV! ohé AV!!!!


Avatar
billy bob
Bonjour,

effectivement en vba, j'aurai préféré m'en affranchir mais il faut
parfois se résoudre à l'horrible vérité: on ne peut peut-être pas tout
faire avec sommeprod.
(est-ce que je peux me faire bannir pour avoir écrit ça ???)

Merci encore à toi

Billy Bob

On 14 mar, 01:20, "Fredo P."
wrote:
Ou cette soluce en vba, à toi d'y affecter un bouton de commande ou autr e
méthode
Public Sub Addition()
Application.ScreenUpdating = False
Dim  Res!, c As Object
Res = 0
For Each c In Sheets("Feuil1").Range("A1:A30")
If c.Value <> "" Then
Res = Res + Evaluate("=" & c.Value & "!D22")
End If
Next c
[D5] = Res
End Sub


Sans les berouettes
"billy bob" a écrit dans le message de news:

En désespoir de cause:

J'obtiens presque le résultat voulu en utilisant la formule

=SOMME(SI(ESTVIDE(A1:A20);0;INDIRECT(A1:A20&"!D22")))
validé en matriciel (ctrl  alt entrée)

au détail près que le résultat correspond en fait au nombre de cellu le
non vide en A multiplié par la valeur en D22 de la première feuille,
ce qui devient catastrophique d'ailleurs lorsque A1 est vide

même résultat avec
=SOMMEPROD(SI(ESTVIDE($A$54:$A$56);0;INDIRECT($A$54:$A$56& "!D22"))*1)
aussi validé avec ctrl alt entrée.

Si quelqu'un voit une solution, grand merci d'avance.

Billy Bob

On 13 mar, 14:03, "Fredo P."



wrote:
--


Sans les berouettes
"billy bob" a écrit dans le message de new s:

Bonjour Fredo

Merci pour ta recherche,
effectivement j'ai oublié de préciser que je suis en version Excel
2003.

Et en relisant ton message je m'aperçoit que j'ai peut être mal
expliqué un point :
la potentielle cellule vide qui me pose problême n'est pas dans les
autres feuilles, mais dans la liste de la colonne A
Je ne sais pas si c'était bien ça que tu avais compris.

Effectivement je n'étais pas sur la bonne piste.
Je ne vois plus que cette solution: AV! ohé AV! ohé AV! ohé AV! oh é AV!!!!- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -