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.