Automatiser l’insertion des jours fériés français dans Google Sheets

Dans la gestion de projets, la planification d’événements ou simplement pour organiser votre calendrier personnel, connaître les jours fériés peut être crucial. Heureusement, avec un peu de magie Google Apps Script, vous pouvez automatiser l’ajout des jours fériés français dans Google Sheets pour n’importe quelle année. Voici comment faire.

Étape 1 : Créer un script dans Google Sheets

Ouvrez votre feuille Google Sheets où vous souhaitez ajouter les jours fériés. Cliquez sur « Extensions » > « Apps Script« . Vous arriverez dans l’éditeur de script où vous pourrez écrire ou coller du code.

Étape 2 : Écrire le script des jours fériés

Dans l’éditeur Apps Script, copiez et collez le script suivant :

/**
 * Retourne les jours fériés en France pour l'année donnée
 *
 * @param {number} year - L'année pour laquelle vous souhaitez obtenir les jours fériés
 * @return Un tableau des jours fériés en France pour l'année donnée.
 * @customfunction
 */
function FRENCH_HOLIDAYS(year) {
  // Jours fériés fixes
  var fixedHolidays = [
    new Date(year, 0, 1),  // Jour de l'An
    new Date(year, 4, 1),  // Fête du Travail
    new Date(year, 4, 8),  // Victoire 1945
    new Date(year, 6, 14), // Fête Nationale
    new Date(year, 7, 15), // Assomption
    new Date(year, 10, 1), // Toussaint
    new Date(year, 10, 11),// Armistice 1918
    new Date(year, 11, 25) // Noël
  ];
  
  // Pâques (et ses jours fériés associés) est mobile
  var easterDate = getEasterDate(year);
  var easterMonday = new Date(easterDate.getFullYear(), easterDate.getMonth(), easterDate.getDate() + 1);
  var ascensionDay = new Date(easterDate.getFullYear(), easterDate.getMonth(), easterDate.getDate() + 39);
  var whitMonday = new Date(easterDate.getFullYear(), easterDate.getMonth(), easterDate.getDate() + 50);
  
  // Ajouter les jours fériés mobiles
  var holidays = fixedHolidays.concat([easterMonday, ascensionDay, whitMonday]);

// Retourner les objets Date directement, avec une manipulation légère pour assurer la reconnaissance
var formattedHolidays = holidays.map(function(date) {
  // Crée un nouvel objet Date basé sur l'original pour assurer une compatibilité totale
  return [new Date(date.getTime())];
});

return formattedHolidays;

}

/**
 * Calcule la date de Pâques pour une année donnée (algorithme de Meeus/Jones/Butcher)
 *
 * @param {number} year - L'année pour laquelle vous souhaitez calculer la date de Pâques
 * @return La date de Pâques pour l'année donnée.
 */
function getEasterDate(year) {
  var a = year % 19;
  var b = Math.floor(year / 100);
  var c = year % 100;
  var d = Math.floor(b / 4);
  var e = b % 4;
  var f = Math.floor((b + 8) / 25);
  var g = Math.floor((b - f + 1) / 3);
  var h = (19 * a + b - d - g + 15) % 30;
  var i = Math.floor(c / 4);
  var k = c % 4;
  var l = (32 + 2 * e + 2 * i - h - k) % 7;
  var m = Math.floor((a + 11 * h + 22 * l) / 451);
  var month = Math.floor((h + l - 7 * m + 114) / 31);
  var day = ((h + l - 7 * m + 114) % 31) + 1;
  return new Date(year, month - 1, day);
}

Étape 3 : Utiliser le script dans votre feuille

Après avoir sauvegardé votre script, retournez à votre feuille Google Sheets. Dans la cellule où vous souhaitez voir les jours fériés apparaître, entrez :

=FRENCH_HOLIDAYS(2024)

Remplacez 2024 par l’année de votre choix. Les jours fériés seront insérés verticalement dans les cellules en dessous.

Conseils de formatage

Google Sheets devrait automatiquement reconnaître les valeurs retournées comme des dates. Si ce n’est pas le cas, ou pour changer le format d’affichage, sélectionnez les cellules, puis allez dans Format > Nombre > Date pour choisir le format qui vous convient.

Conclusion

L’utilisation de Google Apps Script pour ajouter automatiquement les jours fériés à votre feuille Google Sheets peut vous faire gagner beaucoup de temps. Que vous planifiiez des réunions, des projets, ou que vous ayez simplement besoin d’un aperçu rapide des jours fériés, ce script vous offre une solution simple et efficace.

Laisser un commentaire