SommeProd et Indirect

Résolu/Fermé
Fethi93 - 28 mai 2013 à 12:31
Fethi93 Messages postés 17 Date d'inscription mardi 28 mai 2013 Statut Membre Dernière intervention 5 juin 2013 - 29 mai 2013 à 10:36
Bonjour,


J'essaye désespérément de faire un sommeprod dynamique où la référence des plages changent lorsque je déroule la formule. J'ai donc deux plages sommeprod(plage1;plage2).

Plage1 est un champs de cellule que j'ai nommé dans Excel PoidsB1. Celle ci se met à jours et donc la fin de PoidsB1 n'est pas constante.
Ainsi, la plage2 doit s'adapter à cela.


Voici le problème :

Une plage que j'ai nommée : PoidsB1 qui se situe à la colonne C et qui commence à la ligne 5 et dont la fin est inconnue.
Puis je déroule ma formule à partir de la colonne P en colonne (donc P, Q, R,...) afin de faire un sommprod entre PoidsB1 et la colonne active (cad P, Q, R,...).


SOMMEPROD(PoidsB1;INDIRECT(ADRESSE(5;COLONNE())&":"&ADRESSE(LIGNES(PoidsB1)+4;COLONNE())))


Cela me renvoie #valeur. Or quand j'essaye de faire une somme cela fonctionne.


Merci pour votre aide

5 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 216
28 mai 2013 à 12:49
Bonjour,

pas trop le temps de développer car je dois m'absenter mais pourquoi ne fais-tu pas un decaler(ligne;colonne) de PoidsB1 en fonction de colonne() ?

eric
0
Fethi93 Messages postés 17 Date d'inscription mardi 28 mai 2013 Statut Membre Dernière intervention 5 juin 2013
28 mai 2013 à 12:53
Merci eriiic je vais essayer cela.
0
Fethi93 Messages postés 17 Date d'inscription mardi 28 mai 2013 Statut Membre Dernière intervention 5 juin 2013
28 mai 2013 à 13:09
J'ai essayer cela

=DECALER(PoidsB1;1;(COLONNE()-3))

mais il n'aime pas. Je pense que cela vient de Colonne()
0
Fethi93 Messages postés 17 Date d'inscription mardi 28 mai 2013 Statut Membre Dernière intervention 5 juin 2013
28 mai 2013 à 13:22
Je suis passé par VBA car Decaler n'accepte pas 0 pour les lignes.

Function DecalerPlage(rg As Range, ligne As Integer, colonne As Integer) As Variant

rgdec = rg.Offset(ligne, colonne).Value

DecalerPlage = rgdec

End Function
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 216
28 mai 2013 à 16:16
Re,

car Decaler n'accepte pas 0 pour les lignes
Si, il accepte très bien.
Si problème il y avait il n'était pas là.

Tu pouvais aussi définir un 2nd nom :
plage2: =DECALER($C$2;;COLONNE()-3;NBVAL($C:$C)-1;)

eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fethi93 Messages postés 17 Date d'inscription mardi 28 mai 2013 Statut Membre Dernière intervention 5 juin 2013
29 mai 2013 à 10:36
Merci pour ta réponse.

Fethi
0