Je n'arrive pas à avoir la bonne semaine aux extrêmes:
- J'utilise le format (ww)
- La semaine se change le lundi
- Donc à la fin de l'année il peut y avoir une semaine 53
qui passe même au début de l'autre année...
- Donc encore, pas de semaine 1 avant l'année suivant...
- Heu, c'est comme ça, désolé...
Dans Excel j'utilise ce calcul (qui fonctionne), mais je
n'y comprends rien, recopiage, lol:
=ENT((C2-SOMME(MOD(DATE(ANNEE(C2-MOD(C2-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7)
C2 étant la date du jour
---------------
Mais là en VB, je n'arrive pas à retranscrire ces signes
cabalistiques...
Alors si quelqu'un a une idée de calcul avec ma semaine
53 ???
Merci, au revoir et à bientôt :o)
--
ECRIRE AU TROLL http://irolog.free.fr/letroll/index.html
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison
!
Ben si c'est comme mes réponses d'hier, tu va lui casser son jouet, vas-y, modifies, comme ça on en sera débarrassé...
Alfred
"LE TROLL" <le a écrit dans le message de news:
Alfred, j'air regardé ta routine, merci encore, cependant si on force la semaine 1 de vb à passer en 53, il faut forcer toute l'année +1 semaine, c'est assez laborieux, je cherche un calcul global, qui donne le numéro de la semaine, quoi qu'il en soit, avec comme contrainte:
Voici l'énoncé du problème:
-1- VB5 -2- La semaine commence le lundi -3- La semaine 1 n'est jamais en fin N-1, donc 53 si besoin -4- Donc aussi la 53 peut aller sur l'année N avant le 1er lundi. Exemple de la formule à modifier sous Excel, qui fonctionne:
Il n'y a rien à voir avec la norme iso 8601 je crois, le calendrier sus-cité impose cette forme là, je dois la respecter...
En fait je ne suis pas assez bon en date de semaine, j'utilise rarement, donc comme sus-dit je cherche une formule globale, telle que celle d'Excel, l'idéal serait que quelqu'un sache me la retranscrire en VB5, car ce matin ce fut plutôt raté :o)
Merci, @+, bye, Joe. --------------------------
Bonjour Le Troll
Voici une autre formule de calacul de semaine:
Public Function WEEKNR(InputDate As Long) As Integer Dim A As Integer, B As Integer, C As Long, D As Integer WEEKNR = 0 If InputDate < 1 Then Exit Function A = Weekday(InputDate, vbSunday) B = Year(InputDate + ((8 - A) Mod 7) - 3) C = DateSerial(B, 1, 1) D = (Weekday(C, vbSunday) + 1) Mod 7 WEEKNR = Int((InputDate - C - 3 + D) / 7) + 1 End Function
peut-être faudra-t-il changer vbSunday en vbMonday pour la France ? à tester...
Alfred
"LE TROLL" <le troll@invalid.fr> a écrit dans le message de
news:e8PlK7FmFHA.3900@TK2MSFTNGP09.phx.gbl...
Alfred, j'air regardé ta routine, merci encore,
cependant si on force la semaine 1 de vb à passer en 53, il
faut forcer toute l'année +1 semaine, c'est assez laborieux,
je cherche un calcul global, qui donne le numéro de la
semaine, quoi qu'il en soit, avec comme contrainte:
Voici l'énoncé du problème:
-1- VB5
-2- La semaine commence le lundi
-3- La semaine 1 n'est jamais en fin N-1, donc 53 si besoin
-4- Donc aussi la 53 peut aller sur l'année N avant le 1er
lundi.
Exemple de la formule à modifier sous Excel, qui fonctionne:
Il n'y a rien à voir avec la norme iso 8601 je crois, le
calendrier sus-cité impose cette forme là, je dois la
respecter...
En fait je ne suis pas assez bon en date de semaine,
j'utilise rarement, donc comme sus-dit je cherche une
formule globale, telle que celle d'Excel, l'idéal serait que
quelqu'un sache me la retranscrire en VB5, car ce matin ce
fut plutôt raté :o)
Merci, @+, bye, Joe.
--------------------------
Bonjour Le Troll
Voici une autre formule de calacul de semaine:
Public Function WEEKNR(InputDate As Long) As Integer
Dim A As Integer, B As Integer, C As Long, D As Integer
WEEKNR = 0
If InputDate < 1 Then Exit Function
A = Weekday(InputDate, vbSunday)
B = Year(InputDate + ((8 - A) Mod 7) - 3)
C = DateSerial(B, 1, 1)
D = (Weekday(C, vbSunday) + 1) Mod 7
WEEKNR = Int((InputDate - C - 3 + D) / 7) + 1
End Function
peut-être faudra-t-il changer vbSunday en vbMonday pour la France ?
à tester...
Alfred, j'air regardé ta routine, merci encore, cependant si on force la semaine 1 de vb à passer en 53, il faut forcer toute l'année +1 semaine, c'est assez laborieux, je cherche un calcul global, qui donne le numéro de la semaine, quoi qu'il en soit, avec comme contrainte:
Voici l'énoncé du problème:
-1- VB5 -2- La semaine commence le lundi -3- La semaine 1 n'est jamais en fin N-1, donc 53 si besoin -4- Donc aussi la 53 peut aller sur l'année N avant le 1er lundi. Exemple de la formule à modifier sous Excel, qui fonctionne:
Il n'y a rien à voir avec la norme iso 8601 je crois, le calendrier sus-cité impose cette forme là, je dois la respecter...
En fait je ne suis pas assez bon en date de semaine, j'utilise rarement, donc comme sus-dit je cherche une formule globale, telle que celle d'Excel, l'idéal serait que quelqu'un sache me la retranscrire en VB5, car ce matin ce fut plutôt raté :o)
Merci, @+, bye, Joe. --------------------------
Bonjour Le Troll
Voici une autre formule de calacul de semaine:
Public Function WEEKNR(InputDate As Long) As Integer Dim A As Integer, B As Integer, C As Long, D As Integer WEEKNR = 0 If InputDate < 1 Then Exit Function A = Weekday(InputDate, vbSunday) B = Year(InputDate + ((8 - A) Mod 7) - 3) C = DateSerial(B, 1, 1) D = (Weekday(C, vbSunday) + 1) Mod 7 WEEKNR = Int((InputDate - C - 3 + D) / 7) + 1 End Function
peut-être faudra-t-il changer vbSunday en vbMonday pour la France ? à tester...