Eviter les effacement de lignes par les collègues

Avec ceci

https://docs.google.com/spreadsheets/d/1rrdkyGVraOWbsS-izGj262uS5g1hrzRmPKclCU2deg4/edit?usp=sharing

peux-tu écrier ? je pense que oui

peux-tu supprimer une des premières lignes ?

Non je suis en lecture seule

ok je ne suis pas habitué

j'ai débloqué

https://docs.google.com/spreadsheets/d/1rrdkyGVraOWbsS-izGj262uS5g1hrzRmPKclCU2deg4/edit?usp=sharing

Pour le moment c'est normal, nous n'avons pas encore bloqué les données

Il s'agit du premier point comme je mentionnais ... peux-tu supprimer une ligne ? ou en ajouter une avec un autre compte ?

Oui je peux supprimer ou ajouter ligne avec un autre compte.

y compris sur le fichier dont je viens de te donner le lien

Oui j'ai créé le M et supprimer le i

Je n'avais jamais testé la solution ... cela veut dire que ce n'est pas possible ?

Je remplis la colonne Z de n'importe quoi, peux-tu réessayer ...

Je n'avais jamais testé la solution ... cela veut dire que ce n'est pas possible ?

Je remplis la colonne Z de n'importe quoi, peux-tu réessayer ...

J'ai effacé une X et ajouté un A

hum hum

peux-tu supprimer une ligne de 1 à 12 ?

J'ai supprimé la 7

Ne peut-on pas faire un script avec blocage en rapport avec le nom de la personne qui ajoute ça ligne et lui seul peut changer celle ou il y a son nom ?

Pftt, c'est dingue, on ne peut donc même pas se prémunir contre la suppression des lignes. C'était issu de ceci https://stackoverflow.com/questions/49438702/using-app-scripts-to-prevent-the-deletion-of-a-row-in-a...

Et pourtant, j'ai bien ceci "vous seul êtes autorisé à modifier ..."

capture d ecran 276

Ne peut-on pas faire un script avec blocage en rapport avec le nom de la personne qui ajoute ça ligne et lui seul peut changer celle ou il y a son nom ?

Modifier ou supprimer

Ne peut-on pas faire un script avec blocage en rapport avec le nom de la personne qui ajoute ça ligne et lui seul peut changer celle ou il y a son nom ?

Modifier ou supprimer

OUI pour ce qui est des informations contenues dans la ligne, je l'ai déjà fait dans un autre cadre (virements inter-comptes donc inter-onglets) mais avec un seul utilisateur, le but était d'éviter de changer une donnée qui reliait une feuille à une autre. Je vais faire un projet en ce sens.

.

Pour la suppression ce serait bien plus complexe car il faudrait disposer de la totalité des informations "avant" modification.

you can use the onchange event to catch the row deletion opreation, then do your checking,

I am not sure if you can prevent the deletion but you can re-insert the deleted row since the event offers all the information you need to do that

Pftt, c'est dingue, on ne peut donc même pas se prémunir contre la suppression des lignes. C'était issu de ceci https://stackoverflow.com/questions/49438702/using-app-scripts-to-prevent-the-deletion-of-a-row-in-a...

Et pourtant, j'ai bien ceci "vous seul êtes autorisé à modifier ..."

capture d ecran 276

Essaie avec ('feuille1'!A1:Z998)

Quand je vais dans (feuilles et plages protégées, il m'indique qu'on peut tous les 2 modifier cette plage (Vous et le propriétaire de la feuille de calcul uniquement)

ça y est je peut écrire (N-O-P) mais je n'est plus accès au menu déroulant (Clic droit sur la ligne), ce qui fait que je ne peut pas protéger ce que je viens d'écrire

ça y est je peut écrire (N-O-P) mais je n'est plus accès au menu déroulant (Clic droit sur la ligne), ce qui fait que je ne peut pas protéger ce que je viens d'écrire

et du coup je ne plus supprimer tes lignes

allons bon ... pftt, qu'est-ce qui a fait que cela a du coupé changé et quand même fonctionné ??

vérif faite avec un autre compte, en effet, même si j'ai le menu déroulant j'ai une alerte

capture d ecran 277

admettons que ce point soit résolu, je vais m'attacher à faire l'autre point : traiter les modifis éventuelles sur une ligne dont la personne n'est a priori pas à l'origine.

Bonjour,

avancement du projet

1- pour les effacements de ligne, c'est réglé, seul l' "administrateur" peut supprimer = celui qui a activé cette fonction

function bloquer() {
  var f = SpreadsheetApp.getActive();
  var r = f.getRange('Z1:Z');
  var protection = r.protect();
}

2- pour les modifications de ligne

function autoriser() {
  var email = Session.getActiveUser().getEmail();
  var f = SpreadsheetApp.getActive();
  var r = f.getActiveRange();
  if (r.getColumn() <= 24){ // jusque X inclus
    var col = columnToLetter(r.getColumn());
    var lig = r.getRow();
    var proprio = f.getRange('Y' + lig).getValue();
    if (proprio != "" && email != proprio) {
      Browser.msgBox("Modif interdite, vous n'êtes pas le proprio !");
      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); 
      f.getRange('A' + col + lig).setValue(r.getValue()); 
    }
  }
}

function columnToLetter(column) {
  var temp, letter = '';
  while (column > 0) {
    temp = (column - 1) % 26;
    letter = String.fromCharCode(temp + 65) + letter;
    column = (column - temp - 1) / 26;
  }
  return letter;
}

il me reste à traiter des modifications de plage de cellules, car ici seule la première est traitée

Tu peux tester, c'est dans mon fichier de test.

Les colonnes suivantes sont masquées

  • Y pour le propriétaire de la ligne ... bien sûr, il y a une faiblesse ici car on peut changer soi-même le propriétaire, je vais aussi regarder ce point
  • Z (blocage suppression ligne)
  • AA à AX miroir de A à X

Super ! je vais modeler sur mon fichier cette 1ère fonction.

Merci

1- pour les effacements de ligne, c'est réglé, seul l' "administrateur" peut supprimer = celui qui a activé cette fonction

Je l'ai adapté à mon tableau de test et ça fonctionne !

https://docs.google.com/spreadsheets/d/1cmQzmukJTqFsd-ONKu2lfR3EQmmT7xzZDTxqdKTfJe8/edit#gid=0

J'ai réussi à écrire teste en F2

Y a t-il quelque chose à faire ?

Rechercher des sujets similaires à "eviter effacement lignes collegues"