aperçu quotidien d'un emploi du temps annuel

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
hidetogil
Fraîchement OOthentifié
Messages : 6
Inscription : 06 juil. 2009 07:54

aperçu quotidien d'un emploi du temps annuel

Message par hidetogil »

Bonjour,

J'ai fait des recherches sur le forum et je suis tombé sur ce post http://user.services.openoffice.org/fr/ ... =4&t=17836 mais je n'arrive pas à l'adapter à mon cas.

J'ai plusieurs fichiers, ce sont tous des emplois du temps annuels pour de la gestion de personnels. Ces fichiers comportent plusieurs feuilles (un feuille par mois) i.e dans chaque feuille j'ai l'emploi du temps du mois.

La configuration type de mes fichiers est la suivante :
Fichier personnel 1 / feuille janvier (emploi du temps janvier) / feuille février (emploi du temps février) etc
Fichier personnel 2 ---- idem
Fichier personnel 3 ---- idem

Ce que je souhaite c'est d'avoir, au quotidien, un fichier récapitulatif qui irait chercher dans chacun de mes fichiers pour la date donnée, les personnels qui travaillent ce jour. Pour le 1er janvier par exemple, mon fichier récapitulatif ira scruter la feuille janvier du fichier personnel 1, 2 et 3 et regarder, dans la colonne correspondante quelle case est cochée et affichera le nom correspondant.

J'ai joint en exemple un fichier pour expliquer ce que je veux, ce sera un peu plus clair :wink:

Voila je ne sais pas du tout quelle fonction utiliser, je vous remercie tous d'avance pour votre aide.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 3.0.1 sous Windows XP
jjk
HédOOniste
HédOOniste
Messages : 1696
Inscription : 27 oct. 2008 14:30

Re: aperçu quotidien d'un emploi du temps annuel

Message par jjk »

Bonjour

Voici un premier élément de réponse :
J'ai supposé pour le moment qu'on reste dans le même fichier et que j'ai donc une feuille supplémentaire dans ce fichier, la même que celle que tu as appelé "AUTRE FICHIER".
Dans cette feuille, pour afficher à partir de B9, la liste des personnels travaillant le jour j (j'ai nommé "j" la cellule B4 qui contient la date cible), tu écris cette formule en B9 et tu la recopies vers le bas un certain nombre de fois.

Code : Tout sélectionner

=SI(DECALER(INDIRECT(TEXTE(j;"mmmm")&".A1");LIGNE()-4;JOUR(j))="X";DECALER(INDIRECT(TEXTE(j;"mmmm")&".A1");LIGNE()-4;0);"")
La formule renvoie une chaine vide pour ceux qui ne travaillent pas, et le nom de ceux qui travaillent.

Il ne reste "plus" qu'à gérer le passage à un autre fichier, et à supprimer les lignes vides correspondant à ceux qui ne travaillent pas.
C'est une autre paire de manches que je n'ai pas le temps d'aborder aujourd'hui.

Cordialement.
OpenOffice 3.1.1 sous XP-SP2 et LibreOffice 3.5.0 sous Win 7
hidetogil
Fraîchement OOthentifié
Messages : 6
Inscription : 06 juil. 2009 07:54

Re: aperçu quotidien d'un emploi du temps annuel

Message par hidetogil »

Déjà un très grand merci à toi pour ton aide! :bravo:

Je vais essayer de comprendre comment fonctionne ton code et je vais essayer de voir si j'arrive à l'exploiter...

Dans ce code d'ailleurs, quelle est la partie qui lui dit qu'il faut aller sur la feuille janvier ou février?

Merci encore!!!
OpenOffice 3.0.1 sous Windows XP
jjk
HédOOniste
HédOOniste
Messages : 1696
Inscription : 27 oct. 2008 14:30

Re: aperçu quotidien d'un emploi du temps annuel

Message par jjk »

Rappel de la formule :

Code : Tout sélectionner

=SI(DECALER(INDIRECT(TEXTE(j;"mmmm")&".A1");LIGNE()-4;JOUR(j))="X";DECALER(INDIRECT(TEXTE(j;"mmmm")&".A1");LIGNE()-4;0);"")
Une petite explication :
TEXTE(j;"mmmm") renvoie le mois du jour j en toutes lettres.
Si j=25/12/2008 alors JOUR(j)=25

Code : Tout sélectionner

INDIRECT(TEXTE(j;"mmmm")&".A1")
renvoie donc INDIRECT("décembre.A1") c'est-à-dire la 1ère cellule de la feuille décembre.
LIGNE() est le n° de ligne de la cellule courante. Ici c'est B9, donc LIGNE()-4 = 9-4 = 5, c'est-à-dire la ligne où commence ton tableau de "X".

Code : Tout sélectionner

DECALER(décembre.A1;LIGNE()-4;JOUR(j))
renvoie la cellule située 5 lignes plus bas que A1 et 25 colonnes à droite de A1, donc dans la colonne du jour et dans la ligne courante

Si cette cellule ne contient pas "X" alors la formule renvoie une chaine vide, sinon elle renvoie :

Code : Tout sélectionner

DECALER(INDIRECT(TEXTE(j;"mmmm")&".A1");LIGNE()-4;0)
soit le contenu de la ligne courante de la feuille du mois correspondant au jour j, mais cette fois en colonne A (décalée de 0 colonne par rapport à A1), c'est-à-dire le nom de la personne.
OpenOffice 3.1.1 sous XP-SP2 et LibreOffice 3.5.0 sous Win 7
Avatar de l’utilisateur
Loopingss
InconditiOOnnel
InconditiOOnnel
Messages : 783
Inscription : 17 déc. 2008 01:50

Re: aperçu quotidien d'un emploi du temps annuel

Message par Loopingss »

Bonjour,
Il existe une autre solution, celle proposée par jjk étant brillante. Voir la feuille jan2.
Le tableau doit être adapté. On crée autant de colonne OUIx que de personnel devant travailler et une ou plusieurs colonnes "NON" et "PEUT-ETRE".
Avec le pilote de données, on crée un tableau dynamique regroupant toutes des colonnes "OUI", avec un filtre sur la date.
COOordialement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.