MICROSOFT MVP

RECHERCHE D’EMPLOI AVEC

Numéro de semaine à partir d’une date

Temps de lecture : 3 minutes

Dans Excel, il est très facile de trouver le numéro de semaine correspondant à une date MAIS il y a un piège à éviter

Deux fonctions pour retourner le numéro de semaine ?

Dans Excel il y a la 2 fonctions pour retourner le numéro de semaine

  • NO.SEMAINE(date;paramètre)
  • NO.SEMAINE.ISO(date)

La fonction NO.SEMAINE a toujours existé dans Excel mais elle correspond au système de comptage des semaines pour les US (normal, c'est Microsoft qui a développé la fonction)/

Mais, à partir de la version d'Excel 2013, la fonction NO.SEMAINE.ISO a été créée pour gérer la norme ISO8601 du comptage des semaine.

Pas la même règle entre les US 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. Lorsque la première semaine de l'année commence un vendredi, un samedi ou un dimanche, ces jours ne sont pas considérés comme 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.

Calcul du numéro de semaine avec le 1er Janvier
  • 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 toutes les dates du 3 Janvier de 2015 à 2025.

Calcul du numéro de semaine avec le 3 Janvier

Avec NO.SEMAINE, quand le jour de la semaine est un dimanche, le numéro de semaine change. Ceci est dû au second paramètre de la fonction mais par défaut est = 1 (semaine débute un dimanche). Si vous mettez la valeur 2, la numéro de semaine change le lundi

=NO.SEMAINE(date;2)

Par contre, avec la fonction NO.SEMAINE.ISO, tant qu'il n'y a pas au moins 2 jours ouvrés dans la première semaine de l'année, le numéro de semaine calculé appartient toujours à celui de l'année précédente.

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

Comment retourner la bonne valeur avec des versions anciennes d'Office ?

Version antérieure à Excel 2010

Pour retourner le numéro de semaine avec la norme ISO 8601, il faut utiliser cette formule très complexe.

=ENT((AUJOURDHUI()-SOMME(MOD(DATE(ANNEE(AUJOURDHUI()-MOD(AUJOURDHUI()-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7)

Excel 2010

Dans cette version, le second paramètre de la fonction NO.SEMAINE a été modifié pour prendre en compte les 2 modes de calcul.

Il existe beaucoup de nouvelles valeurs pour le second paramètre mais seule la valeur 21 permet de retourner le numéro de semaine selon la norme ISO 8601.

=NO.SEMAINE(Date;21)

Leave a Reply

Your email address will not be published. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

RECHERCHE D’EMPLOI AVEC