Eviter les effacement de lignes par les collègues

Et voici la nouvelle fonction plus large

Elle capte par exemple la recopie d'une données sur plusieurs lignes / plusieurs colonnes en une seule fois.

Simple, un p'tit coup de json et hop !

function autoriser() {
  var email = Session.getActiveUser().getEmail();
  var f = SpreadsheetApp.getActive();
  var selection = f.getSelection();
  var r = f.getActiveRange();
  var cellules = selection.getActiveRangeList().getRanges();
  var donnees = (JSON.stringify(cellules[0].getValues()));
  var tableau = JSON.parse(donnees);
  var nblignes = tableau.length
  for (var i = 0; i < nblignes; i++){
    if (r.getColumn() <= 24){ // jusque X inclus
      var col = columnToLetter(r.getColumn());
      var lig = r.getRow() + i;
      var proprio = f.getRange('Y' + lig).getValue();
      if (proprio != "" && email != proprio) {
        Browser.msgBox("Modification interdite ligne " + lig + ", vous n'êtes pas le propriétaire !");
        var plage = f.getRange('AA' + lig + ':AX' + lig);
        plage.copyTo(f.getRange('A' + lig), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); 
      } else {
        f.getRange("Y" + lig).setValue(email); 
        var plage = f.getRange('A' + lig + ':X' + lig);
        plage.copyTo(f.getRange('AA' + lig), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); 
      }
    }
  }
}

Ah oui excellent, si après un p'tit coup de ça donne de bonnes idées je vais en prendre une triple dose alors ! (A consommer avec modération bien sûr)

Bon j'ai tout essayé dans tous les sens et nada.

Pour la suppression de ligne c'est réglé, mais pour le reste tout le monde peut modifier de tout le monde.

Je te laisse mon lien de test, car pour l'instant ça reste des essais, mais je vais devoir adapter sur la vrai feuille qui elle est déjà en route.

https://docs.google.com/spreadsheets/d/1D6bxENk3Hq1AjxZlPFjo_jTiH5vghXhJ3FBM_muvujw/edit#gid=0

j'ai fais étape par étape, comme indiqué précédemment mais forcément j'ai dû louper quelque chose !

Sur ta feuille (blocage) tout ce que tu as écrit je ne peux, le supprimer, le modifier, par contre j'ai écrit de (A8:A11) avec un compte et j'ai réussi à modifier ces lignes avec un autre compte

Help !!!

Ah ! ça y'est ! j'avais copier/coller ton dernier script (fonction autoriser) mais à l'intérieur il manquait la fonction (bloquer), donc après un copier/coller de cette dernière ça fonctionne.

Par contre le propriétaire lui seul peut supprimer une ligne,

mais aussi modifier une ligne ?

Non seul celui qui activé le fonction bloquer (donc toi) pourra supprimer.

Oui seul l'utilisateur pourra modifier sa ligne, même pas toi ! mais il y a une astuce : changer temporairement l'email pour mettre le tien !

Donc n'oublie pas de masquer toutes les colonnes de Y à AX.

Après, on découvrira peut-être d'autres choses ...

Oui seul l'utilisateur pourra modifier sa ligne, même pas toi !

C'est parfait, c'était le but !

Apparemment ça ne fonctionne qu'avec Alexandre, étant donné que j'ai bloqué tout le monde sauf ceux à qui j'ai ajouté le mail, je t'ai ajouté dans le partage pour les tests, regarde dans la colonne (W) il y a quelques commentaires.

Merci

Je suis allé sur ton fichier.

  • effacement ligne impossible pour moi : c'est parfait !
  • modification d'une ligne où il y a un email - modification impossible : c'est parfait !
  • écriture sur une nouvelle ligne ... là il y a un problème car mon email ne se met pas quand c'est un document qui ne serait pas sur mon drive !!! je découvre
var email = Session.getActiveUser().getEmail();

c'est pour moi la seule chose à traiter, je vais faire des recherches ...

Pourrais-tu partager le fichier nominativement ? car cela pourrait résoudre justement le problème d'email

https://support.google.com/docs/answer/2494888?hl=fr

écriture sur une nouvelle ligne ... là il y a un problème car mon email ne se met pas quand c'est un document qui ne serait pas sur mon drive !!! je découvre

L'email des 2 comptes que j'ai créé ne se met pas non plus, alors que le document est sur le drive de ces 2 comptes.

Pourrais-tu partager le fichier nominativement ? car cela pourrait résoudre justement le problème d'email

j'ai partagé avec le mail de chacun, Alexander (proprio), les 2 comptes de test, et ton mail. A moins que tu souhaites une autre manip ?

J'ai fait des tests sur un autre fichier, j'ai parcouru de nombreux posts et c'est un peu le vide ... je crains que cela ne soit pas possible !

https://www.google.com/search?q=how+to+know+email+user+in+google+sheet+app+script&oq=how+to+know+ema...

https://developers.google.com/apps-script/reference/base/user

Il faudra peut-être changer de stratégie ou en rester au premier objet qui tait d'éviter l'effacement de lignes.

Ne peut-on pas utiliser le nom de l'éducateur qui a créé sa plage ?

Cela voudrait dire qu'il doit rentrer ce nom, ou un pseudo, ou un mot de passe à chaque modification si on ne peut rien capter automatiquement ! Il doit bien y avoir un moyen, surtout que lorsqu'on est plusieurs sur une feuille il est possible avec la souris de voir qui d'autre est en ligne

capture d ecran 286

Cela voudrait dire qu'il doit rentrer ce nom

En effet, on est obligé de rentrer notre nom car ensuite on fait une note de frais pour ce faire rembourser et cette note de frais et au même nom et il y aura un contrôle de la compta (voir même de la hiérarchie) entre le fichier Sheets (argent de poche) et la note de frais (la note frais est validée par la hiérarchie avant d'être envoyée en compta pour remboursement).

je vais réfléchir en ce sens ...

Ah ben, j'ai tout remodelé et quand Stéphane et Audrey créaient leur ligne d'écriture il apparait sur chaque ligne le mail du proprio.

Par contre tout le monde peut toujours modifier les cellules de tout le monde.

En fait c'est toujours TON email qui apparait ! J'ai fait le tour des discussions et a priori c'est bien une particularité assez complexe

https://developers.google.com/apps-script/reference/base/session

mais je continue à investiguer (et penser à une autre solution du reste plus sympa pour la saisie).

Pour le user, c'est mort !

Je partirais bien dans cette direction ... avec le blocage de la suppression voir mettre l'email de l' "administrateur" pour éviter des modifications après saisie.

https://docs.google.com/spreadsheets/d/1tU3koMXsQjKwPj2uXNvcTgaPAUHDQ4hRIb9CfptWL0c/edit?usp=sharing

Demande d'accès.

Mince alors, re-essaye ...

Rechercher des sujets similaires à "eviter effacement lignes collegues"