numéro de semaine pour tour d'astreinte

  • Initiateur de la discussion jean
  • Date de début
J

jean

Guest
bonjour,

je monte une astreinte du lundi matin au dimanche soir, nous sommes à 6 pour effectuer ce tour sur l'année,
ainsi par exemple le lundi 02/01/2006 la semaine du tour était l'astreinte N°3
la prochaine fois que cette astreinte reviendra, nous serons le lundi 13 février etc etc

je voudrais afficher à coté du lundi le numéro de la semaine du tour d'astreinte, c'est à dire 1 2 3 4 5 ou 6
si je tape 13/03/06 : ça me donne astreinte n°1

comme ce planning est fait automatiquement avec une macro, pouvez vous m'aiguiller sous forme VBA

J'ai recherché dans les archives, je ne trouve que des infos sur les N° de semaine annuelle

merci

jean
 
V

visiteur

Guest
Bonjour

Cells(xlig, 7) = DatePart('WW', Cells(xlig, 1), vbMonday, vbFirstFourDays)

pour calendrier 1900
date en A1
=ENT((A1+5-SOMME(MOD(DATE(ANNEE(A1-MOD(A1-2;7)+3);1;2);{1E+99;7})*{1;-1}))/7)
pour calendrier 1900 et 1904
date en A1
=ENT((A1-(DATE(ANNEE(A1-JOURSEM(A1-1)+4);1;3)-JOURSEM(DATE(ANNEE(A1-JOURSEM(A1-1)+4);1;3)))+5)/7)

la formule magique est
=ENT(MOD(ENT((A1-2)/7)+0,6;52+5/28))+1
 
J

jean

Guest
bonjour

merci de votre aide, mais apparamment je me suis mal fait comprendre, je cherche une façon de calculer un tour d'astreinte par rapport à un lundi
je sais que le tour se fait sur 6 semaines
et que le 02/01/2006 était le tour n°3
Je vous ai mis un fichier pour mieux comprendre

jean [file name=EXDL.zip size=8879]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/EXDL.zip[/file]
 

Pièces jointes

  • EXDL.zip
    8.7 KB · Affichages: 77

Monique

Nous a quitté
Repose en paix
Bonjour,

Par formules
Dans le fichier joint,
tu as plusieurs possibilités [file name=CycleJean.zip size=5868]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CycleJean.zip[/file]
 

Pièces jointes

  • CycleJean.zip
    5.7 KB · Affichages: 81

pierrejean

XLDnaute Barbatruc
re jean

salut Monique

version VBa

une fonction personnalisée [file name=EXDL_20060325115627.zip size=35041]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/EXDL_20060325115627.zip[/file]
 

Pièces jointes

  • EXDL_20060325115627.zip
    34.2 KB · Affichages: 79
J

jean

Guest
merci monique,

je crois que tu as saisie ce que je demandais
maintenant il faut que j'assaie de rentrais ç dans la macro que j'ai déjà, il faudrait que je fasse référence à une date (exemeple 02/01/06) qui est avec le tour n°3 et avec le cycle (6) et de là dés que j'ai une date je peux dire à quel cycle elle est raccroché.

pierrejean, ton modéle fonctionne je t'en remercie, mais je ne peux pas l'adapter pour ce que je fais, je n'ai pas cette feuille de référence de dates, .....ça aurait été trop simple.

merci

jean
 

pierrejean

XLDnaute Barbatruc
re jean

en fait la fonction que je t'ai proposée fonctionne dans n'importe quel fichier et avec n'importe quelle date

il te suffit de prendre le code et de le coller dans un module

exemple [file name=testjean.zip size=4220]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/testjean.zip[/file]
 

Pièces jointes

  • testjean.zip
    4.1 KB · Affichages: 79

pierrejean

XLDnaute Barbatruc
re jean

toutes mes excuses
j'ai fait le fichier test avec ton fichier EXDL ouvert et il est allé chercher la fonction dedans

la voici:

Function tour(d1 As Date, d2 As Date) As String
tour = DateDiff('d', d1, d2, vbMonday)
tour = 'TOUR ' & (((tour + 11) / 7) Mod 6) + 1
End Function

dans la cellule d1 la date 02/01/2006 prise comme 1er lundi de TOUR3 d2 etant la date à laquelle tu veux le TOUR

si probleme ou amenagement n'hesite pas à revenir
 
J

jean

Guest
je peux le dire : BALEZE

ça marche !!!!!!!!!!!!
et en plus en 2 lignes

j'avais réussi à faire quelque chose, mais j'aurais honte de te faire voir, c'était truffé de if de then et de else, ça marchait mais ça prenait au moins 50 lignes...je te dis pas.


un grand merci
bonne soirée
jean
 

pierrejean

XLDnaute Barbatruc
re jean

merci de l'appreciation

voici la même en integrant la date de depart et qui donne en plus le jour de la semaine

Function tour1(d2 As Date) As String
tour1 = DateDiff('d', '02/01/2006', d2, vbMonday)
tour1 = Format(d2, 'dddd') & ' TOUR ' & (((tour1 + 11) / 7) Mod 6) + 1
End Function
 

Discussions similaires

Réponses
5
Affichages
505
Réponses
5
Affichages
585

Statistiques des forums

Discussions
312 492
Messages
2 088 942
Membres
103 989
dernier inscrit
jralonso