Automatisez la gestion des présences avec Google Sheets et Apps Script
La gestion des arrivées et départs des collaborateurs peut vite devenir un casse-tête, surtout dans les petites structures ou les projets spécifiques où les outils de gestion dédiés ne sont pas adaptés. Pourquoi ne pas transformer Google Sheets en une pointeuse personnalisée ?
Dans cet article, je vais vous montrer comment j’ai développé une solution automatisée qui :
- Enregistre les horaires d’arrivée et de départ des utilisateurs.
- Calcule automatiquement le temps passé.
- Fournit un tableau récapitulatif des heures travaillées par utilisateur.
Création automatique des feuilles utilisateurs
Un des défis majeurs était d’assurer que chaque utilisateur dispose d’une feuille dédiée pour suivre ses horaires, même s’il n’existait pas encore dans le système. Grâce à Google Apps Script, j’ai développé un mécanisme qui :
- Vérifie si une feuille dédiée existe pour l’utilisateur sélectionné ;
- La crée dynamiquement avec des en-têtes si nécessaire.
Voici un extrait du code :
let feuilleUtilisateur = classeur.getSheetByName(utilisateur); if (!feuilleUtilisateur) { console.log(`Création de la feuille pour l'utilisateur '${utilisateur}'.`); feuilleUtilisateur = classeur.insertSheet(utilisateur); feuilleUtilisateur.appendRow(["Type", "Date", "Heure", "Durée"]); // En-têtes }
Cette automatisation garantit une expérience utilisateur fluide et élimine les erreurs manuelles.
Sécurisation par code PIN
Pour valider chaque arrivée et départ, un code PIN unique est assigné à chaque utilisateur. Lorsqu’un collaborateur souhaite enregistrer son heure d’arrivée, il doit saisir son code PIN via une interface conviviale.
Voici un aperçu de la logique :
const saisiePin = interfaceUtilisateur.prompt( `Bonjour ${utilisateur},\nVeuillez entrer votre code PIN pour valider votre arrivée :` ).getResponseText(); if (String(saisiePin).trim() !== String(codePin).trim()) { interfaceUtilisateur.alert("Code PIN incorrect. Veuillez réessayer."); return; }
Ce système assure la confidentialité et évite les enregistrements accidentels.
Calcul automatique des heures travaillées
Une autre fonctionnalité clé est le calcul automatique des heures travaillées, qui sont ensuite compilées dans une feuille récapitulative centralisée. Voici un extrait du code qui effectue ce calcul :
donnees.forEach(ligne => { const type = ligne[0]; let duree = ligne[3]; // Colonne des durées if (type === "Départ" && typeof duree === "string" && /^\d{2}:\d{2}$/.test(duree)) { const [heures, minutes] = duree.split(":").map(Number); totalMinutes += heures * 60 + minutes; } }); const totalHeures = Math.floor(totalMinutes / 60); const totalFormatte = `${totalHeures.toString().padStart(2, '0')}:${(totalMinutes % 60).toString().padStart(2, '0')}`;
Pourquoi choisir Google Sheets et Apps Script ?
Cette solution est entièrement gratuite et ne nécessite aucun logiciel supplémentaire. En quelques lignes de code, vous pouvez transformer Google Sheets en une solution puissante et personnalisée pour votre organisation.
Prêt à essayer ?
Si vous êtes intéressé par ce projet, contactez moi.