SOMMEPROD et ESTREF

Le
billy bob
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
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
Fredo P.
Le #5182961
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"
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
Fredo P.
Le #5182951
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"
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
Fredo P.
Le #5182921
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"
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
billy bob
Le #5182861
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."
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"
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


Fredo P.
Le #5182761
--



Sans les berouettes
"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.

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!!!!
billy bob
Le #5230441
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."
--


Sans les berouettes
"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.

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


Fredo P.
Le #5230061
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"
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."
--


Sans les berouettes
"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.

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


billy bob
Le #5229991
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."
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"
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."



--


Sans les berouettes
"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.

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 -



Publicité
Poster une réponse
Anonyme