Vb: avoir le mois selon num semaine

Clashme Messages postés 29 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 17 juillet 2008 - 17 juil. 2008 à 10:27
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 17 juil. 2008 à 22:33
Bonjourrrrr,

voilà d'habitude je cherche le numéro semaine par rapport à une date !
et là je me retrouve dans le cas contraire

en entrer j'ai le numéro de semaine et l'année
je cherche une fonction qui permet de me donner le mois !


ps: je travail en VBA
je continue mes recherches !!

merci d'avance

5 réponses

MasterCent Messages postés 83 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 14 décembre 2011 1
17 juil. 2008 à 10:56
Salut Clashme,

si tu connais l'année, tu connais le 1/1 de cette année,
tu peux donc rajouter ( nSem * 7 ) à cette date,
et trouver le mois de cette date...

est-ce cela ?

bat

m100
0
Clashme Messages postés 29 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 17 juillet 2008
17 juil. 2008 à 11:07
oui voilà ! j'ai juste besoin d'une fonction qui me permet d'avoir une date de référence à ne pas dépasser!
par exemple mon calendrier s'arrete l'année 2010 en semaine 49..
donc dans ce cas ma date de référence le 6/12/2010...
je voudrais lors de mon traitement que si ma date est par exemple en semaine 52 de l'année 2010 passer à mon traitement suivant
0
MasterCent Messages postés 83 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 14 décembre 2011 1
17 juil. 2008 à 12:10
Ok,

J'ai l'impression que tout n'est pas encore clair dans ton schéma...
peux tu écrire la ligne de code "if" telle que tu l'imagines ( ainsi que le type de variables )

sinn, voici :

Function semToDate(numSem, annee) As Date
' EPH - 2008
' ATTENTION sem 0 = celle qui contient le 1/1/annee
' retourne le lundi de cette semaine !
' par exemple semToDate ( 49 , 2010 ) =>  6/12/2010

        Dim tmp As Date
       
        ' creation du premier janvier
        tmp = CDate("1/1/" & annee)
       
        ' deplacement au lundi de la semaine
        tmp = tmp - Weekday(tmp, vbMonday) + 1    ' le lundi
       
        ' offset de semaine
        tmp = tmp + (numSem * 7)
   
        ' return
        semToDate = tmp
       
End Function

bat

m100
0
Clashme Messages postés 29 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 17 juillet 2008
17 juil. 2008 à 14:07
ah bah
j'ai tappé se petit bout de code avant de voir ton message

'si date dans le passé passage au suivant (dt = date du jour)
Dim dateref As Date
dateref = "1/01/" & yy
dateref = dateref + ((ss - 1) * 7)
If DateFin < dt Or DateFin > dateref Then GoTo Suivant

normalment sa va suffir, enfin jpeus expliqyé dans le contexte dans lequel je lutilise! je crée un calendrier en semaine à partir de la semaine actuelle jusqu'au bout de mon fichier excel ( 256)
des que je depasse la semaine 52 je j'incrémante mon année et repart à 1 pour la semaine .

ensuite je répartissais mes charges dans mon calendrier qui va jusqu'en 2011
tout fonctionne ! mais je préféré prévoir ou cas ou ma date un jour dépasserra mon calendrier..
donc voilà jgarde dans des variables la derniere incrémentation de mon année et de ma semaine ! ( "ss" et "yy" )

en tout cas je te remercie pour ton code je me le garde sous le coude
+ bat m 100 :p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
17 juil. 2008 à 22:33
Bonjour,

Sais-tu pourquoi je n'ai pas voulu participer à cette discussion ?

Parce que tu as écrit :

"en entrer j'ai le numéro de semaine et l'année
je cherche une fonction qui permet de me donner le mois !"

Or une semaine d'un numéro déterminé peut fort bien s'étaler sur deux mois différents ! (ta question est donc insuffisamment réfléchie, hors tout langage de développement).
0
Rejoignez-nous