Retourne numéro de semaine d'une date saisie (très simple)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 316 fois - Téléchargée 42 fois

Contenu du snippet

J'ai cherché un exemple de code retournant le numéro de semaine sur ce site et il existe finalement quelque chose de beaucoup plus simple que tout ce que j'ai pu voir ici.

Source / Exemple :


<N° de semaine>=Format("<Date>","ww")

' Exemple : NoSemaine =Format("05/07/2002","ww")

' Résultat : NoSemaine="27"

Conclusion :


La fonction Format est donc capable de retourner le n° de semaine

A voir également

Ajouter un commentaire

Commentaires

Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
7
Effectivement, des fois, il sort 53 à la place 52, j'avais pas vu
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
7
??? je ne comprends pas ton post Ricks.
La semaine 53 exite si le 1er janvier commence un vendredi, samedi ou dimanche.
Le seul bug de la fonction format est qu'étant donné que Weekday commence un Dimanche (va savoir pourquoi), il décale tous les résultats d'un jour.
Ainsi le 01/01/06 (qui est un dimanche) fait parti de la semaine 1 pour lui, hors ça fait tjs parti de la semaine 53!!!!
Donc pour rectifier celà, il suffit de faire:
Format((date - 1),"ww")
Messages postés
141
Date d'inscription
lundi 3 novembre 2003
Statut
Membre
Dernière intervention
20 octobre 2005

Merci pour ce source qui m'a évité pas mal de lignes de code et de réfléexion ;-)

Merci pour ton comm Ricks27 aussi, sans lequel j'aurais pu avoir un joli bug dans les années à venir !
Messages postés
79
Date d'inscription
mardi 4 juin 2002
Statut
Membre
Dernière intervention
29 juillet 2005

Tu oublies de gérer le bug de la fonction Format. Car ds certain cas, celle-ci renvoie 53 au lieu de 52.

Function TrouverNuméroSemaine(ByVal Dte As Date) As Integer
TrouverNuméroSemaine = Format(Dte, "ww", vbSaturday, vbFirstFullWeek)
If TrouverNuméroSemaine > 52 Then
If Format(Dte + 7, "ww", vbMonday, vbFirstFullWeek) = 2 Then
TrouverNuméroSemaine = 1
End If
End If
End Function

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.