Relevé Présence

bloody

XLDnaute Nouveau
bonjour à tous

je tente en vain de me faire un document Excel type planning Gantt ne contenant que les mardis, jeudis et samedis.
je bute systématiquement sur un pb qui je crois est contournable par un connaisseur.
j'ai utilisé le type de formule qui permet de trouver le premier mardi, le premier jeudi et ainsi de suite !!!! mais mon analyse n'est peut être pas fameuse puisqu'à chaque fois les premiers du mois ne sont pas les mêmes, et du coup tout se décale.
Auriez vous une idée SVP ?????


merci par avance
 

Pièces jointes

  • Presence_V1.xls
    48 KB · Affichages: 171

wilfried_42

XLDnaute Barbatruc
Re : Relevé Présence

Bonjour

Voici un exemple de ce qui peut etre fait, tout sans Macro, par formule

en feuille 1, j'ai l'année en A1, avec une semaine de definie en colonne B, en colonne C, j'ai vrai ou faux, VRAI si le jour en colonne B correspond à un mardi ou jeudi ou samedi

Cela pour connaitre le 1er jour de l'année qui correspond

en feuille 2, j'ai en A1,A6,A11, La gestion des mois
en a2, A7, A12 le n° de la semaine correspondant au 1er bon jour du mois

en A3, pour janvier (date de base gérée en feuille 1 --> B1)
je recupere la date correspondant au 1er VRAI
=INDEX(Feuil1!B:B;EQUIV(VRAI;Feuil1!D:D;0);1)
En A2, j'utilise le resultat de A3 pour recuperer le n° de semaine correspondant
En D2, J'ajoute 1 à A2, En G2, 1 à D2 etc

ensuite la formule qui va bien
Code:
=SI(MOIS(SI(NO.SEMAINE(SI(OU(JOURSEM(MAX($A3:A3);2)=2;JOURSEM(MAX($A3:A3);2)=4);MAX($A3:A3)+2;MAX($A3:A3)+3))=A2;SI(OU(JOURSEM(MAX($A3:A3);2)=2;JOURSEM(MAX($A3:A3);2)=4);MAX($A3:A3)+2;MAX($A3:A3)+3);0))=MOIS($A1);SI(NO.SEMAINE(SI(OU(JOURSEM(MAX($A3:A3);2)=2;JOURSEM(MAX($A3:A3);2)=4);MAX($A3:A3)+2;MAX($A3:A3)+3))=A2;SI(OU(JOURSEM(MAX($A3:A3);2)=2;JOURSEM(MAX($A3:A3);2)=4);MAX($A3:A3)+2;MAX($A3:A3)+3);0);"")

elle à l'air complexe, mais en fait elle se repete continuellement : la base de la formule : en B3

Code:
SI(OU(JOURSEM(MAX($A3:A3);2)=2;JOURSEM(MAX($A3:A3);2)=4);MAX($A3:A3)+2;MAX($A3:A3)+3)

Max($A3:A3) me donne la derniere date calculée, je fige donc ($A3) la 1ere colonne, sans figer la seconde, qui me donnera le colonne L par exemple un max($A3:K3) etc

Joursem(max(.......);2) me donne je jour de la semaine, si c'est un mardi ou un jeudi, j'ajoute 2 sinon j'ajoute 3 à max(...........) ce qui me donnera le jour suivant

le reste n'est qu'une repetition de ce calcul, avec des tests sur le N° de semaine, pour bien mettre le jour dans la bonne semaine, et sur le mois pour toujours bien mettre le jour en fonction du mois

Pour le mois de fervier, seule la cellule A8 est differente de la cellule A3,
au lieu de rechercher le premier vrai, je recupere le max de a ligne 3, pour y ajouter soit 2 soit 3 en fonction du jour max de la ligne 3
Code:
=SI(OU(JOURSEM(MAX(3:3);2)=2;JOURSEM(MAX(3:3);2)=4);MAX(3:3)+2;MAX(3:3)+3)

le reste c'est du copier coller

pour mars, avril, mai ...................
c'est du copier coller de fevrier
 

Pièces jointes

  • extracttion des M-J-.zip
    8.9 KB · Affichages: 105

bloody

XLDnaute Nouveau
Re : Relevé Présence

Bonsoir tous,

En complément de la version de Wilfried un essai,

Bonne soirée

Re bonjour

J'ai testé les deux mais je me suis apercu que j'avais des erreurs valeur en retour. j'ai vérifié le format de cellule du fichier joint.
le format est de type perso : jjj* jj-mm-aa
en recopiant bêtement, je n'ai plus d'erreur, mais si on pouvait m'expliquer, SVP.
J'ai la même demande pour la formule qui suit
=SI(B13="";"";ENT(MOD(ENT((B13-2)/7)+0,6;52+5/28))+1)
j'ai du mal à comprendre l'interaction entre le ENT et le MOD
Je suppose que /7 correspond à Nb Jours semaine, que 52 est le Nb semaine par année mais je bute sur le 5/28 ????

merci et bonne journée
cordialement
 

Statistiques des forums

Discussions
312 371
Messages
2 087 699
Membres
103 644
dernier inscrit
bsalah