Equivalent "FOR" pour Excel

Bonjour !

J'ai 9 feuilles (1 par mois) sur lesquels je possède une liste d'employé ainsi que leur salaire brut. D'une feuille à l'autre, des employés peuvent apparaître ou partir, ce qui fait que je suis obligé d'utiliser cette formule pour sortir le salaire brut de la feuille (car les employés se décalent de ligne) :

=SI(DECALER(INDEX(Janvier!$B$4:$B$50;EQUIV(Recap!E3;Janvier!$B$4:$B$50));0;6) <= B4; DECALER(INDEX(Janvier!$B$4:$B$50;EQUIV(Recap!E3;Janvier!$B$4:$B$50));0;6); 0)

Le problème est que je dois additionner le résultat de cette formule sur les 9 feuilles et que cela me prendrait beaucoup trop de places, y aurait-il donc une formule de type While, For ou For Each qui me permettrait de répéter l'itération ?

Merci d'avance !

Bonjour,

Comme tu parles de For Each, je suppose qu'une solution macro te conviendra Le souci c'est qu'avec uniquement ta formule, ça va être difficile de trouver une solution, est-ce que tu pourrais nous montrer un exemple pour bien nous faire comprendre ta problématique?

Pour parcourir toutes les feuilles d'un classeur tu peux écrire:

For Each feuille In ThisWorkbook.Worksheets

Next feuille

Justement, le but était de pas utiliser de VBA

Si ce n'est pas possible en formule Excel, y a t-il une fonction qui permette de changer automatiquement le nom de la feuille voulue ?

C'est à dire de transformer Janvier!$B$4:$B$50 (où Janvier est le nom de la feuille) en Février!$B$4:$B$50 (où Février est le nom de la feuille suivante) en se référent au nom de la ligne du haut de la colonne qui sera le mois

(La formule de la case F3 sur l'image suivante est :

=SI(DECALER(INDEX(Janvier!$B$4:$B$50;EQUIV($E3;Janvier!$B$4:$B$50));0;6) <= $B$4; DECALER(INDEX(Janvier!$B$4:$B$50;EQUIV($E3;Janvier!$B$4:$B$50));0;6); 0)

)

exemple

Si ce n'est pas possible en formule Excel, y a t-il une fonction qui permette de changer automatiquement le nom de la feuille voulue ?

C'est à dire de transformer Janvier!$B$4:$B$50 (où Janvier est le nom de la feuille) en Février!$B$4:$B$50 (où Février est le nom de la feuille suivante) en se référent au nom de la ligne du haut de la colonne qui sera le mois

(La formule de la case F3 sur l'image suivante est :

=SI(DECALER(INDEX(Janvier!$B$4:$B$50;EQUIV($E3;Janvier!$B$4:$B$50));0;6) <= $B$4; DECALER(INDEX(Janvier!$B$4:$B$50;EQUIV($E3;Janvier!$B$4:$B$50));0;6); 0)

)

bonjour,

cette fonction existe, c'est la fonction INDIRECT

si mois en A1 et tu veux adresser la plage B4:B50 de ce mois

=indirect(A1&"!B4:B50")

Bonjour,

Merci de joindre un fichier exemple de tes données (anonymisé).

Tu disposes de Excel 2016 et on peut envisager différentes réponses (sans VBA) pour arriver au résultat.

Cdlt.

Bonjour,

Le nom de la feuille courante est :

=STXT(CELLULE("nomfichier");TROUVE("]";CELLULE("nomfichier"))+1;NBCAR(CELLULE("nomfichier"))-TROUVE("]";CELLULE("nomfichier")))

C'est bon ! Grâce à la fonction INDIRECT tout marche parfaitement !

INDIRECT("'"&F$2&"'!$B$4:$B$50")

Ca fait un peu saigner des yeux mais ça marche :p

Rechercher des sujets similaires à "equivalent"