Correction de sript Le sujet est résolu

Avatar de l’utilisateur
Doudel77
Messages : 5
Inscription : 20 mars 2024 13:59

Correction de sript

Message par Doudel77 »

Bonjour,

Je suis nouveau sur ce type de forum, j'espère que mes explications seront suffisantes pour obtenir un peu d'aide.

En m'appuyant sur un tutoriel glané sur le net, j'ai tenté de concevoir un script me permettant de rechercher un identifiant dans un tableau Sheets, ce script doit me permettre de stocker la ligne trouvée dans un tableau afin qu'elle vienne par la suite compléter un formulaire contenu dans un autre onglet. voici mon bout de code qui ne fonctionne pas sachant que lorsque je lance le test j'obtiens ce message :
"Le Numéro de consultation non trouvé : undefined"
Voici mon script :
let plantationPage = spreadsheet.getSheetByName('Plantation');
function getPlantationByRecherche_consultation(recherche_consultation){
  const plantationList = plantationPage.getDataRange().getValues();
 
  let plantation = plantationList.filter(data => {return data[1] == recherche_consultation})[0];
  if(plantation){
    return constructionPlantation(plantation);
  }
  let ui = SpreadsheetApp.getUi();
  ui.alert('Le Numéro de consultation non trouvé :  '+recherche_consultation);
}

function constructionPlantation(plantationArray){
  return new Plantation(
    plantationArray[0],
    plantationArray[1],
    plantationArray[2],
    plantationArray[3],
   
  );
}
function testcode(){
  console.log('Identifiant non trouvé' +JSON.stringify(getPlantationByRecherche_consultation('PL2022-10003/01')))
}
Je devrait obtenir "PL2022-10003/01'" et pas "undefined"

Merci



 
Avatar de l’utilisateur
NC_Quentin

Coach Numericoach
Invétéré
Messages : 32
Inscription : 10 oct. 2022 09:06
A remercié : 1 fois
Remercié : 11 fois

Re: Correction de sript

Message par NC_Quentin »

Bonjour !

De ce que j’en vois et de ce que j’ai testé, le code est fonctionnel (j’ai dû rajouter et changer les morceaux qui manquent, et j’ai ignoré la classe Plantation qui a l’air d’avoir été définie ailleurs et qui n’est pas liée au problème). J’ai légèrement réécrit le code, mais dans le fond, rien n’a changé :

Code : Tout sélectionner

function getPlantationByRecherche_consultation(recherche_consultation){
  const plantationPage = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Plantation');
  const plantationList = plantationPage.getDataRange().getValues();
 
  const plantation = plantationList.filter(data => {return data[1] == recherche_consultation})[0];
  if(plantation){
    return constructionPlantation(plantation);
  }
  SpreadsheetApp.getUi().alert('Le Numéro de consultation non trouvé :  '+recherche_consultation);
}
function constructionPlantation(plantationArray){
  SpreadsheetApp.getUi().alert(plantationArray.join(", "));
}
function test(){
  getPlantationByRecherche_consultation("PL2022-10003/01");
}
Lorsque j’exécute la fonction test avec l’éditeur, j’obtiens bien ma ligne de test dans mon Sheets. 

Est-ce que vous exécutez bien la fonction testcode dans l’éditeur ? Si vous exécutez directement la fonction getPlantationByRecherche_consultation, celle-ci est exécutée sans argument, donc recherche_consultation est mis sur undefined, ce qui expliquerait l’erreur que vous avez. C’est la seule explication qui me vient pour le moment.
Avatar de l’utilisateur
Doudel77
Messages : 5
Inscription : 20 mars 2024 13:59

Re: Correction de sript

Message par Doudel77 »

Bonjour,
Merci pour cette réponse très complète, je teste tout cela. J'ai une petite question subsidiaire, ce type de recherche, peut-elle être contrecarrée par le type de donnée recherché. Par exemple si la valeur recherchée est donnée comme du texte et que dans le tableau cette donnée est stockée sous la forme numérique.

Merci
Bonne journée
Avatar de l’utilisateur
Doudel77
Messages : 5
Inscription : 20 mars 2024 13:59

Re: Correction de sript

Message par Doudel77 »

Après correction du script et un dernier test, la fonction fonctionne car j'ai une réponse négative avec le numéro demandé, mon souci c'est que cet identifiant existe bien, il devrait me répondre avec les données correspondantes.
Répondre

Rejoignez la discussion 💬

Vous devez être enregistré pour participer à la discussion et échanger avec les différents membres

Inscrivez-vous dès aujourd'hui

Vous n'êtes pas encore membre ? Rejoignez-nous gratuitement dès aujourd'hui et contribuer en postant votre réponse ou question sur tous les forums disponibles

Inscription

Connectez-vous