Googe app script Récupérer l'adresse d'une celulle

Bonjour,

Je recherche une valeur sur une ligne d'un tableau, une fois trouvée, je souhaite récupérer le numéro de la colonne de la cellule trouvée.

Auriez vous une idée?

Cordialement,

pascal

Bonjour et bienvenue,

si tu cherches A en ligne 13 par exemple

=MATCH("A",13:13,0)

ou

=EQUIV("A",13:13,0)

te donnera le n° de la colonne où la valeur A est trouvée.

Bonjour,

Merci pour la réponse, mais je ne vois pas comment l'intégrer dans mon code.

Voilà ce que j'ai commencé à faire. Une fois la colonne repérée, cela me permettra de faire une boucle sur les lignes pour chercher dans cette colonne certaines valeurs.

function detecterActivite()
{

  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Animateur AS'), true); 
  var feuille = SpreadsheetApp.getActiveSheet();

  var Activite = feuille.getRange(6,2).getValues();   // Charge la valeur à chercher
  Browser.msgBox (Activite);                          // affiche la variable

  for(var Col=10;Col<=40;Col++)                        // cherche dans la colonne 10 à 40
  {
     var rechercheActivite = feuille.getRange(1,col).getValues();  // Plage de recherche
     if(rechercheActivite == Activite)
    {

// ICI 
// Recherche du numéro de la colonne où se trouve l'Activité sur la ligne 1
//     var NumeroCol =                // Numéro de la colonne où se trouve la cellule trouvée
//     Browser.msgBox (NumeroCol);
// FIN ICI

// TEST
     // const adresse = cellule.getA1Notation(); //test  
     // Browser.msgBox(adresse);                 //test
// FIN TEST                 

    }
  }

Merci beaucoup pour votre aide.

Pascal

Ce que j'ai fait est une fonction, et en effet ce n'est pas un script.

Peux-tu mettre un lien vers une copie de ton projet, ce serait plus facile pour moi de faire cette seconde version, ou inspire toi de quelque chose comme ceci

  var values = feuille.getRange('1:1').getValues().join().split(","); 
  var colonne = values.indexOf("ce que je cherche") + 1; // +1 car indexOf commence à 0 et les colonnes à 1

pas testé ...

Merci pour votre aide.

Si dessous le lien:
https://docs.google.com/spreadsheets/d/1LyMBBMA49BV3YIOFJ58u2yHfj28dOVz5ZOVuQhpVFc4/edit?usp=sharing
J'avais fait ce type de fichier en VBA, je souhaitais le réaliser en GAS.
Cordialement
Pascal

C'est curieux, je suis en lecture, je ne peux même pas faire une copie du projet et accéder au script !

Bonjour,

Il faut peut-être indiquer dans votre code, sur quelle feuille s'effectue la recherche, la feuille de l'activité est bien indiquée mais pas celle de la recherche

je pense que c'est sur la feuille BDD ???

Bonjour Gilbert,

maintenant que j'ai la main sur le fichier ... outre la remarque de Gilbert, 2 choses

  1. le script est sensible à la casse, donc ne pas écrire tantôt col et Col
  2. si tu ne prends qu'une valeur à la fois, alors getValue() ne prend pas de s final

tu peux donc écrire en intégrant la remarque de Gilbert

function detecterActivite()
{

  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Animateur AS'), true); 
  var feuille = SpreadsheetApp.getActiveSheet();
  var bdd = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BDD')

  var Activite = feuille.getRange(6,2).getValues();   // Charge la valeur à chercher
  Browser.msgBox (Activite);                          // affiche la variable

  for(var col=10;col<=40;col++)                        // cherche de la colonne 10 à 40
  {
     var rechercheActivite = bdd.getRange(1,col).getValue();  // Plage de recherche
     if(rechercheActivite == Activite)
    {

      Browser.msgBox (col)

    }
  }

}

Merci pour votre aide!

Je vais reprendre mon code, je vous tiens au courant de mes avancés.

Bonne soirée.

Pascal

Bonsoir,

Me revoilà, je suis désolé de mon mutisme mais je faisais un break.

Vous trouverez ci dessous mon code. Il y a surement moyen de le simplifier. Il me reste à faire le test de savoir si la feuille qui se crée existe déjà. (si la feuille existe j'efface) je n'y arrive pas.

Bonne soirée

Pascal

///////////////////////////////////////////////////////////////////////
/**********************************************************************
* Macro Recherche l'activité choisie

*/

function Activite()
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var feuille0 = ss.getSheetByName("Accueil");
  var data_range0 = feuille0.getDataRange();
  var feuille = ss.getSheetByName("BDD");
  var data_range = feuille.getDataRange();

  var recherche = data_range0.getCell(4,2).getValue(); 
  for(var col=10;col<=59;col++)
  {
    var celrecherche = data_range.getCell(2,col).getValue();
    if(recherche == celrecherche)
    {

//****************************************************************** */
//************ Fabrication de l'onglet  **************************** */

    var nomonglet = recherche; 
    SpreadsheetApp.getActiveSpreadsheet().insertSheet(nomonglet);
    var feuille2 = ss.getSheetByName(nomonglet);
    var data_range2 = feuille2.getDataRange();

//************ Fin Fabrication de l'onglet  ************************ */
//****************************************************************** */  

//****************************************************************** */
//************ repport des infos sur la nouvelle feuille *********** */

    var ligneact = 2 ; 
    var dernier_rang = data_range.getLastRow();           // cherche la derniere ligne du tableau
    for(var ligne=3;ligne <= dernier_rang;ligne++)
    {
    var rechercheact = data_range.getCell(ligne,col).getValue();
  //  Browser.msgBox (rechercheact);
    if(rechercheact == 1)
    {
      var nom = data_range.getCell(ligne,3).getValue();
      var prenom = data_range.getCell(ligne,4).getValue();
      var tel = data_range.getCell(ligne,5).getValue();
      var etab = data_range.getCell(ligne,6).getValue();
      var ville = data_range.getCell(ligne,3).getValue();

      var ligneact = ligneact + 1;
      feuille2.getRange(1, 1).setValue("Activité:");
      feuille2.getRange(1, 2).setValue(recherche);
      feuille2.getRange(2, 1).setValue("Nom");
      feuille2.getRange(2, 2).setValue("prenom");
      feuille2.getRange(2, 3).setValue("tel");
      feuille2.getRange(2, 4).setValue("etab");
      feuille2.getRange(2, 5).setValue("ville");

      feuille2.getRange(ligneact, 1).setValue(nom);
      feuille2.getRange(ligneact, 2).setValue(prenom);
      feuille2.getRange(ligneact, 3).setValue(tel);
      feuille2.getRange(ligneact, 4).setValue(etab);
      feuille2.getRange(ligneact, 5).setValue(ville);
    }
    }

    }
  }
}

/**********************************************************************
* FIN Macro Recherche l'activité choisie
*/
///////////////////////////////////////////////////////////////////////

Bonjour

Il me reste à faire le test de savoir si la feuille qui se crée existe déjà. (si la feuille existe j'efface) je n'y arrive pas.

essaie ceci, si la feuille existe déjà elle ne se re-crée pas

var nomonglet = recherche; 
var feuille2 = ss.getSheetByName(nomonglet);
if (!feuille2){
  ss.insertSheet(nomonglet);
  var feuille2 = ss.getSheetByName(nomonglet);
}
Rechercher des sujets similaires à "googe app script recuperer adresse celulle"