Dans Excel il y a 2 fonctions pour retourner le numéro de semaine à partir d'une date.
- La fonction NO.SEMAINE: Cette fonction existe depuis l'origine d'Excel, mais elle utilise la méthode américaine, ce qui peut introduire des erreurs d'interprétation.
- La fonction NO.SEMAINE.ISO: Cette fonction existe depuis Excel 2013 et retourne le numéro de semaine tel qu'il est déterminé en Europe
Règle différente entre les Etats-Unis et l'Europe
En Europe, le calcul des numéros de semaine est régie par la norme ISO 8601. Cette norme considère que la première semaine de l'année doit avoir au minimum 4 jours.
- En d'autres termes, si la première semaine de l'année commence un vendredi, un samedi ou un dimanche, ces jours ne sont pas comptabilisés comme appartenant à la première semaine de l'année.
- Mais pour l'Amérique du Nord, cette règle n'existe pas. Le calcul des numéros de semaine commence dès le 1er janvier, même si le 1er janvier est un dimanche.
Conséquence avec Excel
Pour bien comprendre l'impact de ces 2 formules sur le calcul des numéros de semaine, voici 2 tableaux avec la même date de départ.
Calcul avec le 1er Janvier
Dans le document suivant, nous avons toutes les dates du 1er Janvier de 2015 à 2025.
- Avec la fonction NO.SEMAINE, quelques soit le premier jour de l'année, la fonction retourne toujours la valeur 1.
- Avec NO.SEMAINE.ISO, si le premier jour de l'année est un vendredi, samedi ou dimanche, la fonction considère que la date du 1er Janvier appartient à la semaine de l'année précédente.
Numéro de semaine avec le 3 Janvier
Dans le document suivant, nous avons maintenant toutes les dates du 3 Janvier de 2015 à 2025.
Remarques
- Le changement de semaine a lieu un dimanche avec la fonction NO.SEMAINE
- Pour change de semaine un lundi, il faut ajouter la valeur 2 dans le deuxième paramètre de la fonctoin = NO.SEMAINE(date;2)
- En 2016 et 2021, le 3 janvier n'est toujours pas comptabilisé par la fonction NO.SEMAINE.ISO. En effet, il n'y a pas encore eu de jours ouvrés à cette date pour ces années
Numéro de semaine en VBA
En VBA, pour retourner le numéro de semaine, le plus simple c'est de faire appel aux fonctions de calculs d'Excel.
Sub Num_Semaine()
'Num semaine Format Europe
Cells(1, 1) = Application.WorksheetFunction.IsoWeekNum(Date)
'Num semaine Format US
Cells(1, 1) = Application.WorksheetFunction.WeekNum(Date)
End Sub
CHAUVEAU
14/11/2023 @ 16:56
Bonjour,
Est-il possible dans Excel sans passer par le VBA de trouver le numéro de la semaine uniquement chaque lundi ?
Frédéric LE GUEN
15/11/2023 @ 08:19
Bonjour, je ne comprends pas absolument pas la question. C'est un numéro de semaine que vous voulez ou trouver le lundi correspondant à un numéro de semaine précis ?