Somme plage variable SOMME(INDIRECT) ou autre formule

Bonjour au forum,

Je souhaite avoir une somme variable en fonction de l'ajout ou de la suppression de lignes. Si l'utilisateur souhaite ajouter des lignes alors la somme s'adapte. J'ai trouvé un truc qui marche avec la formule :

SOMME(INDIRECT("L1313:L"&LIGNE()-1))

Mais la contrainte est que je dois pouvoir la copier plus bas dans la colonne pour chaque nouvelle semaine.

Or la formule ne s'adapte pas, en effet elle part toujours de L1313. Si vous avez une idée pour pallier à cette contrainte !

En vous remerciant par avance. Un fichier en PJ pour vous aider à comprendre.

Bonne journée 8)

Salut Nonesofar13 !

j'ai une solution qui combine un indirect, un equiv, et un recherchev

Deux conditions pour que ça fonctionne

  • tu dois avoir une mention du nom de ta semaine sur la même ligne que ton total (cf mes ajouts en colonne A)
  • en colonne B ton nom de semaine doit toujours être sur la ligne 1 du tableau (ce qui n'était pas le cas dans ton fichier, pour le tableau Week 30, le début du tableau commence en L1336 et ton nom de semaine est écrit en B1337 (!!))

J'espère que ça satisfera ton besoin

Hello Gaz0lin,

Ouah je suis impressionné, ça marche nickel.

Tu peux m'expliquer vite fait le fonctionnement, je suis pas au top niveau formule faut que je progresse .

Encore merci.

J'ai simplifié la formule, le Recherchev était superflu.

La formule est maintenant

=SOMME(INDIRECT("L"&EQUIV(A1347;$B:$B;0)&":L"&LIGNE()-1))

(cf fichier joint)

Voici l'explication :

Prenons la Week 30 pour exemple :

=SOMME(INDIRECT("L"&EQUIV(A1347;$B:$B;0)&":L"&LIGNE()-1))

Le LIGNE() (que je ne connaissais pas ! Merci à toi pour cette découverte!) nous donne le numéro de la ligne - 1 où se situe ta formule de total (ici ligne 1347, soit la fin du tableau pour ta somme, ça c'est ta partie du boulot )

=SOMME(INDIRECT("L"&EQUIV(A1347;$B:$B;0)&":L"&LIGNE()-1))

En cellule A1347 (qui correspond à la ligne de ton total, c'est impératif !) est inscrit le nom de ta semaine ("30")

Le EQUIV cherche le contenu de A1347 (donc "30") dans la colonne B. S'il le trouve, il renvoie le numéro de la ligne, soit 1336 pour notre exemple

=SOMME(INDIRECT("L"&EQUIV(A1347;$B:$B;0)&":L"&LIGNE()-1))

L'INDIRECT() utilise la ligne du EQUIV() pour la 1ère cellule de somme et la ligne du LIGNE()-1 pour la dernière cellule de somme.

Attention avec EQUIV :

EQUIV renvoie la POSITION de la cellule. C'est pour ça que ma recherche avec EQUIV concerne toute la colonne B :

=SOMME(INDIRECT("L"&EQUIV(A1347;$B:$B;0)&":L"&LIGNE()-1))

Si je mets dans ma formule non plus $B:$B mais par exemple $B1340:$B2000, EQUIV va me donner la position de Week 30, c'est à dire à combien de cellules du début Week 30 se trouve.

Si je mets $B:$B, il va me donner 1347,

Si je mets $B1340:$B2000, il va me donner 7, parce que Week 30 se trouve 7 cellules après le départ de 1340.

$B:$B permet de mettre toute la colonne et de partir de 1, comme ça le résultat te donne la ligne réelle.

Voilà j'expère que c'est clair, pas évident à expliquer ^^

Hello,

Super , merci

Très clair ton message, je comprends mieux c'est vrai qu'avec la recherchev je voyais pas trop.

J'utilisais pas mal vba mais depuis peu je suis obligé de passer par des formules, du coup je trouve ça passionnant ce qu'il est possible de faire !! ça va me servir à l'avenir.

Merci pour ton aide c'est vraiment top comme formule !!

Eh oui, on peut déjà faire énormément de choses avec des formules, même si parfois c'est vrai qu'il faut un peu se triturer les méninges

Rechercher des sujets similaires à "somme plage variable indirect formule"