Attribution couleurs : suivi des modifications utilisateurs

Supposons que vous avez une feuille de calcul partagée avec plusieurs utilisateurs. Vous souhaitez identifier rapidement qui a apporté quelle modification. Vous pouvez utiliser ce code pour attribuer une couleur différente à chaque utilisateur. Par exemple, Alice peut avoir la couleur bleue, Laurent la couleur verte et René la couleur rouge. Lorsque Alice modifie la feuille de calcul, les cellules qu’elle modifie seront automatiquement surlignées en bleu.

Cet article vous montre comment utiliser la fonction onEdit pour personnaliser votre feuille de calcul Google en fonction de l’utilisateur qui la modifie. Le code permet d’attribuer une couleur différente à chaque utilisateur, ce qui facilite l’identification des modifications apportées par chacun.

Fonctionnement du code

  1. Déclenchement: La fonction onEdit est exécutée à chaque modification de la feuille de calcul.
  2. Récupération des informations:
    • feuille: La feuille de calcul active.
    • utilisateur: L’e-mail de l’utilisateur actif.
    • plageModifiee: La plage de cellules modifiée.
    • feuilleUtilisateurs: La feuille « liste_utilisateurs » contenant les e-mails et les couleurs.
  3. Vérification de la feuille « liste_utilisateurs »:
    • Si la feuille n’existe pas, une erreur est générée.
  4. Récupération des e-mails et des couleurs:
    • plageEmails: La plage des e-mails dans la feuille « liste_utilisateurs ».
    • emails: Les valeurs des e-mails dans la plage spécifiée.
  5. Attribution de la couleur:
    • La boucle parcourt les e-mails pour trouver celui de l’utilisateur actif.
    • Si l’e-mail est trouvé, la position de l’utilisateur dans la feuille « liste_utilisateurs » est récupérée.
    • La couleur associée à l’e-mail est ensuite récupérée et appliquée à la plage de cellules modifiée.
  6. Gestion des erreurs:
    • Si une erreur se produit, elle est journalisée dans la console Google Apps Script.

Le code

function onEdit(e) {
  try {
    // Cette fonction est exécutée à chaque fois qu'une modification est apportée à la feuille de calcul
    var feuille = e.source.getActiveSheet(); // Récupère la feuille de calcul active
    var utilisateur = Session.getActiveUser().getEmail(); // Récupère l'e-mail de l'utilisateur actif
    var plageModifiee = e.range; // Récupère la plage de cellules qui a été modifiée
    var feuilleUtilisateurs = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("liste_utilisateurs"); // Récupère la feuille "liste_utilisateurs" où se trouvent les e-mails et les couleurs
    
    if (!feuilleUtilisateurs) {
      throw new Error("La feuille 'liste_utilisateurs' n'existe pas.");
    }

    var plageEmails = feuilleUtilisateurs.getRange("A2:A10"); // Récupère la plage des e-mails dans la feuille "liste_utilisateurs"
    var emails = plageEmails.getValues(); // Récupère les valeurs des e-mails dans la plage spécifiée

    // Parcourt la liste des e-mails pour trouver celui de l'utilisateur actif
    for (var i = 0; i < emails.length; i++) {
      if (emails[i][0] === utilisateur) { // Vérifie si l'e-mail correspond à celui de l'utilisateur actif
        var position = i + plageEmails.getRow(); // Si oui, récupère la position de l'e-mail dans la feuille "liste_utilisateurs"
      }
    }

    var couleur = feuilleUtilisateurs.getRange(position, 1).getBackground(); // Récupère la couleur associée à l'e-mail de l'utilisateur dans la feuille "liste_utilisateurs"
    plageModifiee.setBackground(couleur); // Applique la couleur à la plage de cellules modifiée dans la feuille de calcul principale
  } catch (error) {
    Logger.log("Une erreur s'est produite : " + error.message);
  }
}

Mise en place

  1. Dans la feuille de calcul Google, ouvrez le menu Extensions et sélectionnez Apps Script.
  2. Copiez le code dans un fichier Google Apps Script.
  3. Créer une feuille nommée liste_utilisateurs avec en colonne A la liste des emails et en arrière plan la couleur choisie
  4. Sélectionnez la fonction onEdit et cliquez sur Exécuter.
  5. Accédez à la feuille « liste_utilisateurs » et saisissez les e-mails et les couleurs de chaque utilisateur.
  6. Enregistrez la feuille de calcul.

Ne soyez pas surpris lors de l’exécution manuellement de la fonction onEdit(), celle ci va renvoyer une erreur. Toutefois, en la lançant manuellement une première fois, vous aurez autorisé votre compte à utiliser la fonction.