OVH Cloud OVH Cloud

Format de date pour semaine

18 réponses
Avatar
luis.pedreira
bONJOUR,

Sur un format de date "jjjj" renvoie le jour (par exemple "jeudi")
"aaaa" renvoie l'année (exemple "2004").
"mm" renvoir le mois (exemple "01").

Comment obtenir le numéro de la semaine (01 à 53) ?

Merci beucoup
Luis

8 réponses

1 2
Avatar
patrick
Bonjour

je suis d'accord pour le MsgBox Format(DateSerial(2004, 12, 30), "ww")
mais pour le format personnalisé dans une cellule c'est pas bon

@+

patrick




"Alain CROS" a écrit dans le message news:
#
Bonjour.

MsgBox Format(DateSerial(2004, 12, 30), "ww") affiche 53.
La rubrique Formats de date/heure définis par l'utilisateur (fonction
Format) de l'aide propose ee mais il faut utiliser ww

Affichage de la semaine de l'année sous la forme d'un nombre (1 - 54).
Idem pour e à replacer par w
Affichage du jour de la semaine sous la forme d'un nombre (de 1 pour
dimanche à 7 pour samedi).


Alain CROS.

"patrick" a écrit dans le message de
news: btgh05$3j3$

Bonjour
j'etais étonné pour le "ww" mais j'ai voulu essayé sur
Excel2000 c'est nul.
il vaut mieux s'abstenir que de proposer des erreurs

@+
patrick


"docmarti" a écrit dans le message news:

Bonjour.

"ww" renvoie le numéro de la semaine (01 à 53) .


wrote in message
news:
bONJOUR,

Sur un format de date "jjjj" renvoie le jour (par exemple "jeudi")
"aaaa" renvoie l'année (exemple "2004").
"mm" renvoir le mois (exemple "01").

Comment obtenir le numéro de la semaine (01 à 53) ?

Merci beucoup
Luis














Avatar
luis.pedreira
"docmarti" wrote in message news:...
Bonjour.

"ww" renvoie le numéro de la semaine (01 à 53) .


wrote in message
news:
bONJOUR,

Sur un format de date "jjjj" renvoie le jour (par exemple "jeudi")
"aaaa" renvoie l'année (exemple "2004").
"mm" renvoir le mois (exemple "01").

Comment obtenir le numéro de la semaine (01 à 53) ?

Merci beucoup
Luis



Bonjour,
"ww" me renvoie "ww".
Le format de date est : dd.mm.yyyy
Merci par avance.
Luis


Avatar
AV
Tu as lu ma réponse ?

AV
Avatar
Daniel.M
Salut Alain,

Fonction perso :
(Dans un module ordinaire)
Function NUMSEM_ISO_europ(cel As Range) 'av
If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then
NUMSEM_ISO_europ = 1
Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2)
End If
End Function


Prépares-tu, avec l'aide de MS, le bug du Dimanche 2 janvier 2101 ;-))

Sub BugMSDatePart()
Dim D as Date
D = DateSerial(2101, 1, 1)
MsgBox DatePart("ww", D, vbMonday, vbFirstFourDays) ' sam
MsgBox DatePart("ww", D+1, vbMonday, vbFirstFourDays) ' dim
MsgBox DatePart("ww", D+2, vbMonday, vbFirstFourDays) ' lun
End Sub

Salutations,

Daniel M.

Avatar
isabelle
:-))))
ils leurs restent encore 95 ans pour régler ça, mais c'est vrai que
s'ils ne se grouillent pas bientôt jps ne sera plus là pour les aider
:-(
isabelle


Salut Alain,

Fonction perso :
(Dans un module ordinaire)
Function NUMSEM_ISO_europ(cel As Range) 'av
If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then
NUMSEM_ISO_europ = 1
Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2)
End If
End Function


Prépares-tu, avec l'aide de MS, le bug du Dimanche 2 janvier 2101 ;-))

Sub BugMSDatePart()
Dim D as Date
D = DateSerial(2101, 1, 1)
MsgBox DatePart("ww", D, vbMonday, vbFirstFourDays) ' sam
MsgBox DatePart("ww", D+1, vbMonday, vbFirstFourDays) ' dim
MsgBox DatePart("ww", D+2, vbMonday, vbFirstFourDays) ' lun
End Sub

Salutations,

Daniel M.



Avatar
sabatier
dis, mon ange, comme serge nous a dit qu'il faisait pas mal froid de par
cheu vous, n'aurais-tu pas envie que je réchauffe d'une, voire deux,
main
alerte une certaine partie de ton anatomie? et tu sentiras ainsi ce
qu'est
le poids des ans...
allez, tourne-toi que je me venge de ce scud dévastateur...
jps

isabelle wrote:

:-))))
ils leurs restent encore 95 ans pour régler ça, mais c'est vrai que
s'ils ne se grouillent pas bientôt jps ne sera plus là pour les aider
:-(
isabelle


Salut Alain,

Fonction perso :
(Dans un module ordinaire)
Function NUMSEM_ISO_europ(cel As Range) 'av
If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then
NUMSEM_ISO_europ = 1
Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2)
End If
End Function


Prépares-tu, avec l'aide de MS, le bug du Dimanche 2 janvier 2101 ;-))

Sub BugMSDatePart()
Dim D as Date
D = DateSerial(2101, 1, 1)
MsgBox DatePart("ww", D, vbMonday, vbFirstFourDays) ' sam
MsgBox DatePart("ww", D+1, vbMonday, vbFirstFourDays) ' dim
MsgBox DatePart("ww", D+2, vbMonday, vbFirstFourDays) ' lun
End Sub

Salutations,

Daniel M.





Avatar
AV
Pffff..........
Qui parle d'esprit tordu ?
J'avais bien remarqué un bug MS (d'où le If qui débute la fonction) mais, pour
moi, 2100 me paraissait un horizon raisonnable pour des tests de validité !
Bon, y a plus qu'à rajouter qques "if" dans la fonction perso
Faut quand même espèrer que d'ici là (même si je ne serais pas concerné) MS aura
enfin intégré une fonction qui "fonctionne" !

AV
Avatar
AV
Testée jusqu'en 9999 :

Function NUMSEM_ISO_europ(cel As Range) 'av
'bug des dimanches 2 janvier pour les années 2101, 2501 (etc...intervalle 400
ans)
If Day(cel) = 2 And Month(cel) = 1 And Year(cel) Mod 400 = 101 Then
NUMSEM_ISO_europ = 52
Exit Function
End If
If Weekday(cel) = 2 And Month(cel) = 12 And Day(cel) > 28 Then
NUMSEM_ISO_europ = 1
Else: NUMSEM_ISO_europ = DatePart("ww", cel, 2, 2)
End If
End Function


PS : Prière d'écrire directement à Bill pour les éclaircissements concernant les
buggs de DatePart("ww",2,2)
AV
1 2