XL 2010 Planification sur un cycle de 4 semaines

aivitca

XLDnaute Nouveau
Bonjour,
Je joins le fichier qui me pose un problème.
Mon problème est indiqué sur la feuille "Problème à résoudre".
J'ai joins la feuille "Données" sur laquelle il est possible de faire des modifications de dates, mais par la suite, il faut copier coller une série de données dans la feuille "tournée 1" pour que cette information se mette à jour dans les formulaires pour le personnel.
Ma demande serait de savoir s'il est possible de faire une recherche dans une matrice pour que seule les numéros de chambre à fouiller apparaissent sur le formulaire des tournées en fonction de la date.
Si je ne suis pas clair, faites-le moi savoir.

Merci d'avance.
Je sais que vous êtes des pro dans la manipulation des données dans Excel.
 

Pièces jointes

  • paperasse.xlsx
    131.9 KB · Affichages: 17

aivitca

XLDnaute Nouveau
Bonjour tbft
Je savais qu'à la vue du fichier actuel ce ne serait pas clair, désolé.

J'aimerai pouvoir imprimer le numéro des chambres à fouiller sur chaque formulaire de tournée.
Pour le moment, sur la page 2 de chaque feuille de tournée, on peut retrouver l'ensemble des chambres à fouiller sur les 4 prochaines semaines.
Il faut donc que le personnel sache dans quelle semaine on se trouve (1, 2 3 ou 4) puis regarde le jour de la semaine puis le quart de travail (Jour ou soir) et regarde quelle chambre il doit fouiller.
J'aurai aimé que seulement les numéros de chambre à fouiller LE JOUR correspondant à la date de la feuille apparaisse en I37 et en P37 (sur la page 2 de la feuille des tournées)
Pour le moment donc on imprime 7 feuilles de tournées en avance, (pour la semaine à suivre).
J'aurai aimé imprimer une seule feuille de tournée (celle du lendemain), la veille, et que sur cette unique feuille imprimée quotidiennement, les bons numéros de chambres apparaissent en I37 et P37 (ça peut être sur 2 ou 3 cellules consécutives si nécessaire)
Est-ce plus clair ?
 

aivitca

XLDnaute Nouveau
Bonjour,

Je me permets de reposter ma demande, j'ai beau tourner en rond je vois que je ne maitrise vraiment pas les fonctions de recherche et de date.

Je poste un nouveau fichier, peut-être est-ce que ce sera plus simple à comprendre ?

Merci d'avance
 

Pièces jointes

  • Cycle de 4 semaines avec recherche de la journée de la semainexls.xls
    63 KB · Affichages: 5

GALOUGALOU

XLDnaute Accro
bonsoir aivitca, bonsoir le fil bonsoir le forum
une proposition au vu de ce que j'ai compris
par une formule les saisies sont rapatriés pour la date d'aujourd'hui
dans cet exemple, la formule équiv identifie les numéros de semaine en colonne B, les jours de semaine sur ligne 6, et au croisement des chemins, renvoie la valeur en rapport
VB:
=INDEX($D$7:$J$10;EQUIV(base!$G$4;Données!$B$7:$B$10;0);EQUIV(base!$G$7;Données!$D$6:$J$6;0))
une fonction pour la date, rapport au numéro de semaine
Code:
Function DatSem(NSem As Long, An As Long) As Date
'Date du premier jour d'une semaine (lundi) en fonction du numéro de la semaine et de l'année
    DatSem = DateSerial(An, 1, 4) - Weekday(DateSerial(An, 1, 4), vbMonday) + 1 + 7 * (NSem - 1)
End Function
une impression personnelle, le tableau devra être actualisé toutes les quatre semaines, perso, je préférerais une liste annuelle en colonne, qui serait renvoyé dans le tableau 4 semaines.
cdt
galougalou
 

Pièces jointes

  • Cycle de 4 semaines avec recherche de la journée de la semaine v1.xlsm
    47.5 KB · Affichages: 7

aivitca

XLDnaute Nouveau
bonsoir aivitca, bonsoir le fil bonsoir le forum
une proposition au vu de ce que j'ai compris
par une formule les saisies sont rapatriés pour la date d'aujourd'hui
dans cet exemple, la formule équiv identifie les numéros de semaine en colonne B, les jours de semaine sur ligne 6, et au croisement des chemins, renvoie la valeur en rapport
VB:
=INDEX($D$7:$J$10;EQUIV(base!$G$4;Données!$B$7:$B$10;0);EQUIV(base!$G$7;Données!$D$6:$J$6;0))
une fonction pour la date, rapport au numéro de semaine
Code:
Function DatSem(NSem As Long, An As Long) As Date
'Date du premier jour d'une semaine (lundi) en fonction du numéro de la semaine et de l'année
    DatSem = DateSerial(An, 1, 4) - Weekday(DateSerial(An, 1, 4), vbMonday) + 1 + 7 * (NSem - 1)
End Function
une impression personnelle, le tableau devra être actualisé toutes les quatre semaines, perso, je préférerais une liste annuelle en colonne, qui serait renvoyé dans le tableau 4 semaines.
cdt
galougalou

Bonjour Goulagalou,

Merci pour le travail fait sur ce projet.
J'ai la version Excel 2010, et malheureusement, dans le tableau fourni, j'ai beaucoup d'erreurs affichées dans les cellules.

Actuellement, je travaille avec une mise à jour d'un tableau aux 4 semaines, et je ne fais que copier/coller des données préexistantes pour la semaine au complet... chaque jour.
J'aurai voulu extraire uniquement les données de la journée

Je sais qu'à la base cette gestion est plutôt complexe. Les gens veulent avoir des valeurs aléatoires comprises entre 43 et 50, différentes chaque jour et chaque soir, que si possible, les chiffres sortis pour le JOUR soient différents de ceux du SOIR... et qu'ils ne réviennent pas avant 4 semaines sur le tableau de JOUR, mais sur 2 semaines en combinant les semaines (JOUR ET SOIR) (mon dieu, plus j'écris ce que je veux, plus je me rends compte que ça devient du charabia pour ceux qui doivent le lire).

Si on regarde les tableaux JOUR et SOIR, on voit que les numéros 43 à 50 apparaissent une seule fois sur 4 semaines de JOUR et la même chose pour le SOIR.
Il ne faut juste pas que qu'un même numéro soit repris avant 4 semaines de jour, ou 2 semaines JOUR/SOIR confondu...

Pas certain que ce soit très clair n'est-ce pas ?
 

GALOUGALOU

XLDnaute Accro
re
si j'ai bien compris vous voulez afficher une liste aléatoire.

Cette formule pourrait être le début d'une solution, à étirer sur 600 lignes.
Avec une macro récupérer les valeurs dans une deuxième colonne
VB:
=ALEA.ENTRE.BORNES(23;50)
cette deuxième formule présenterait le résultat sans doublons
Code:
=SI(B5<43;"";SI(NB.SI($B$4:B4;B5)>0;"";B5))
cette troisième formule indexerait les résultats à renvoyer dans le tableau
Code:
=SI(NB.SI($C$4:$C4;$C5)>0;"";MAX($D$4:$D4)+1)
un essai dans le classeur, un bouton dans la feuille données permet de mettre à jour une nouvelle liste

L'explication théorique : les chiffres présentés sont inférieurs à 28 unités, (ici 43/50). il faut utiliser les chiffres souhaités entre deux bornes, (ici 23/50, mais on aurait pu mettre 43/70). Ensuite il faut adapter la deuxième formule avec les bornes choisies. (je sais mon discours aussi est nébuleux)
j'ai vu sur votre premier classeur que vous aviez 7 intervenants. Si cette méthode vous convient, il faudra créer autant d'onglet que d'intervenant. Adapter les nouveaux onglets à chaque intervention, créer autant de macro que d'onglet.
cdt
galougalou
ps j'ai protégé la feuille données sans mot de passe pour sécuriser les formules
 

Pièces jointes

  • Cycle de 4 semaines avec recherche de la journée de la semaine v2.xlsm
    65.4 KB · Affichages: 3
Dernière édition:

Discussions similaires

Réponses
25
Affichages
2 K
Réponses
7
Affichages
422

Statistiques des forums

Discussions
312 211
Messages
2 086 298
Membres
103 171
dernier inscrit
clemm