[VBScript] numéro de semaine
Résolu/Fermé
Dinheru
Messages postés
1019
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
17 avril 2009
-
19 mai 2005 à 14:24
babou - 10 avril 2015 à 08:31
babou - 10 avril 2015 à 08:31
A voir également:
- Vba numéro de semaine
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Numéro symbole ✓ - Forum Word
- Vous avez utilisé ce numéro de téléphone à de trop nombreuses reprises - Forum Gmail
- Numero clavier ✓ - Forum Bureautique
8 réponses
Plus simple que ca, on peut utiliser la version format présente dans VBA, qui peut se conformer à la norme iso.
Exemple:
Dans ce cas, Format renvoie 29, ce qui est la bonne réponse.
L'argument vbMonday définit le premier jour de la semaine (selon la norme, Lundi, mais dimanche par défaut pour VBA si l'argument est omis) et vbFirstFourDays définit que la semaine n°1 est la première semaine contenant au moins 4 jour (soit la semaine contenant le 1er jeudi de l'année, c'est équivalent; si l'argument est omis, VBA considère que c'est la semaine du 1er janvier, ce qui n'est pas toujours exact)
On peut bien sur utiliser des variables pour définir la date, en utilisant la fonction CDate:
On peut aussi n'utiliser que les 2 derniers chiffres de l'année, VBA considère alors que l'année est comprise entre 1930 et 2029
Note à part, la fonction Format permet de mettre en forme une date (entre autres), c'est l'argument "ww" qui fait qu'il renvoie le numéro de la semaine. En le remplacant par exemple par "dddd d mmmm yyyy", la fonction retourne dans notre exemple "vendredi 32 juillet 2010"
Exemple:
Dim datetest, semaine datetest = #23/7/2010# semaine = Format(datetest, "ww", vbMonday, vbFirstFourDays)
Dans ce cas, Format renvoie 29, ce qui est la bonne réponse.
L'argument vbMonday définit le premier jour de la semaine (selon la norme, Lundi, mais dimanche par défaut pour VBA si l'argument est omis) et vbFirstFourDays définit que la semaine n°1 est la première semaine contenant au moins 4 jour (soit la semaine contenant le 1er jeudi de l'année, c'est équivalent; si l'argument est omis, VBA considère que c'est la semaine du 1er janvier, ce qui n'est pas toujours exact)
On peut bien sur utiliser des variables pour définir la date, en utilisant la fonction CDate:
Dim jour, mois, annee Dim datetest, semaine jour = 23 mois = 7 annee = 2010 datetest = CDate(jour & "/" & mois & "/" & annee) semaine = Format(datetest, "ww", vbMonday, vbFirstFourDays)
On peut aussi n'utiliser que les 2 derniers chiffres de l'année, VBA considère alors que l'année est comprise entre 1930 et 2029
Note à part, la fonction Format permet de mettre en forme une date (entre autres), c'est l'argument "ww" qui fait qu'il renvoie le numéro de la semaine. En le remplacant par exemple par "dddd d mmmm yyyy", la fonction retourne dans notre exemple "vendredi 32 juillet 2010"
10 avril 2015 à 08:31
semaine = Format(DD, "ww", vbMonday, vbFirstJan1)