SynxtaxError Unexpected identifier

Bonjour tout le monde,

Développeur , j'expérimente sheet-google notamment le langage App Script par rapport à Excel 2016. Néanmoins je fais appel à vous pour résoudre ce message

"Erreur de syntaxe : SyntaxError: Unexpected identifier 'tableur' (ligne : 7, fichier : Code.gs)" en enregistrant le projet ci-dessous

image

Merci par avance pou l'aide apporté !

Bonjour,

Votre variable "tableur" est déjà une sheet, la sheet active. C'est votre définition. De manière logique, un objet sheet n'a pas de méthode "getActiveSheet", c'est le classeur qui a cette propriété. C'est pourquoi le code vous met des soulignées rouges, et d'ailleurs j'imagine que l'auto-compétition ne vous a pas proposé "tableur.getActiveSheet()".

Pour corriger écrivez simplement

If (tableur.getName() == …)

(Aussi, il faut des parenthèses autour de l'argument du if)

Par contre, vous semblez vouloir utiliser l'évènement onEdit. Deux choses :

  • Il serait plus correct d'utiliser cet argument e pour récupérer la feuille en question plutôt qu'une variable globale, notamment parce qu'on n'est pas sûr à 100% de quand elle va être "mise à jour". De plus, elle devient un peu inutile puisque "e" permet d'y accéder.

A votre place, j'écrirai plutôt :

// variables en string car a priori on n'a pas besoin des feuilles pour le code
// en question : cela permet de les utiliser directement
let suivi = "Suivi Commande";
let requete = "QryNoCommande";

function onEdit(e){
  // utilisation de e pour récupérer la feuille modifiée
  // utilisation de la variable globale requete
  if (e.range.getSheet().getName() == requete) {
    // utilisation de la variable globale suivi
    Browser(suivi);
  }
}

merci pour ces précisions et vos recommandations.

j'ai finalisé ce code qui fonctionne

let classeur = SpreadsheetApp.getActiveSpreadsheet();
let suivi = classeur.getSheetByName("Suivi Commande");
let requete = classeur.getSheetByName("QryNoCommande");

function onEdit(e) {
  let feuilleActive = e.range.getSheet().getName();
   if (feuilleActive == "Suivi Commande") {
    let cellC13 = suivi.getRange("C13");
    cellC13.setValue(requete.getRange("B2").getValue());
  }
}

Merci je vais cliquer comme résolu !

Bonjour,

Merci pour votre retour, votre adaptation est très bien aussi.

Bonne journée.

Rechercher des sujets similaires à "synxtaxerror unexpected identifier"