OVH Cloud OVH Cloud

Sommeprod conditionnel

11 réponses
Avatar
ThierryP
Bonjour à tous (toutes),

Pour alimenter un petit tableau récup, j'utilise ceci qui fonctionne bien :

=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))
La cellule Mois_Livré contient le nom du mois choisi via une liste de
validation; jusque là tout va bien...Si je veux mon récap annuel, je
dois supprimer la dernière condition...et là, je ne vois plus trop...Y
a-t-il un moyen de concaténer la première partie de la formule avec soit
une cellule vide soit une contenant la condition
*(MOIS(Mois_Livré)=Num_Mois) et ceci via ma liste de validation....

Si quelqu'un a idée de solution, merci d'avance !!!
--
@+ thierryp

10 réponses

1 2
Avatar
david
Salut,

... * MOIS(Mois_Livré) = Num_Mois
renvoi vrai(1) ou faux(0).
Donc si tu ajoutes ta deuxième condition du type :
... * (Pas_Recap)
Avec Pas_Recap une cellule contenant l'information indiquant que tu ne
souhaite pas voir le récap annuel...

Sinon, il existe aussi la possibilité (plus lisible) d'ajouter des
colonnes dans ton tableau avec une formule de type SI qui calcule la
nouvelle valeur en lieu et place de celle dans E.
Si (c'est le mois choisi, ou si pas de mois choisi) et (Bon code
transport) et (Bon code activité) alors c'est la même valeur que dans
E, sinon c'est 0.
Il ne reste plus qu'à faire la somme de tout ça (tout en bas, ou en
haut, de ton tableau) et de la reporter dans un tableau récap.

A+, david
Avatar
ThierryP
Merci David,

...mais ça ne me convient pas. Dans mon tableau, chaque cellule contient
cette formule :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

qui me permet de calculer des sous-totaux par type transport et
activité. Le dernière condition me permet de cibler un mois précis. Si
je veux des totaux annuels, cette dernière condition n'a plus lieu
d'être, donc soit je la supprime de la formule (mais pas manuellement
!!), soit je force sa valeur à 1...Mais là, je patauge et je ne voudrais
pas passer par du VBA pour modifier mes formules dans ce tableau.

Bonjour à tous (toutes),

Pour alimenter un petit tableau récup, j'utilise ceci qui fonctionne bien :

=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

La cellule Mois_Livré contient le nom du mois choisi via une liste de
validation; jusque là tout va bien...Si je veux mon récap annuel, je
dois supprimer la dernière condition...et là, je ne vois plus trop...Y
a-t-il un moyen de concaténer la première partie de la formule avec soit
une cellule vide soit une contenant la condition
*(MOIS(Mois_Livré)=Num_Mois) et ceci via ma liste de validation....

Si quelqu'un a idée de solution, merci d'avance !!!


--
@+ thierryp

Avatar
Elliac
Bonjour,

Peut-être :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:

Merci David,

....mais ça ne me convient pas. Dans mon tableau, chaque cellule contient
cette formule :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

qui me permet de calculer des sous-totaux par type transport et
activité. Le dernière condition me permet de cibler un mois précis. Si
je veux des totaux annuels, cette dernière condition n'a plus lieu
d'être, donc soit je la supprime de la formule (mais pas manuellement
!!), soit je force sa valeur à 1...Mais là, je patauge et je ne voudrais
pas passer par du VBA pour modifier mes formules dans ce tableau.

Bonjour à tous (toutes),

Pour alimenter un petit tableau récup, j'utilise ceci qui fonctionne bien :

=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

La cellule Mois_Livré contient le nom du mois choisi via une liste de
validation; jusque là tout va bien...Si je veux mon récap annuel, je
dois supprimer la dernière condition...et là, je ne vois plus trop...Y
a-t-il un moyen de concaténer la première partie de la formule avec soit
une cellule vide soit une contenant la condition
*(MOIS(Mois_Livré)=Num_Mois) et ceci via ma liste de validation....

Si quelqu'un a idée de solution, merci d'avance !!!


--
@+ thierryp




Avatar
ThierryP
Bonjour Elliac,

Tout à fait d'accord avec ta formule...Mais comment puis-je modifier mes
formules à la volée en fonction d'un choix dans une cellule
(Janvier,...Février,...,Année), sans passer par VBA et une boucle avec
range.formulalocal??Si le choix est un mois,*(MOIS(Mois_Livré)=Num_Mois)
si le choix est "Année", *(MOIS(Mois_Livré)<). Si j'écris ces deux
formules en dur dans deux cellules, comment concaténer suivant mon choix ??

Merci d'avance

thierryp

Bonjour,

Peut-être :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:


Merci David,

....mais ça ne me convient pas. Dans mon tableau, chaque cellule contient
cette formule :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

qui me permet de calculer des sous-totaux par type transport et
activité. Le dernière condition me permet de cibler un mois précis. Si
je veux des totaux annuels, cette dernière condition n'a plus lieu
d'être, donc soit je la supprime de la formule (mais pas manuellement
!!), soit je force sa valeur à 1...Mais là, je patauge et je ne voudrais
pas passer par du VBA pour modifier mes formules dans ce tableau.


Bonjour à tous (toutes),

Pour alimenter un petit tableau récup, j'utilise ceci qui fonctionne bien :

=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

La cellule Mois_Livré contient le nom du mois choisi via une liste de
validation; jusque là tout va bien...Si je veux mon récap annuel, je
dois supprimer la dernière condition...et là, je ne vois plus trop...Y
a-t-il un moyen de concaténer la première partie de la formule avec soit
une cellule vide soit une contenant la condition
*(MOIS(Mois_Livré)=Num_Mois) et ceci via ma liste de validation....

Si quelqu'un a idée de solution, merci d'avance !!!


--
@+ thierryp




--
@+ thierryp



Avatar
Ellimac
Re,

Si tu utilises la zone de liste modifiable de la barre d'outils formulaires
avec une place de 13 cellules de janvier à année, ta cellule liée renverras
une valeur de 1 à 13. Ta formules deviendra
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(si(CelluleLiée<13;MOIS(Mois_Livré)ÎlluleLiée;MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:

Bonjour Elliac,

Tout à fait d'accord avec ta formule...Mais comment puis-je modifier mes
formules à la volée en fonction d'un choix dans une cellule
(Janvier,...Février,...,Année), sans passer par VBA et une boucle avec
range.formulalocal??Si le choix est un mois,*(MOIS(Mois_Livré)=Num_Mois)
si le choix est "Année", *(MOIS(Mois_Livré)<). Si j'écris ces deux
formules en dur dans deux cellules, comment concaténer suivant mon choix ??

Merci d'avance

thierryp

Bonjour,

Peut-être :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:


Merci David,

....mais ça ne me convient pas. Dans mon tableau, chaque cellule contient
cette formule :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

qui me permet de calculer des sous-totaux par type transport et
activité. Le dernière condition me permet de cibler un mois précis. Si
je veux des totaux annuels, cette dernière condition n'a plus lieu
d'être, donc soit je la supprime de la formule (mais pas manuellement
!!), soit je force sa valeur à 1...Mais là, je patauge et je ne voudrais
pas passer par du VBA pour modifier mes formules dans ce tableau.


Bonjour à tous (toutes),

Pour alimenter un petit tableau récup, j'utilise ceci qui fonctionne bien :

=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

La cellule Mois_Livré contient le nom du mois choisi via une liste de
validation; jusque là tout va bien...Si je veux mon récap annuel, je
dois supprimer la dernière condition...et là, je ne vois plus trop...Y
a-t-il un moyen de concaténer la première partie de la formule avec soit
une cellule vide soit une contenant la condition
*(MOIS(Mois_Livré)=Num_Mois) et ceci via ma liste de validation....

Si quelqu'un a idée de solution, merci d'avance !!!


--
@+ thierryp




--
@+ thierryp






Avatar
ThierryP
Waouhhh!! La belle formule !!

Encore un petit souci....Apparemment le test fonctionne bizarrement...
Si je choisis un mois, il ne me renvoie rien sauf si je choisis Janvier;
là, il me ramène le calcul de l'année ??!!??
Si je choisis Année, le calcul est OK.
Si je supprime le SI et que je rentre successivement chaque condition,
ça fonctionne également....

J'en perds le peu de latin qui me reste....

Merci d'avance

@+ thierryp



Re,

Si tu utilises la zone de liste modifiable de la barre d'outils formulaires
avec une place de 13 cellules de janvier à année, ta cellule liée renverras
une valeur de 1 à 13. Ta formules deviendra :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(si(CelluleLiée<13;MOIS(Mois_Livré)ÎlluleLiée;MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:


Bonjour Elliac,

Tout à fait d'accord avec ta formule...Mais comment puis-je modifier mes
formules à la volée en fonction d'un choix dans une cellule
(Janvier,...Février,...,Année), sans passer par VBA et une boucle avec
range.formulalocal??Si le choix est un mois,*(MOIS(Mois_Livré)=Num_Mois)
si le choix est "Année", *(MOIS(Mois_Livré)<). Si j'écris ces deux
formules en dur dans deux cellules, comment concaténer suivant mon choix ??

Merci d'avance

thierryp


Bonjour,

Peut-être :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:



Merci David,

....mais ça ne me convient pas. Dans mon tableau, chaque cellule contient
cette formule :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

qui me permet de calculer des sous-totaux par type transport et
activité. Le dernière condition me permet de cibler un mois précis. Si
je veux des totaux annuels, cette dernière condition n'a plus lieu
d'être, donc soit je la supprime de la formule (mais pas manuellement
!!), soit je force sa valeur à 1...Mais là, je patauge et je ne voudrais
pas passer par du VBA pour modifier mes formules dans ce tableau.



Bonjour à tous (toutes),

Pour alimenter un petit tableau récup, j'utilise ceci qui fonctionne bien :

=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

La cellule Mois_Livré contient le nom du mois choisi via une liste de
validation; jusque là tout va bien...Si je veux mon récap annuel, je
dois supprimer la dernière condition...et là, je ne vois plus trop...Y
a-t-il un moyen de concaténer la première partie de la formule avec soit
une cellule vide soit une contenant la condition
*(MOIS(Mois_Livré)=Num_Mois) et ceci via ma liste de validation....

Si quelqu'un a idée de solution, merci d'avance !!!


--
@+ thierryp




--
@+ thierryp




--
@+ thierryp





Avatar
Ellimac
Bonjour,

Peux-tu mettre en ligne ton fichier ou une partie ?
Si tu as utilisé la zone de liste modifiable il faut bien paramétrer la
plage avec 13 cellules contenant les 12 mois et Année, ainsi qu'un cellule
liée qui récupère l'index de la valeur choisie dans la liste. Normalement
tout devrait fonctionner.

Camille

"ThierryP" wrote:

Waouhhh!! La belle formule !!

Encore un petit souci....Apparemment le test fonctionne bizarrement...
Si je choisis un mois, il ne me renvoie rien sauf si je choisis Janvier;
là, il me ramène le calcul de l'année ??!!??
Si je choisis Année, le calcul est OK.
Si je supprime le SI et que je rentre successivement chaque condition,
ça fonctionne également....

J'en perds le peu de latin qui me reste....

Merci d'avance

@+ thierryp



Re,

Si tu utilises la zone de liste modifiable de la barre d'outils formulaires
avec une place de 13 cellules de janvier à année, ta cellule liée renverras
une valeur de 1 à 13. Ta formules deviendra :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(si(CelluleLiée<13;MOIS(Mois_Livré)ÎlluleLiée;MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:


Bonjour Elliac,

Tout à fait d'accord avec ta formule...Mais comment puis-je modifier mes
formules à la volée en fonction d'un choix dans une cellule
(Janvier,...Février,...,Année), sans passer par VBA et une boucle avec
range.formulalocal??Si le choix est un mois,*(MOIS(Mois_Livré)=Num_Mois)
si le choix est "Année", *(MOIS(Mois_Livré)<). Si j'écris ces deux
formules en dur dans deux cellules, comment concaténer suivant mon choix ??

Merci d'avance

thierryp


Bonjour,

Peut-être :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:



Merci David,

....mais ça ne me convient pas. Dans mon tableau, chaque cellule contient
cette formule :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

qui me permet de calculer des sous-totaux par type transport et
activité. Le dernière condition me permet de cibler un mois précis. Si
je veux des totaux annuels, cette dernière condition n'a plus lieu
d'être, donc soit je la supprime de la formule (mais pas manuellement
!!), soit je force sa valeur à 1...Mais là, je patauge et je ne voudrais
pas passer par du VBA pour modifier mes formules dans ce tableau.



Bonjour à tous (toutes),

Pour alimenter un petit tableau récup, j'utilise ceci qui fonctionne bien :

=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

La cellule Mois_Livré contient le nom du mois choisi via une liste de
validation; jusque là tout va bien...Si je veux mon récap annuel, je
dois supprimer la dernière condition...et là, je ne vois plus trop...Y
a-t-il un moyen de concaténer la première partie de la formule avec soit
une cellule vide soit une contenant la condition
*(MOIS(Mois_Livré)=Num_Mois) et ceci via ma liste de validation....

Si quelqu'un a idée de solution, merci d'avance !!!


--
@+ thierryp




--
@+ thierryp




--
@+ thierryp








Avatar
ThierryP
Re-bonjour Ellimac (tiens le "m" a réapparu..!)

En fait, j'ai honteusement triché en passant par VBA : je garde une
copie de ma plage de formules originales, et quand je sélectionne Année,
je tronque les formules. En choisissant un mois, je recopie mes formules
originales dasn le tableau. Pas propre....mais ça marche.
Mais si tu peux me trouver le bug..., ça éliminera le VBA.
Fichier visible là : http://cjoint.com/?lykBEhK2Dz
Merci d'avance

@+ thierryp


Bonjour,

Peux-tu mettre en ligne ton fichier ou une partie ?
Si tu as utilisé la zone de liste modifiable il faut bien paramétrer la
plage avec 13 cellules contenant les 12 mois et Année, ainsi qu'un cellule
liée qui récupère l'index de la valeur choisie dans la liste. Normalement
tout devrait fonctionner.

Camille

"ThierryP" wrote:


Waouhhh!! La belle formule !!

Encore un petit souci....Apparemment le test fonctionne bizarrement...
Si je choisis un mois, il ne me renvoie rien sauf si je choisis Janvier;
là, il me ramène le calcul de l'année ??!!??
Si je choisis Année, le calcul est OK.
Si je supprime le SI et que je rentre successivement chaque condition,
ça fonctionne également....

J'en perds le peu de latin qui me reste....

Merci d'avance

@+ thierryp




Re,

Si tu utilises la zone de liste modifiable de la barre d'outils formulaires
avec une place de 13 cellules de janvier à année, ta cellule liée renverras
une valeur de 1 à 13. Ta formules deviendra :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(si(CelluleLiée<13;MOIS(Mois_Livré)ÎlluleLiée;MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:



Bonjour Elliac,

Tout à fait d'accord avec ta formule...Mais comment puis-je modifier mes
formules à la volée en fonction d'un choix dans une cellule
(Janvier,...Février,...,Année), sans passer par VBA et une boucle avec
range.formulalocal??Si le choix est un mois,*(MOIS(Mois_Livré)=Num_Mois)
si le choix est "Année", *(MOIS(Mois_Livré)<). Si j'écris ces deux
formules en dur dans deux cellules, comment concaténer suivant mon choix ??

Merci d'avance

thierryp



Bonjour,

Peut-être :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:




Merci David,

....mais ça ne me convient pas. Dans mon tableau, chaque cellule contient
cette formule :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

qui me permet de calculer des sous-totaux par type transport et
activité. Le dernière condition me permet de cibler un mois précis. Si
je veux des totaux annuels, cette dernière condition n'a plus lieu
d'être, donc soit je la supprime de la formule (mais pas manuellement
!!), soit je force sa valeur à 1...Mais là, je patauge et je ne voudrais
pas passer par du VBA pour modifier mes formules dans ce tableau.




Bonjour à tous (toutes),

Pour alimenter un petit tableau récup, j'utilise ceci qui fonctionne bien :

=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

La cellule Mois_Livré contient le nom du mois choisi via une liste de
validation; jusque là tout va bien...Si je veux mon récap annuel, je
dois supprimer la dernière condition...et là, je ne vois plus trop...Y
a-t-il un moyen de concaténer la première partie de la formule avec soit
une cellule vide soit une contenant la condition
*(MOIS(Mois_Livré)=Num_Mois) et ceci via ma liste de validation....

Si quelqu'un a idée de solution, merci d'avance !!!


--
@+ thierryp




--
@+ thierryp




--
@+ thierryp




--
@+ thierryp







Avatar
Elliac
Salut Thierry,

Je t'ai renvoyé le fichier modifié à ton adresse de messagerie (l'as tu reçu
?).
En gros le tableau avec le nom des mois est trié dans l'ordre des mois avec
Année en dernier. Dans la cellule récupérant le n° du mois tu mets la formule
:
=Equiv(CelluleListeValidation;ListeMois;0)

Camille

"ThierryP" wrote:

Re-bonjour Ellimac (tiens le "m" a réapparu..!)

En fait, j'ai honteusement triché en passant par VBA : je garde une
copie de ma plage de formules originales, et quand je sélectionne Année,
je tronque les formules. En choisissant un mois, je recopie mes formules
originales dasn le tableau. Pas propre....mais ça marche.
Mais si tu peux me trouver le bug..., ça éliminera le VBA.
Fichier visible là : http://cjoint.com/?lykBEhK2Dz
Merci d'avance

@+ thierryp


Bonjour,

Peux-tu mettre en ligne ton fichier ou une partie ?
Si tu as utilisé la zone de liste modifiable il faut bien paramétrer la
plage avec 13 cellules contenant les 12 mois et Année, ainsi qu'un cellule
liée qui récupère l'index de la valeur choisie dans la liste. Normalement
tout devrait fonctionner.

Camille

"ThierryP" wrote:


Waouhhh!! La belle formule !!

Encore un petit souci....Apparemment le test fonctionne bizarrement...
Si je choisis un mois, il ne me renvoie rien sauf si je choisis Janvier;
là, il me ramène le calcul de l'année ??!!??
Si je choisis Année, le calcul est OK.
Si je supprime le SI et que je rentre successivement chaque condition,
ça fonctionne également....

J'en perds le peu de latin qui me reste....

Merci d'avance

@+ thierryp




Re,

Si tu utilises la zone de liste modifiable de la barre d'outils formulaires
avec une place de 13 cellules de janvier à année, ta cellule liée renverras
une valeur de 1 à 13. Ta formules deviendra :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(si(CelluleLiée<13;MOIS(Mois_Livré)ÎlluleLiée;MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:



Bonjour Elliac,

Tout à fait d'accord avec ta formule...Mais comment puis-je modifier mes
formules à la volée en fonction d'un choix dans une cellule
(Janvier,...Février,...,Année), sans passer par VBA et une boucle avec
range.formulalocal??Si le choix est un mois,*(MOIS(Mois_Livré)=Num_Mois)
si le choix est "Année", *(MOIS(Mois_Livré)<). Si j'écris ces deux
formules en dur dans deux cellules, comment concaténer suivant mon choix ??

Merci d'avance

thierryp



Bonjour,

Peut-être :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:




Merci David,

....mais ça ne me convient pas. Dans mon tableau, chaque cellule contient
cette formule :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

qui me permet de calculer des sous-totaux par type transport et
activité. Le dernière condition me permet de cibler un mois précis. Si
je veux des totaux annuels, cette dernière condition n'a plus lieu
d'être, donc soit je la supprime de la formule (mais pas manuellement
!!), soit je force sa valeur à 1...Mais là, je patauge et je ne voudrais
pas passer par du VBA pour modifier mes formules dans ce tableau.




Bonjour à tous (toutes),

Pour alimenter un petit tableau récup, j'utilise ceci qui fonctionne bien :

=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

La cellule Mois_Livré contient le nom du mois choisi via une liste de
validation; jusque là tout va bien...Si je veux mon récap annuel, je
dois supprimer la dernière condition...et là, je ne vois plus trop...Y
a-t-il un moyen de concaténer la première partie de la formule avec soit
une cellule vide soit une contenant la condition
*(MOIS(Mois_Livré)=Num_Mois) et ceci via ma liste de validation....

Si quelqu'un a idée de solution, merci d'avance !!!


--
@+ thierryp




--
@+ thierryp




--
@+ thierryp




--
@+ thierryp










Avatar
ThierryP
Merci d'avoir regardé mon problème; je pense que ta solution va alléger
un peu le truc (mon VBA est comment dire..."empirique", donc ça
fonctionne mais..!!)
Par contre, je n'ai rien reçu. Peux-tu avoir la gentillesse de me le
repasser à tpy73AROBASEhotmail.com
Merci pour tout

@+ thierryp

Salut Thierry,

Je t'ai renvoyé le fichier modifié à ton adresse de messagerie (l'as tu reçu
?).
En gros le tableau avec le nom des mois est trié dans l'ordre des mois avec
Année en dernier. Dans la cellule récupérant le n° du mois tu mets la formule
:
=Equiv(CelluleListeValidation;ListeMois;0)

Camille

"ThierryP" wrote:


Re-bonjour Ellimac (tiens le "m" a réapparu..!)

En fait, j'ai honteusement triché en passant par VBA : je garde une
copie de ma plage de formules originales, et quand je sélectionne Année,
je tronque les formules. En choisissant un mois, je recopie mes formules
originales dasn le tableau. Pas propre....mais ça marche.
Mais si tu peux me trouver le bug..., ça éliminera le VBA.
Fichier visible là : http://cjoint.com/?lykBEhK2Dz
Merci d'avance

@+ thierryp



Bonjour,

Peux-tu mettre en ligne ton fichier ou une partie ?
Si tu as utilisé la zone de liste modifiable il faut bien paramétrer la
plage avec 13 cellules contenant les 12 mois et Année, ainsi qu'un cellule
liée qui récupère l'index de la valeur choisie dans la liste. Normalement
tout devrait fonctionner.

Camille

"ThierryP" wrote:



Waouhhh!! La belle formule !!

Encore un petit souci....Apparemment le test fonctionne bizarrement...
Si je choisis un mois, il ne me renvoie rien sauf si je choisis Janvier;
là, il me ramène le calcul de l'année ??!!??
Si je choisis Année, le calcul est OK.
Si je supprime le SI et que je rentre successivement chaque condition,
ça fonctionne également....

J'en perds le peu de latin qui me reste....

Merci d'avance

@+ thierryp





Re,

Si tu utilises la zone de liste modifiable de la barre d'outils formulaires
avec une place de 13 cellules de janvier à année, ta cellule liée renverras
une valeur de 1 à 13. Ta formules deviendra :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(si(CelluleLiée<13;MOIS(Mois_Livré)ÎlluleLiée;MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:




Bonjour Elliac,

Tout à fait d'accord avec ta formule...Mais comment puis-je modifier mes
formules à la volée en fonction d'un choix dans une cellule
(Janvier,...Février,...,Année), sans passer par VBA et une boucle avec
range.formulalocal??Si le choix est un mois,*(MOIS(Mois_Livré)=Num_Mois)
si le choix est "Année", *(MOIS(Mois_Livré)<). Si j'écris ces deux
formules en dur dans deux cellules, comment concaténer suivant mon choix ??

Merci d'avance

thierryp




Bonjour,

Peut-être :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)<))

Camille

"ThierryP" wrote:





Merci David,

....mais ça ne me convient pas. Dans mon tableau, chaque cellule contient
cette formule :
=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

qui me permet de calculer des sous-totaux par type transport et
activité. Le dernière condition me permet de cibler un mois précis. Si
je veux des totaux annuels, cette dernière condition n'a plus lieu
d'être, donc soit je la supprime de la formule (mais pas manuellement
!!), soit je force sa valeur à 1...Mais là, je patauge et je ne voudrais
pas passer par du VBA pour modifier mes formules dans ce tableau.





Bonjour à tous (toutes),

Pour alimenter un petit tableau récup, j'utilise ceci qui fonctionne bien :

=SOMMEPROD((Code_Transport=C$8)*(Code_Activité=$C2)*(Liste!$E$9:$E$500)*(MOIS(Mois_Livré)=Num_Mois))

La cellule Mois_Livré contient le nom du mois choisi via une liste de
validation; jusque là tout va bien...Si je veux mon récap annuel, je
dois supprimer la dernière condition...et là, je ne vois plus trop...Y
a-t-il un moyen de concaténer la première partie de la formule avec soit
une cellule vide soit une contenant la condition
*(MOIS(Mois_Livré)=Num_Mois) et ceci via ma liste de validation....

Si quelqu'un a idée de solution, merci d'avance !!!


--
@+ thierryp




--
@+ thierryp




--
@+ thierryp




--
@+ thierryp




--
@+ thierryp









1 2