web-dev-qa-db-fra.com

Vérification de la duplication des données sans accès direct

J'ai configuré une feuille de calcul sur Google Drive à laquelle plusieurs utilisateurs peuvent accéder et modifier les informations, mais je souhaite également que les utilisateurs soient avertis lorsque les données saisies existent déjà ailleurs (par exemple, une autre feuille, un autre fichier, etc.), sans accès direct aux utilisateurs. aux données existantes (les utilisateurs peuvent vérifier si leurs données sont dupliquées mais ne peuvent pas voir les données initiales).

Est-ce possible sur Google Drive?

1
TLL

Oui, cela est possible en utilisant un déclencheur installable , qui s'exécute en tant qu'utilisateur ayant créé le déclencheur (et non en tant qu'utilisateur clavier). Voici un exemple simple qui compare le contenu de la cellule A1 de la feuille en cours avec le contenu de la cellule A1 de la feuille "Feuille1" de certains tableurs maîtres. S'ils correspondent, l'arrière-plan de A1 est défini sur le rouge.

function compare(e) {
  var range = e.range;
  if (range.getA1Notation() == 'A1') {
    var masterSheet = SpreadsheetApp.openByUrl( your URL ).getSheetByName('Sheet1');
    if (range.getValue() == masterSheet.getRange('A1').getValue()) {
      range.setBackground('red');
    }
    else {
      range.setBackground('white');
    }
  }
}

Après avoir entré ce script, ajoutez un déclencheur via Ressources> Déclencheur du projet actuel. Sous Evénements, sélectionnez "Depuis une feuille de calcul", "En édition".

Comme indiqué ci-dessus, cela signifie que lorsqu’elle est déclenchée, la fonction compare s’exécute comme si elle était exécutée par vous et possédait les autorisations dont vous disposez, en particulier l’autorisation d’accéder au tableur principal.

2
user79865