Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ligne de 12 onglets dans colonne d'un 13ème onglet

20 réponses
Avatar
Lionel
Bonjour

J'ai un fichier planning ou il y a un onglet par mois et
- 1 ligne de l'employé A qui indique le codage interne pour le planning (
ex : c78 represente un horaire de 8 heures travaillées en Coupure qui
commence à 7 heures )
puis 3 ligne qui décomptent le nb heures tavaillées, la suivante les heures
travaillées le dimanche, une derniere qui décompte les CP.

il faut maintenant que j'ai autant d'onglet que d'employés et que pour
chaque onglet d'employé j'ai 12 fois 2 colonnes (chaque mois) et que je
recupere la ligne de l'horaire en codage et dans la deuxieme colonne le
nombre d'heures....

exemple onglet janvier
nom 1 2 3 4 5 6
A c78 C78 R R R R
Nb H 8 8 0 0 0 0

onglet fevrier
nom 1 2 3 4 5 6
A c78 C78 R R R R
Nb H 8 8 0 0 0 0


et donc obtenir


Onglet A(nom employé
Janvier Fevrier
Planning Heurees Planning Heures...
1 C78 8 C78 8
2 C78 8 C78 8
3 C78 8 C78 8
4 R 0 R 0
5 R 0 R 0
6 R 0 R 0

J'espere etre clair dans mes explications
Merci de votre aide...

10 réponses

1 2
Avatar
Lionel
Bonsoir,
Je rentre du travail et je viens consulter ton message... Tu es là pour
m'aider et je ne sais comment te remercier de toute cette patience et de ce
devouement...
Mais là apres mes heures de travail je dois t'avouer que je vais peut etre
pas decortiquer de suite . lol
Je m'y attelerai demain et j'espere m'en sortir sans plus venir t'ennuyer...
Encore un enorme MERCI !
Amicalement
Lionel
"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Alors maintenant, à nous deux (et aux autres :-))

Pour trouver la donnée que je veux, je fais une recherche avec INDEX :
=INDEX(plage de recherche; ligne dans la plage; colonne dans la plage)

La plage de recherche est dans la feuille d'un mois ex: janvier,
fevrier, mars ...
Comme je ne connais pas l'étendue des données (nombre de lignes) je
prends les colonnes complètes : A:AF
Donc la formule commence comme çà :
=INDEX('janvier'!A:AF;...
Seulement, je n'accede qu'a la feuille "janvier".

Dans ton tableau d'employé (feuille "A"), tu as en ligne 1, les numéros
des mois (1, 2, 3,...) que je transforme en date valide grace à :
DATE(année; mois; jour) qui devient : DATE(2007;B$1;1)
B$1 = colonne B qui evolue si tu copie à droite ou à gauche, ligne 1
qui ne change pas si tu copie en haut ou en bas (le numéro du mois est
toujours en ligne 1)

Mais, il me faux le nom du mois en texte pour représenter la feuille
sur laquelle je recherche la donnée. Donc, j'utilise la formule :
TEXTE(DATE(2007;B$1;1);"mmmm") qui me donne le bon résultat.
Maintenant, pour lui spécifier le nom de la feuille et la plage dans la
feuille, je dois concatener ces informations :
TEXTE(DATE(2007;B$1;1);"mmmm") & "A:AF"
qui me donnera (pour mois=1) : janvierA:AF
ce qui n'est pas bon ! Il faut rajouter une simple cote avant le nom de
la feuille et une simple cote aprés le nom ainsi que le point
d'exlamation :
"'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF"
qui me donnera (pour mois=1) : 'janvier'!A:AF

Mais, pour excel ce n'est qu'un texte qui ne peut pas servir, donc
j'utilise la fonction INDIRECT :
INDIRECT("'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF")
et là, j'ai la bonne plage pour aller chercher dans la feuille (ici :
janvier plage : A:AF)

Maintenant que j'ai la plage de recherche, il faut que je trouve la
bonne ligne dans cette plage. Pour ce faire, je vais récupere le nom de
l'onglet de l'employé : CELLULE("filename";$A$1)
Seulement, par cette fonction, j'obtiens trop de chose : le disque où
se trouve le classeur, le chemin complet, le nom du classeur et le nom
de l'onglet d'où est appelé la fonction. Info du style :
D:FichiersExcelForums[Lionel.xls]A

Avec la fonction STXT, je récupere un nombre donné de caractères (32,
qui commence à faire un sacré nom d'onglet !) à partir d'une position.
La position est trouvée par la recherche du caractère "]" qui termine
le nom du fichier excel auquel on ajoute 1 pour commencer au caractère
suivant :
TROUVE("]";CELLULE("filename";$A$1))+1

La fonction est :
STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;32)
Pour la feuille employé "A", la fonction retourne : A

Ensuite, je cherche cette donnée, dans la colonne A de la feuille du
mois concerné, par la fonction EQUIV
EQUIV(valeur cherchée; table de données; 0 ou 1)
qui me renvoi le numero de ligne dans la plage de recherche :

EQUIV(STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;3

2);INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!a:a");0)

Pour la colonne où je doit prendre la donnée, je refais un EQUIV, mais
avec la cellule qui contient le jour du mois (dans ton exemple, jour en
colonne A de la feuille de l'employé et recherche de cette valeur dans
la ligne 1 de la feuille du mois concerné qui contient les jours) :
EQUIV($A3;INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!1:1");0))

$A3 : colonne A qui n'evolue pas si tu copie à droite ou à gauche,
ligne 3 qui change si tu copie en haut ou en bas (le numéro du jour est
toujours en colonne A dans la feuille de l'employé)
la recherche du numero du jour, dans les feuille des mois est toujours
en ligne 1, donc la plage de recherche est en ligne 1:1

Ce qui donne, au final, la belle formule que je t'ai donné quelques
méssages plus haut

Voila, j'espère que tu n'a pas trop mal à la tête en arrivant ici, vu
tout le charabia développé lol. Il y a encore peu, je n'aurai même pas
pensé pouvoir l'écrire :oÞ
Une formule comme celle ci, je ne l'ai pas pondue en trois coup de
cuillère à pot; j'ai commencer par regarder ce qu'excel me donnai comme
référence, puis j'ai chercher comment l'obtenir, puis comment
l'imbriquer et ensuite comment utiliser les références des cellules de
la feuille pour pouvoir l'étendre aux autres cellules.

Aller, maintenant je me tais :-x

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O




Avatar
Lionel
Salut !
Eh non pas encore debarrasse de moi !
Je joins mon fichier
http://cjoint.com/?dvk0KyUjDA
il est expurgé de tous les mois sauf janvier
Et bien qu'ayant je pense compris et tenté d'adapter ce que tu m'avais
expliqué je me retrouve sur un message d'erreur ....
Peux tu regarder et me dire si tu sais ou j'ai commis une erreur ?
Par ailleurs dans l'onglet planning j'utilise une formule pour les jours, 1
2 3 ... cela peut il interferer dans ta formule ?
Merci de me le faire savoir
A bientot
Lionel
"Lionel" a écrit dans le message de news:
4600746c$0$27387$
Bonsoir,
Je rentre du travail et je viens consulter ton message... Tu es là pour
m'aider et je ne sais comment te remercier de toute cette patience et de
ce

devouement...
Mais là apres mes heures de travail je dois t'avouer que je vais peut etre
pas decortiquer de suite . lol
Je m'y attelerai demain et j'espere m'en sortir sans plus venir
t'ennuyer...

Encore un enorme MERCI !
Amicalement
Lionel
"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Alors maintenant, à nous deux (et aux autres :-))

Pour trouver la donnée que je veux, je fais une recherche avec INDEX :
=INDEX(plage de recherche; ligne dans la plage; colonne dans la plage)

La plage de recherche est dans la feuille d'un mois ex: janvier,
fevrier, mars ...
Comme je ne connais pas l'étendue des données (nombre de lignes) je
prends les colonnes complètes : A:AF
Donc la formule commence comme çà :
=INDEX('janvier'!A:AF;...
Seulement, je n'accede qu'a la feuille "janvier".

Dans ton tableau d'employé (feuille "A"), tu as en ligne 1, les numéros
des mois (1, 2, 3,...) que je transforme en date valide grace à :
DATE(année; mois; jour) qui devient : DATE(2007;B$1;1)
B$1 = colonne B qui evolue si tu copie à droite ou à gauche, ligne 1
qui ne change pas si tu copie en haut ou en bas (le numéro du mois est
toujours en ligne 1)

Mais, il me faux le nom du mois en texte pour représenter la feuille
sur laquelle je recherche la donnée. Donc, j'utilise la formule :
TEXTE(DATE(2007;B$1;1);"mmmm") qui me donne le bon résultat.
Maintenant, pour lui spécifier le nom de la feuille et la plage dans la
feuille, je dois concatener ces informations :
TEXTE(DATE(2007;B$1;1);"mmmm") & "A:AF"
qui me donnera (pour mois=1) : janvierA:AF
ce qui n'est pas bon ! Il faut rajouter une simple cote avant le nom de
la feuille et une simple cote aprés le nom ainsi que le point
d'exlamation :
"'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF"
qui me donnera (pour mois=1) : 'janvier'!A:AF

Mais, pour excel ce n'est qu'un texte qui ne peut pas servir, donc
j'utilise la fonction INDIRECT :
INDIRECT("'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF")
et là, j'ai la bonne plage pour aller chercher dans la feuille (ici :
janvier plage : A:AF)

Maintenant que j'ai la plage de recherche, il faut que je trouve la
bonne ligne dans cette plage. Pour ce faire, je vais récupere le nom de
l'onglet de l'employé : CELLULE("filename";$A$1)
Seulement, par cette fonction, j'obtiens trop de chose : le disque où
se trouve le classeur, le chemin complet, le nom du classeur et le nom
de l'onglet d'où est appelé la fonction. Info du style :
D:FichiersExcelForums[Lionel.xls]A

Avec la fonction STXT, je récupere un nombre donné de caractères (32,
qui commence à faire un sacré nom d'onglet !) à partir d'une position.
La position est trouvée par la recherche du caractère "]" qui termine
le nom du fichier excel auquel on ajoute 1 pour commencer au caractère
suivant :
TROUVE("]";CELLULE("filename";$A$1))+1

La fonction est :
STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;32)
Pour la feuille employé "A", la fonction retourne : A

Ensuite, je cherche cette donnée, dans la colonne A de la feuille du
mois concerné, par la fonction EQUIV
EQUIV(valeur cherchée; table de données; 0 ou 1)
qui me renvoi le numero de ligne dans la plage de recherche :



EQUIV(STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;3

2);INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!a:a");0)

Pour la colonne où je doit prendre la donnée, je refais un EQUIV, mais
avec la cellule qui contient le jour du mois (dans ton exemple, jour en
colonne A de la feuille de l'employé et recherche de cette valeur dans
la ligne 1 de la feuille du mois concerné qui contient les jours) :
EQUIV($A3;INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!1:1");0))

$A3 : colonne A qui n'evolue pas si tu copie à droite ou à gauche,
ligne 3 qui change si tu copie en haut ou en bas (le numéro du jour est
toujours en colonne A dans la feuille de l'employé)
la recherche du numero du jour, dans les feuille des mois est toujours
en ligne 1, donc la plage de recherche est en ligne 1:1

Ce qui donne, au final, la belle formule que je t'ai donné quelques
méssages plus haut

Voila, j'espère que tu n'a pas trop mal à la tête en arrivant ici, vu
tout le charabia développé lol. Il y a encore peu, je n'aurai même pas
pensé pouvoir l'écrire :oÞ
Une formule comme celle ci, je ne l'ai pas pondue en trois coup de
cuillère à pot; j'ai commencer par regarder ce qu'excel me donnai comme
référence, puis j'ai chercher comment l'obtenir, puis comment
l'imbriquer et ensuite comment utiliser les références des cellules de
la feuille pour pouvoir l'étendre aux autres cellules.

Aller, maintenant je me tais :-x

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O








Avatar
JLuc
*Bonjour Lionel*,
Ce soir, j'ai pas eu bien le temps de me pencher sur ton problème, mais
j'ai constaté que tu fais pas mal de mélange dans tes types de données.
Il faut essayer, dans la mesure du possible (pour ne pas dire tout le
temps) de rester coérant.
Par exemple, dans la feuille de l'employé, les jours sont saisis en
nombres de 1 à 12 alors que sur la feuille "janvier", ce sont des dates
au format "j". Tu ne peut pas trouver "1" parmi des valeurs comprises
entre : 39083 (1/1/2007) et 39113 (31/1/2007)
De plus, dans la feuille employé, janvier est la date du 1/1/1900 au
format "mmmm", alors que février et mars sont en texte brut (de plus,
dans ce cas, il faut éviter les fautes d'orthographe : février et pas
fevrier)
Essaie de retravailler un peu tes données dans ce sens là et me dire
quelle valeur tu veux retrouver à quel endroit.
Sinon, la solution de Strarwing est très bonne, mais lui, il a modifié
quelques données


Salut !
Eh non pas encore debarrasse de moi !
Je joins mon fichier
http://cjoint.com/?dvk0KyUjDA
il est expurgé de tous les mois sauf janvier
Et bien qu'ayant je pense compris et tenté d'adapter ce que tu m'avais
expliqué je me retrouve sur un message d'erreur ....
Peux tu regarder et me dire si tu sais ou j'ai commis une erreur ?
Par ailleurs dans l'onglet planning j'utilise une formule pour les jours, 1
2 3 ... cela peut il interferer dans ta formule ?
Merci de me le faire savoir
A bientot
Lionel
"Lionel" a écrit dans le message de news:
4600746c$0$27387$
Bonsoir,
Je rentre du travail et je viens consulter ton message... Tu es là pour
m'aider et je ne sais comment te remercier de toute cette patience et de ce
devouement...
Mais là apres mes heures de travail je dois t'avouer que je vais peut etre
pas decortiquer de suite . lol
Je m'y attelerai demain et j'espere m'en sortir sans plus venir t'ennuyer...
Encore un enorme MERCI !
Amicalement
Lionel
"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Alors maintenant, à nous deux (et aux autres :-))

Pour trouver la donnée que je veux, je fais une recherche avec INDEX :
=INDEX(plage de recherche; ligne dans la plage; colonne dans la plage)

La plage de recherche est dans la feuille d'un mois ex: janvier,
fevrier, mars ...
Comme je ne connais pas l'étendue des données (nombre de lignes) je
prends les colonnes complètes : A:AF
Donc la formule commence comme çà :
=INDEX('janvier'!A:AF;...
Seulement, je n'accede qu'a la feuille "janvier".

Dans ton tableau d'employé (feuille "A"), tu as en ligne 1, les numéros
des mois (1, 2, 3,...) que je transforme en date valide grace à :
DATE(année; mois; jour) qui devient : DATE(2007;B$1;1)
B$1 = colonne B qui evolue si tu copie à droite ou à gauche, ligne 1
qui ne change pas si tu copie en haut ou en bas (le numéro du mois est
toujours en ligne 1)

Mais, il me faux le nom du mois en texte pour représenter la feuille
sur laquelle je recherche la donnée. Donc, j'utilise la formule :
TEXTE(DATE(2007;B$1;1);"mmmm") qui me donne le bon résultat.
Maintenant, pour lui spécifier le nom de la feuille et la plage dans la
feuille, je dois concatener ces informations :
TEXTE(DATE(2007;B$1;1);"mmmm") & "A:AF"
qui me donnera (pour mois=1) : janvierA:AF
ce qui n'est pas bon ! Il faut rajouter une simple cote avant le nom de
la feuille et une simple cote aprés le nom ainsi que le point
d'exlamation :
"'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF"
qui me donnera (pour mois=1) : 'janvier'!A:AF

Mais, pour excel ce n'est qu'un texte qui ne peut pas servir, donc
j'utilise la fonction INDIRECT :
INDIRECT("'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF")
et là, j'ai la bonne plage pour aller chercher dans la feuille (ici :
janvier plage : A:AF)

Maintenant que j'ai la plage de recherche, il faut que je trouve la
bonne ligne dans cette plage. Pour ce faire, je vais récupere le nom de
l'onglet de l'employé : CELLULE("filename";$A$1)
Seulement, par cette fonction, j'obtiens trop de chose : le disque où
se trouve le classeur, le chemin complet, le nom du classeur et le nom
de l'onglet d'où est appelé la fonction. Info du style :
D:FichiersExcelForums[Lionel.xls]A

Avec la fonction STXT, je récupere un nombre donné de caractères (32,
qui commence à faire un sacré nom d'onglet !) à partir d'une position.
La position est trouvée par la recherche du caractère "]" qui termine
le nom du fichier excel auquel on ajoute 1 pour commencer au caractère
suivant :
TROUVE("]";CELLULE("filename";$A$1))+1

La fonction est :
STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;32)
Pour la feuille employé "A", la fonction retourne : A

Ensuite, je cherche cette donnée, dans la colonne A de la feuille du
mois concerné, par la fonction EQUIV
EQUIV(valeur cherchée; table de données; 0 ou 1)
qui me renvoi le numero de ligne dans la plage de recherche :

EQUIV(STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;3

2);INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!a:a");0)

Pour la colonne où je doit prendre la donnée, je refais un EQUIV, mais
avec la cellule qui contient le jour du mois (dans ton exemple, jour en
colonne A de la feuille de l'employé et recherche de cette valeur dans
la ligne 1 de la feuille du mois concerné qui contient les jours) :
EQUIV($A3;INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!1:1");0))

$A3 : colonne A qui n'evolue pas si tu copie à droite ou à gauche,
ligne 3 qui change si tu copie en haut ou en bas (le numéro du jour est
toujours en colonne A dans la feuille de l'employé)
la recherche du numero du jour, dans les feuille des mois est toujours
en ligne 1, donc la plage de recherche est en ligne 1:1

Ce qui donne, au final, la belle formule que je t'ai donné quelques
méssages plus haut

Voila, j'espère que tu n'a pas trop mal à la tête en arrivant ici, vu
tout le charabia développé lol. Il y a encore peu, je n'aurai même pas
pensé pouvoir l'écrire :oÞ
Une formule comme celle ci, je ne l'ai pas pondue en trois coup de
cuillère à pot; j'ai commencer par regarder ce qu'excel me donnai comme
référence, puis j'ai chercher comment l'obtenir, puis comment
l'imbriquer et ensuite comment utiliser les références des cellules de
la feuille pour pouvoir l'étendre aux autres cellules.

Aller, maintenant je me tais :-x

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O




--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



Avatar
Starwing
Pas sûr d'avoir tout bien compris, mais ....

http://cjoint.com/?dvweUtzk7T

Starwing
Avatar
Lionel
Bonsoir ,
Tout d'abord la feuille de reference est la feuille mensuelle.
Les dates ont été notées comme cela pour un besoin évident de pouvoir cibler
les dimanches et les feries...
Dans la feuille employés pas il n'y a pas eu de reflexion sur le format des
dates puisque elles n'étaient pas censées avoir une utilité autre que
"visuelle". Désolé que cela "foute" le bordel... y-a-t-il une solution pour
rester dans la dynamique de ta formule ? quelles modif ou rectif puis je
faire pour regulariser ces problèmes?
Merci Lionel

"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Ce soir, j'ai pas eu bien le temps de me pencher sur ton problème, mais
j'ai constaté que tu fais pas mal de mélange dans tes types de données.
Il faut essayer, dans la mesure du possible (pour ne pas dire tout le
temps) de rester coérant.
Par exemple, dans la feuille de l'employé, les jours sont saisis en
nombres de 1 à 12 alors que sur la feuille "janvier", ce sont des dates
au format "j". Tu ne peut pas trouver "1" parmi des valeurs comprises
entre : 39083 (1/1/2007) et 39113 (31/1/2007)
De plus, dans la feuille employé, janvier est la date du 1/1/1900 au
format "mmmm", alors que février et mars sont en texte brut (de plus,
dans ce cas, il faut éviter les fautes d'orthographe : février et pas
fevrier)
Essaie de retravailler un peu tes données dans ce sens là et me dire
quelle valeur tu veux retrouver à quel endroit.
Sinon, la solution de Strarwing est très bonne, mais lui, il a modifié
quelques données


Salut !
Eh non pas encore debarrasse de moi !
Je joins mon fichier
http://cjoint.com/?dvk0KyUjDA
il est expurgé de tous les mois sauf janvier
Et bien qu'ayant je pense compris et tenté d'adapter ce que tu m'avais
expliqué je me retrouve sur un message d'erreur ....
Peux tu regarder et me dire si tu sais ou j'ai commis une erreur ?
Par ailleurs dans l'onglet planning j'utilise une formule pour les
jours, 1


2 3 ... cela peut il interferer dans ta formule ?
Merci de me le faire savoir
A bientot
Lionel
"Lionel" a écrit dans le message de news:
4600746c$0$27387$
Bonsoir,
Je rentre du travail et je viens consulter ton message... Tu es là pour
m'aider et je ne sais comment te remercier de toute cette patience et
de ce



devouement...
Mais là apres mes heures de travail je dois t'avouer que je vais peut
etre



pas decortiquer de suite . lol
Je m'y attelerai demain et j'espere m'en sortir sans plus venir
t'ennuyer...



Encore un enorme MERCI !
Amicalement
Lionel
"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Alors maintenant, à nous deux (et aux autres :-))

Pour trouver la donnée que je veux, je fais une recherche avec INDEX :
=INDEX(plage de recherche; ligne dans la plage; colonne dans la plage)

La plage de recherche est dans la feuille d'un mois ex: janvier,
fevrier, mars ...
Comme je ne connais pas l'étendue des données (nombre de lignes) je
prends les colonnes complètes : A:AF
Donc la formule commence comme çà :
=INDEX('janvier'!A:AF;...
Seulement, je n'accede qu'a la feuille "janvier".

Dans ton tableau d'employé (feuille "A"), tu as en ligne 1, les
numéros




des mois (1, 2, 3,...) que je transforme en date valide grace à :
DATE(année; mois; jour) qui devient : DATE(2007;B$1;1)
B$1 = colonne B qui evolue si tu copie à droite ou à gauche, ligne 1
qui ne change pas si tu copie en haut ou en bas (le numéro du mois est
toujours en ligne 1)

Mais, il me faux le nom du mois en texte pour représenter la feuille
sur laquelle je recherche la donnée. Donc, j'utilise la formule :
TEXTE(DATE(2007;B$1;1);"mmmm") qui me donne le bon résultat.
Maintenant, pour lui spécifier le nom de la feuille et la plage dans
la




feuille, je dois concatener ces informations :
TEXTE(DATE(2007;B$1;1);"mmmm") & "A:AF"
qui me donnera (pour mois=1) : janvierA:AF
ce qui n'est pas bon ! Il faut rajouter une simple cote avant le nom
de




la feuille et une simple cote aprés le nom ainsi que le point
d'exlamation :
"'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF"
qui me donnera (pour mois=1) : 'janvier'!A:AF

Mais, pour excel ce n'est qu'un texte qui ne peut pas servir, donc
j'utilise la fonction INDIRECT :
INDIRECT("'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF")
et là, j'ai la bonne plage pour aller chercher dans la feuille (ici :
janvier plage : A:AF)

Maintenant que j'ai la plage de recherche, il faut que je trouve la
bonne ligne dans cette plage. Pour ce faire, je vais récupere le nom
de




l'onglet de l'employé : CELLULE("filename";$A$1)
Seulement, par cette fonction, j'obtiens trop de chose : le disque où
se trouve le classeur, le chemin complet, le nom du classeur et le nom
de l'onglet d'où est appelé la fonction. Info du style :
D:FichiersExcelForums[Lionel.xls]A

Avec la fonction STXT, je récupere un nombre donné de caractères (32,
qui commence à faire un sacré nom d'onglet !) à partir d'une position.
La position est trouvée par la recherche du caractère "]" qui termine
le nom du fichier excel auquel on ajoute 1 pour commencer au caractère
suivant :
TROUVE("]";CELLULE("filename";$A$1))+1

La fonction est :

STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;32)




Pour la feuille employé "A", la fonction retourne : A

Ensuite, je cherche cette donnée, dans la colonne A de la feuille du
mois concerné, par la fonction EQUIV
EQUIV(valeur cherchée; table de données; 0 ou 1)
qui me renvoi le numero de ligne dans la plage de recherche :



EQUIV(STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;3



2);INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!a:a");0)

Pour la colonne où je doit prendre la donnée, je refais un EQUIV, mais
avec la cellule qui contient le jour du mois (dans ton exemple, jour
en




colonne A de la feuille de l'employé et recherche de cette valeur dans
la ligne 1 de la feuille du mois concerné qui contient les jours) :
EQUIV($A3;INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!1:1");0))

$A3 : colonne A qui n'evolue pas si tu copie à droite ou à gauche,
ligne 3 qui change si tu copie en haut ou en bas (le numéro du jour
est




toujours en colonne A dans la feuille de l'employé)
la recherche du numero du jour, dans les feuille des mois est toujours
en ligne 1, donc la plage de recherche est en ligne 1:1

Ce qui donne, au final, la belle formule que je t'ai donné quelques
méssages plus haut

Voila, j'espère que tu n'a pas trop mal à la tête en arrivant ici, vu
tout le charabia développé lol. Il y a encore peu, je n'aurai même pas
pensé pouvoir l'écrire :oÞ
Une formule comme celle ci, je ne l'ai pas pondue en trois coup de
cuillère à pot; j'ai commencer par regarder ce qu'excel me donnai
comme




référence, puis j'ai chercher comment l'obtenir, puis comment
l'imbriquer et ensuite comment utiliser les références des cellules de
la feuille pour pouvoir l'étendre aux autres cellules.

Aller, maintenant je me tais :-x

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O




--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O







Avatar
JLuc
*Bonjour Lionel*,
Voila, j'ai modifié le fichier en concequence. C'est pas facile de
l'expliquer ici, alors je te renvoie ton fichier ;-)
http://cjoint.com/?dws1NKpAEQ

Bonsoir ,
Tout d'abord la feuille de reference est la feuille mensuelle.
Les dates ont été notées comme cela pour un besoin évident de pouvoir cibler
les dimanches et les feries...
Dans la feuille employés pas il n'y a pas eu de reflexion sur le format des
dates puisque elles n'étaient pas censées avoir une utilité autre que
"visuelle". Désolé que cela "foute" le bordel... y-a-t-il une solution pour
rester dans la dynamique de ta formule ? quelles modif ou rectif puis je
faire pour regulariser ces problèmes?
Merci Lionel

"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Ce soir, j'ai pas eu bien le temps de me pencher sur ton problème, mais
j'ai constaté que tu fais pas mal de mélange dans tes types de données.
Il faut essayer, dans la mesure du possible (pour ne pas dire tout le
temps) de rester coérant.
Par exemple, dans la feuille de l'employé, les jours sont saisis en
nombres de 1 à 12 alors que sur la feuille "janvier", ce sont des dates
au format "j". Tu ne peut pas trouver "1" parmi des valeurs comprises
entre : 39083 (1/1/2007) et 39113 (31/1/2007)
De plus, dans la feuille employé, janvier est la date du 1/1/1900 au
format "mmmm", alors que février et mars sont en texte brut (de plus,
dans ce cas, il faut éviter les fautes d'orthographe : février et pas
fevrier)
Essaie de retravailler un peu tes données dans ce sens là et me dire
quelle valeur tu veux retrouver à quel endroit.
Sinon, la solution de Strarwing est très bonne, mais lui, il a modifié
quelques données


Salut !
Eh non pas encore debarrasse de moi !
Je joins mon fichier
http://cjoint.com/?dvk0KyUjDA
il est expurgé de tous les mois sauf janvier
Et bien qu'ayant je pense compris et tenté d'adapter ce que tu m'avais
expliqué je me retrouve sur un message d'erreur ....
Peux tu regarder et me dire si tu sais ou j'ai commis une erreur ?
Par ailleurs dans l'onglet planning j'utilise une formule pour les jours, 1
2 3 ... cela peut il interferer dans ta formule ?
Merci de me le faire savoir
A bientot
Lionel
"Lionel" a écrit dans le message de news:
4600746c$0$27387$
Bonsoir,
Je rentre du travail et je viens consulter ton message... Tu es là pour
m'aider et je ne sais comment te remercier de toute cette patience et de
ce devouement...
Mais là apres mes heures de travail je dois t'avouer que je vais peut etre
pas decortiquer de suite . lol
Je m'y attelerai demain et j'espere m'en sortir sans plus venir
t'ennuyer... Encore un enorme MERCI !
Amicalement
Lionel
"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Alors maintenant, à nous deux (et aux autres :-))

Pour trouver la donnée que je veux, je fais une recherche avec INDEX :
=INDEX(plage de recherche; ligne dans la plage; colonne dans la plage)

La plage de recherche est dans la feuille d'un mois ex: janvier,
fevrier, mars ...
Comme je ne connais pas l'étendue des données (nombre de lignes) je
prends les colonnes complètes : A:AF
Donc la formule commence comme çà :
=INDEX('janvier'!A:AF;...
Seulement, je n'accede qu'a la feuille "janvier".

Dans ton tableau d'employé (feuille "A"), tu as en ligne 1, les numéros
des mois (1, 2, 3,...) que je transforme en date valide grace à :
DATE(année; mois; jour) qui devient : DATE(2007;B$1;1)
B$1 = colonne B qui evolue si tu copie à droite ou à gauche, ligne 1
qui ne change pas si tu copie en haut ou en bas (le numéro du mois est
toujours en ligne 1)

Mais, il me faux le nom du mois en texte pour représenter la feuille
sur laquelle je recherche la donnée. Donc, j'utilise la formule :
TEXTE(DATE(2007;B$1;1);"mmmm") qui me donne le bon résultat.
Maintenant, pour lui spécifier le nom de la feuille et la plage dans la
feuille, je dois concatener ces informations :
TEXTE(DATE(2007;B$1;1);"mmmm") & "A:AF"
qui me donnera (pour mois=1) : janvierA:AF
ce qui n'est pas bon ! Il faut rajouter une simple cote avant le nom de
la feuille et une simple cote aprés le nom ainsi que le point
d'exlamation :
"'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF"
qui me donnera (pour mois=1) : 'janvier'!A:AF

Mais, pour excel ce n'est qu'un texte qui ne peut pas servir, donc
j'utilise la fonction INDIRECT :
INDIRECT("'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF")
et là, j'ai la bonne plage pour aller chercher dans la feuille (ici :
janvier plage : A:AF)

Maintenant que j'ai la plage de recherche, il faut que je trouve la
bonne ligne dans cette plage. Pour ce faire, je vais récupere le nom de
l'onglet de l'employé : CELLULE("filename";$A$1)
Seulement, par cette fonction, j'obtiens trop de chose : le disque où
se trouve le classeur, le chemin complet, le nom du classeur et le nom
de l'onglet d'où est appelé la fonction. Info du style :
D:FichiersExcelForums[Lionel.xls]A

Avec la fonction STXT, je récupere un nombre donné de caractères (32,
qui commence à faire un sacré nom d'onglet !) à partir d'une position.
La position est trouvée par la recherche du caractère "]" qui termine
le nom du fichier excel auquel on ajoute 1 pour commencer au caractère
suivant :
TROUVE("]";CELLULE("filename";$A$1))+1

La fonction est :
STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;32)
Pour la feuille employé "A", la fonction retourne : A

Ensuite, je cherche cette donnée, dans la colonne A de la feuille du
mois concerné, par la fonction EQUIV
EQUIV(valeur cherchée; table de données; 0 ou 1)
qui me renvoi le numero de ligne dans la plage de recherche :

EQUIV(STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;3

2);INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!a:a");0)

Pour la colonne où je doit prendre la donnée, je refais un EQUIV, mais
avec la cellule qui contient le jour du mois (dans ton exemple, jour en
colonne A de la feuille de l'employé et recherche de cette valeur dans
la ligne 1 de la feuille du mois concerné qui contient les jours) :
EQUIV($A3;INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!1:1");0))

$A3 : colonne A qui n'evolue pas si tu copie à droite ou à gauche,
ligne 3 qui change si tu copie en haut ou en bas (le numéro du jour est
toujours en colonne A dans la feuille de l'employé)
la recherche du numero du jour, dans les feuille des mois est toujours
en ligne 1, donc la plage de recherche est en ligne 1:1

Ce qui donne, au final, la belle formule que je t'ai donné quelques
méssages plus haut

Voila, j'espère que tu n'a pas trop mal à la tête en arrivant ici, vu
tout le charabia développé lol. Il y a encore peu, je n'aurai même pas
pensé pouvoir l'écrire :oÞ
Une formule comme celle ci, je ne l'ai pas pondue en trois coup de
cuillère à pot; j'ai commencer par regarder ce qu'excel me donnai comme
référence, puis j'ai chercher comment l'obtenir, puis comment
l'imbriquer et ensuite comment utiliser les références des cellules de
la feuille pour pouvoir l'étendre aux autres cellules.

Aller, maintenant je me tais :-x

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O




--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O





Avatar
Lionel
resalut
Ta formule ne fonctionne pas sur le fichier que tu m'as renvoyé si je
rajoute un onglet février.


"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Voila, j'ai modifié le fichier en concequence. C'est pas facile de
l'expliquer ici, alors je te renvoie ton fichier ;-)
http://cjoint.com/?dws1NKpAEQ

Bonsoir ,
Tout d'abord la feuille de reference est la feuille mensuelle.
Les dates ont été notées comme cela pour un besoin évident de pouvoir
cibler


les dimanches et les feries...
Dans la feuille employés pas il n'y a pas eu de reflexion sur le format
des


dates puisque elles n'étaient pas censées avoir une utilité autre que
"visuelle". Désolé que cela "foute" le bordel... y-a-t-il une solution
pour


rester dans la dynamique de ta formule ? quelles modif ou rectif puis
je


faire pour regulariser ces problèmes?
Merci Lionel

"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Ce soir, j'ai pas eu bien le temps de me pencher sur ton problème, mais
j'ai constaté que tu fais pas mal de mélange dans tes types de données.
Il faut essayer, dans la mesure du possible (pour ne pas dire tout le
temps) de rester coérant.
Par exemple, dans la feuille de l'employé, les jours sont saisis en
nombres de 1 à 12 alors que sur la feuille "janvier", ce sont des dates
au format "j". Tu ne peut pas trouver "1" parmi des valeurs comprises
entre : 39083 (1/1/2007) et 39113 (31/1/2007)
De plus, dans la feuille employé, janvier est la date du 1/1/1900 au
format "mmmm", alors que février et mars sont en texte brut (de plus,
dans ce cas, il faut éviter les fautes d'orthographe : février et pas
fevrier)
Essaie de retravailler un peu tes données dans ce sens là et me dire
quelle valeur tu veux retrouver à quel endroit.
Sinon, la solution de Strarwing est très bonne, mais lui, il a modifié
quelques données


Salut !
Eh non pas encore debarrasse de moi !
Je joins mon fichier
http://cjoint.com/?dvk0KyUjDA
il est expurgé de tous les mois sauf janvier
Et bien qu'ayant je pense compris et tenté d'adapter ce que tu m'avais
expliqué je me retrouve sur un message d'erreur ....
Peux tu regarder et me dire si tu sais ou j'ai commis une erreur ?
Par ailleurs dans l'onglet planning j'utilise une formule pour les
jours, 1




2 3 ... cela peut il interferer dans ta formule ?
Merci de me le faire savoir
A bientot
Lionel
"Lionel" a écrit dans le message de news:
4600746c$0$27387$
Bonsoir,
Je rentre du travail et je viens consulter ton message... Tu es là
pour





m'aider et je ne sais comment te remercier de toute cette patience et
de





ce devouement...
Mais là apres mes heures de travail je dois t'avouer que je vais peut
etre





pas decortiquer de suite . lol
Je m'y attelerai demain et j'espere m'en sortir sans plus venir
t'ennuyer... Encore un enorme MERCI !
Amicalement
Lionel
"JLuc" a écrit dans le message de
news:






*Bonjour Lionel*,
Alors maintenant, à nous deux (et aux autres :-))

Pour trouver la donnée que je veux, je fais une recherche avec INDEX
:






=INDEX(plage de recherche; ligne dans la plage; colonne dans la
plage)







La plage de recherche est dans la feuille d'un mois ex: janvier,
fevrier, mars ...
Comme je ne connais pas l'étendue des données (nombre de lignes) je
prends les colonnes complètes : A:AF
Donc la formule commence comme çà :
=INDEX('janvier'!A:AF;...
Seulement, je n'accede qu'a la feuille "janvier".

Dans ton tableau d'employé (feuille "A"), tu as en ligne 1, les
numéros






des mois (1, 2, 3,...) que je transforme en date valide grace à :
DATE(année; mois; jour) qui devient : DATE(2007;B$1;1)
B$1 = colonne B qui evolue si tu copie à droite ou à gauche, ligne 1
qui ne change pas si tu copie en haut ou en bas (le numéro du mois
est






toujours en ligne 1)

Mais, il me faux le nom du mois en texte pour représenter la feuille
sur laquelle je recherche la donnée. Donc, j'utilise la formule :
TEXTE(DATE(2007;B$1;1);"mmmm") qui me donne le bon résultat.
Maintenant, pour lui spécifier le nom de la feuille et la plage dans
la






feuille, je dois concatener ces informations :
TEXTE(DATE(2007;B$1;1);"mmmm") & "A:AF"
qui me donnera (pour mois=1) : janvierA:AF
ce qui n'est pas bon ! Il faut rajouter une simple cote avant le nom
de






la feuille et une simple cote aprés le nom ainsi que le point
d'exlamation :
"'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF"
qui me donnera (pour mois=1) : 'janvier'!A:AF

Mais, pour excel ce n'est qu'un texte qui ne peut pas servir, donc
j'utilise la fonction INDIRECT :
INDIRECT("'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF")
et là, j'ai la bonne plage pour aller chercher dans la feuille (ici
:






janvier plage : A:AF)

Maintenant que j'ai la plage de recherche, il faut que je trouve la
bonne ligne dans cette plage. Pour ce faire, je vais récupere le nom
de






l'onglet de l'employé : CELLULE("filename";$A$1)
Seulement, par cette fonction, j'obtiens trop de chose : le disque







se trouve le classeur, le chemin complet, le nom du classeur et le
nom






de l'onglet d'où est appelé la fonction. Info du style :
D:FichiersExcelForums[Lionel.xls]A

Avec la fonction STXT, je récupere un nombre donné de caractères
(32,






qui commence à faire un sacré nom d'onglet !) à partir d'une
position.






La position est trouvée par la recherche du caractère "]" qui
termine






le nom du fichier excel auquel on ajoute 1 pour commencer au
caractère






suivant :
TROUVE("]";CELLULE("filename";$A$1))+1

La fonction est :

STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;32)






Pour la feuille employé "A", la fonction retourne : A

Ensuite, je cherche cette donnée, dans la colonne A de la feuille du
mois concerné, par la fonction EQUIV
EQUIV(valeur cherchée; table de données; 0 ou 1)
qui me renvoi le numero de ligne dans la plage de recherche :



EQUIV(STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;3





2);INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!a:a");0)

Pour la colonne où je doit prendre la donnée, je refais un EQUIV,
mais






avec la cellule qui contient le jour du mois (dans ton exemple, jour
en






colonne A de la feuille de l'employé et recherche de cette valeur
dans






la ligne 1 de la feuille du mois concerné qui contient les jours) :
EQUIV($A3;INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!1:1");0))

$A3 : colonne A qui n'evolue pas si tu copie à droite ou à gauche,
ligne 3 qui change si tu copie en haut ou en bas (le numéro du jour
est






toujours en colonne A dans la feuille de l'employé)
la recherche du numero du jour, dans les feuille des mois est
toujours






en ligne 1, donc la plage de recherche est en ligne 1:1

Ce qui donne, au final, la belle formule que je t'ai donné quelques
méssages plus haut

Voila, j'espère que tu n'a pas trop mal à la tête en arrivant ici,
vu






tout le charabia développé lol. Il y a encore peu, je n'aurai même
pas






pensé pouvoir l'écrire :oÞ
Une formule comme celle ci, je ne l'ai pas pondue en trois coup de
cuillère à pot; j'ai commencer par regarder ce qu'excel me donnai
comme






référence, puis j'ai chercher comment l'obtenir, puis comment
l'imbriquer et ensuite comment utiliser les références des cellules
de






la feuille pour pouvoir l'étendre aux autres cellules.

Aller, maintenant je me tais :-x

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O




--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O









Avatar
JLuc
*Bonjour Lionel*,
J'ai fais le test, et çà marche mais que sur une colonne ??
Pour la feuille "février", il faut copié la feuille "janvier" et il
faut bien penser à changer la date sur cette dernière en C1
1/1/2007 --> 1/2/2007
Dans la colonne des heures, sur la feuille de l'employé, j'ai changé la
référence pour la cellule du mois F$2 --> E$2 et là, on a le bon
résultat. Problème des cellules fusionnées

resalut
Ta formule ne fonctionne pas sur le fichier que tu m'as renvoyé si je
rajoute un onglet février.


"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Voila, j'ai modifié le fichier en concequence. C'est pas facile de
l'expliquer ici, alors je te renvoie ton fichier ;-)
http://cjoint.com/?dws1NKpAEQ

Bonsoir ,
Tout d'abord la feuille de reference est la feuille mensuelle.
Les dates ont été notées comme cela pour un besoin évident de pouvoir
cibler les dimanches et les feries...
Dans la feuille employés pas il n'y a pas eu de reflexion sur le format des
dates puisque elles n'étaient pas censées avoir une utilité autre que
"visuelle". Désolé que cela "foute" le bordel... y-a-t-il une solution pour
rester dans la dynamique de ta formule ? quelles modif ou rectif puis je
faire pour regulariser ces problèmes?
Merci Lionel

"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Ce soir, j'ai pas eu bien le temps de me pencher sur ton problème, mais
j'ai constaté que tu fais pas mal de mélange dans tes types de données.
Il faut essayer, dans la mesure du possible (pour ne pas dire tout le
temps) de rester coérant.
Par exemple, dans la feuille de l'employé, les jours sont saisis en
nombres de 1 à 12 alors que sur la feuille "janvier", ce sont des dates
au format "j". Tu ne peut pas trouver "1" parmi des valeurs comprises
entre : 39083 (1/1/2007) et 39113 (31/1/2007)
De plus, dans la feuille employé, janvier est la date du 1/1/1900 au
format "mmmm", alors que février et mars sont en texte brut (de plus,
dans ce cas, il faut éviter les fautes d'orthographe : février et pas
fevrier)
Essaie de retravailler un peu tes données dans ce sens là et me dire
quelle valeur tu veux retrouver à quel endroit.
Sinon, la solution de Strarwing est très bonne, mais lui, il a modifié
quelques données


Salut !
Eh non pas encore debarrasse de moi !
Je joins mon fichier
http://cjoint.com/?dvk0KyUjDA
il est expurgé de tous les mois sauf janvier
Et bien qu'ayant je pense compris et tenté d'adapter ce que tu m'avais
expliqué je me retrouve sur un message d'erreur ....
Peux tu regarder et me dire si tu sais ou j'ai commis une erreur ?
Par ailleurs dans l'onglet planning j'utilise une formule pour les jours,
1 2 3 ... cela peut il interferer dans ta formule ?
Merci de me le faire savoir
A bientot
Lionel
"Lionel" a écrit dans le message de news:
4600746c$0$27387$
Bonsoir,
Je rentre du travail et je viens consulter ton message... Tu es là pour
m'aider et je ne sais comment te remercier de toute cette patience et de
ce devouement...
Mais là apres mes heures de travail je dois t'avouer que je vais peut
etre pas decortiquer de suite . lol
Je m'y attelerai demain et j'espere m'en sortir sans plus venir
t'ennuyer... Encore un enorme MERCI !
Amicalement
Lionel
"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Alors maintenant, à nous deux (et aux autres :-))

Pour trouver la donnée que je veux, je fais une recherche avec INDEX
=INDEX(plage de recherche; ligne dans la plage; colonne dans la plage)

La plage de recherche est dans la feuille d'un mois ex: janvier,
fevrier, mars ...
Comme je ne connais pas l'étendue des données (nombre de lignes) je
prends les colonnes complètes : A:AF
Donc la formule commence comme çà :
=INDEX('janvier'!A:AF;...
Seulement, je n'accede qu'a la feuille "janvier".

Dans ton tableau d'employé (feuille "A"), tu as en ligne 1, les numéros
des mois (1, 2, 3,...) que je transforme en date valide grace à :
DATE(année; mois; jour) qui devient : DATE(2007;B$1;1)
B$1 = colonne B qui evolue si tu copie à droite ou à gauche, ligne 1
qui ne change pas si tu copie en haut ou en bas (le numéro du mois est
toujours en ligne 1)

Mais, il me faux le nom du mois en texte pour représenter la feuille
sur laquelle je recherche la donnée. Donc, j'utilise la formule :
TEXTE(DATE(2007;B$1;1);"mmmm") qui me donne le bon résultat.
Maintenant, pour lui spécifier le nom de la feuille et la plage dans la
feuille, je dois concatener ces informations :
TEXTE(DATE(2007;B$1;1);"mmmm") & "A:AF"
qui me donnera (pour mois=1) : janvierA:AF
ce qui n'est pas bon ! Il faut rajouter une simple cote avant le nom de
la feuille et une simple cote aprés le nom ainsi que le point
d'exlamation :
"'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF"
qui me donnera (pour mois=1) : 'janvier'!A:AF

Mais, pour excel ce n'est qu'un texte qui ne peut pas servir, donc
j'utilise la fonction INDIRECT :
INDIRECT("'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF")
et là, j'ai la bonne plage pour aller chercher dans la feuille (ici
janvier plage : A:AF)

Maintenant que j'ai la plage de recherche, il faut que je trouve la
bonne ligne dans cette plage. Pour ce faire, je vais récupere le nom de
l'onglet de l'employé : CELLULE("filename";$A$1)
Seulement, par cette fonction, j'obtiens trop de chose : le disque où
se trouve le classeur, le chemin complet, le nom du classeur et le nom
de l'onglet d'où est appelé la fonction. Info du style :
D:FichiersExcelForums[Lionel.xls]A

Avec la fonction STXT, je récupere un nombre donné de caractères (32,
qui commence à faire un sacré nom d'onglet !) à partir d'une position.
La position est trouvée par la recherche du caractère "]" qui termine
le nom du fichier excel auquel on ajoute 1 pour commencer au caractère
suivant :
TROUVE("]";CELLULE("filename";$A$1))+1

La fonction est :
STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;32)
Pour la feuille employé "A", la fonction retourne : A

Ensuite, je cherche cette donnée, dans la colonne A de la feuille du
mois concerné, par la fonction EQUIV
EQUIV(valeur cherchée; table de données; 0 ou 1)
qui me renvoi le numero de ligne dans la plage de recherche :

EQUIV(STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;3

2);INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!a:a");0)

Pour la colonne où je doit prendre la donnée, je refais un EQUIV, mais
avec la cellule qui contient le jour du mois (dans ton exemple, jour en
colonne A de la feuille de l'employé et recherche de cette valeur dans
la ligne 1 de la feuille du mois concerné qui contient les jours) :
EQUIV($A3;INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!1:1");0))

$A3 : colonne A qui n'evolue pas si tu copie à droite ou à gauche,
ligne 3 qui change si tu copie en haut ou en bas (le numéro du jour est
toujours en colonne A dans la feuille de l'employé)
la recherche du numero du jour, dans les feuille des mois est toujours
en ligne 1, donc la plage de recherche est en ligne 1:1

Ce qui donne, au final, la belle formule que je t'ai donné quelques
méssages plus haut

Voila, j'espère que tu n'a pas trop mal à la tête en arrivant ici, vu
tout le charabia développé lol. Il y a encore peu, je n'aurai même pas
pensé pouvoir l'écrire :oÞ
Une formule comme celle ci, je ne l'ai pas pondue en trois coup de
cuillère à pot; j'ai commencer par regarder ce qu'excel me donnai comme
référence, puis j'ai chercher comment l'obtenir, puis comment
l'imbriquer et ensuite comment utiliser les références des cellules de
la feuille pour pouvoir l'étendre aux autres cellules.

Aller, maintenant je me tais :-x

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O




--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O







Avatar
Lionel
Bonjour,
Apres avoir decortiqué expression apres expression pour savoir ce quoi la
formule cherchais a obtenir, je n'arrive a aucun resultat du reel dans mes
tableaux... au mieux j'ai un resultat erroné (je crois qu'il y a un decalage
de 4 colonnes) au pire le message #N/A ou #NOMBRE ! je crois que ce que je
recherche est impossible a obtenir dans excel. Ca m'ennuie d'etre contraint
d'abandonner ou de passer par le fastidieux copier coller avec liaison...
Help !

"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
J'ai fais le test, et çà marche mais que sur une colonne ??
Pour la feuille "février", il faut copié la feuille "janvier" et il
faut bien penser à changer la date sur cette dernière en C1
1/1/2007 --> 1/2/2007
Dans la colonne des heures, sur la feuille de l'employé, j'ai changé la
référence pour la cellule du mois F$2 --> E$2 et là, on a le bon
résultat. Problème des cellules fusionnées

resalut
Ta formule ne fonctionne pas sur le fichier que tu m'as renvoyé si je
rajoute un onglet février.


"JLuc" a écrit dans le message de news:

*Bonjour Lionel*,
Voila, j'ai modifié le fichier en concequence. C'est pas facile de
l'expliquer ici, alors je te renvoie ton fichier ;-)
http://cjoint.com/?dws1NKpAEQ

Bonsoir ,
Tout d'abord la feuille de reference est la feuille mensuelle.
Les dates ont été notées comme cela pour un besoin évident de pouvoir
cibler les dimanches et les feries...
Dans la feuille employés pas il n'y a pas eu de reflexion sur le
format des




dates puisque elles n'étaient pas censées avoir une utilité autre que
"visuelle". Désolé que cela "foute" le bordel... y-a-t-il une solution
pour




rester dans la dynamique de ta formule ? quelles modif ou rectif puis
je




faire pour regulariser ces problèmes?
Merci Lionel

"JLuc" a écrit dans le message de
news:





*Bonjour Lionel*,
Ce soir, j'ai pas eu bien le temps de me pencher sur ton problème,
mais





j'ai constaté que tu fais pas mal de mélange dans tes types de
données.





Il faut essayer, dans la mesure du possible (pour ne pas dire tout le
temps) de rester coérant.
Par exemple, dans la feuille de l'employé, les jours sont saisis en
nombres de 1 à 12 alors que sur la feuille "janvier", ce sont des
dates





au format "j". Tu ne peut pas trouver "1" parmi des valeurs comprises
entre : 39083 (1/1/2007) et 39113 (31/1/2007)
De plus, dans la feuille employé, janvier est la date du 1/1/1900 au
format "mmmm", alors que février et mars sont en texte brut (de plus,
dans ce cas, il faut éviter les fautes d'orthographe : février et pas
fevrier)
Essaie de retravailler un peu tes données dans ce sens là et me dire
quelle valeur tu veux retrouver à quel endroit.
Sinon, la solution de Strarwing est très bonne, mais lui, il a
modifié





quelques données


Salut !
Eh non pas encore debarrasse de moi !
Je joins mon fichier
http://cjoint.com/?dvk0KyUjDA
il est expurgé de tous les mois sauf janvier
Et bien qu'ayant je pense compris et tenté d'adapter ce que tu
m'avais






expliqué je me retrouve sur un message d'erreur ....
Peux tu regarder et me dire si tu sais ou j'ai commis une erreur ?
Par ailleurs dans l'onglet planning j'utilise une formule pour les
jours,






1 2 3 ... cela peut il interferer dans ta formule ?
Merci de me le faire savoir
A bientot
Lionel
"Lionel" a écrit dans le message de news:
4600746c$0$27387$
Bonsoir,
Je rentre du travail et je viens consulter ton message... Tu es là
pour







m'aider et je ne sais comment te remercier de toute cette patience
et de







ce devouement...
Mais là apres mes heures de travail je dois t'avouer que je vais
peut







etre pas decortiquer de suite . lol
Je m'y attelerai demain et j'espere m'en sortir sans plus venir
t'ennuyer... Encore un enorme MERCI !
Amicalement
Lionel
"JLuc" a écrit dans le message de
news:








*Bonjour Lionel*,
Alors maintenant, à nous deux (et aux autres :-))

Pour trouver la donnée que je veux, je fais une recherche avec
INDEX








=INDEX(plage de recherche; ligne dans la plage; colonne dans la
plage)









La plage de recherche est dans la feuille d'un mois ex: janvier,
fevrier, mars ...
Comme je ne connais pas l'étendue des données (nombre de lignes)
je








prends les colonnes complètes : A:AF
Donc la formule commence comme çà :
=INDEX('janvier'!A:AF;...
Seulement, je n'accede qu'a la feuille "janvier".

Dans ton tableau d'employé (feuille "A"), tu as en ligne 1, les
numéros








des mois (1, 2, 3,...) que je transforme en date valide grace à :
DATE(année; mois; jour) qui devient : DATE(2007;B$1;1)
B$1 = colonne B qui evolue si tu copie à droite ou à gauche, ligne
1








qui ne change pas si tu copie en haut ou en bas (le numéro du mois
est








toujours en ligne 1)

Mais, il me faux le nom du mois en texte pour représenter la
feuille








sur laquelle je recherche la donnée. Donc, j'utilise la formule :
TEXTE(DATE(2007;B$1;1);"mmmm") qui me donne le bon résultat.
Maintenant, pour lui spécifier le nom de la feuille et la plage
dans la








feuille, je dois concatener ces informations :
TEXTE(DATE(2007;B$1;1);"mmmm") & "A:AF"
qui me donnera (pour mois=1) : janvierA:AF
ce qui n'est pas bon ! Il faut rajouter une simple cote avant le
nom de








la feuille et une simple cote aprés le nom ainsi que le point
d'exlamation :
"'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF"
qui me donnera (pour mois=1) : 'janvier'!A:AF

Mais, pour excel ce n'est qu'un texte qui ne peut pas servir, donc
j'utilise la fonction INDIRECT :
INDIRECT("'" & TEXTE(DATE(2007;B$1;1);"mmmm") & "'!A:AF")
et là, j'ai la bonne plage pour aller chercher dans la feuille
(ici








janvier plage : A:AF)

Maintenant que j'ai la plage de recherche, il faut que je trouve
la








bonne ligne dans cette plage. Pour ce faire, je vais récupere le
nom de








l'onglet de l'employé : CELLULE("filename";$A$1)
Seulement, par cette fonction, j'obtiens trop de chose : le disque









se trouve le classeur, le chemin complet, le nom du classeur et le
nom








de l'onglet d'où est appelé la fonction. Info du style :
D:FichiersExcelForums[Lionel.xls]A

Avec la fonction STXT, je récupere un nombre donné de caractères
(32,








qui commence à faire un sacré nom d'onglet !) à partir d'une
position.








La position est trouvée par la recherche du caractère "]" qui
termine








le nom du fichier excel auquel on ajoute 1 pour commencer au
caractère








suivant :
TROUVE("]";CELLULE("filename";$A$1))+1

La fonction est :

STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;32)








Pour la feuille employé "A", la fonction retourne : A

Ensuite, je cherche cette donnée, dans la colonne A de la feuille
du








mois concerné, par la fonction EQUIV
EQUIV(valeur cherchée; table de données; 0 ou 1)
qui me renvoi le numero de ligne dans la plage de recherche :



EQUIV(STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;3







2);INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!a:a");0)

Pour la colonne où je doit prendre la donnée, je refais un EQUIV,
mais








avec la cellule qui contient le jour du mois (dans ton exemple,
jour en








colonne A de la feuille de l'employé et recherche de cette valeur
dans








la ligne 1 de la feuille du mois concerné qui contient les jours)
:








EQUIV($A3;INDIRECT("'"&TEXTE(DATE(2007;B$1;1);"mmmm")&"'!1:1");0))

$A3 : colonne A qui n'evolue pas si tu copie à droite ou à gauche,
ligne 3 qui change si tu copie en haut ou en bas (le numéro du
jour est








toujours en colonne A dans la feuille de l'employé)
la recherche du numero du jour, dans les feuille des mois est
toujours








en ligne 1, donc la plage de recherche est en ligne 1:1

Ce qui donne, au final, la belle formule que je t'ai donné
quelques








méssages plus haut

Voila, j'espère que tu n'a pas trop mal à la tête en arrivant ici,
vu








tout le charabia développé lol. Il y a encore peu, je n'aurai même
pas








pensé pouvoir l'écrire :oÞ
Une formule comme celle ci, je ne l'ai pas pondue en trois coup de
cuillère à pot; j'ai commencer par regarder ce qu'excel me donnai
comme








référence, puis j'ai chercher comment l'obtenir, puis comment
l'imbriquer et ensuite comment utiliser les références des
cellules de








la feuille pour pouvoir l'étendre aux autres cellules.

Aller, maintenant je me tais :-x

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O




--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O











Avatar
JLuc
Envois moi ton fichier complet en bal perso, je vais regarder de plus
près

--
JLuc
1 2