Recherche l'information pour une variable

Bonjours à tous,

Comment faire pour remplacer les "x" par la référence de cette "function rechercheDate()" pour trouver la colonne.

function rechercheDate() {
  const sh = SpreadsheetApp.getActiveSheet();
  const d = sh.getRange('A1').getValue().valueOf()
  let col = 0
  let calend = sh.getRange('F3:P3').getValues().flat()
  for (i = 0; i < calend.length; i++) {
    if (calend[i].valueOf() >= d) {
      col = i;
      break;
    }
    var spreadsheet = SpreadsheetApp.getActive();
        spreadsheet.getRange('c1:ad1').activate();
        spreadsheet.getActiveRangeList().setBackground('#ffffff'); // blanc 

        spreadsheet.getRange(xxxxxx).activate(); // ici la colonne trouvée par "rechercheDate" ligne 1

        spreadsheet.getActiveRangeList().setBackground('#ffff00'); // jaune

  }
  return (col + 5 + 1)
}

Actuellement le fichier est presque fini, il me restera plus qu'a réduire les macros trop longue.

Merci d'avance à tous

mbell

les activate ne servent à rien !

remplace

spreadsheet.getRange('c1:ad1').activate();
spreadsheet.getActiveRangeList().setBackground('#ffffff');

par

spreadsheet.getRange('c1:ad1').setBackground('#ffffff');

pour le reste

spreadsheet.getRange(1,col).setBackground('#ffff00')

reporte toi à la documentation de getRange()

Re bonjour Steelson,

j'ai une petite erreur

image

et voici le code modifier

    var spreadsheet = SpreadsheetApp.getActive();
        spreadsheet.getRange('c1:ad1').setBackground('#ffffff');
        spreadsheet.getRange(1,col).setBackground('#ffff00')
       

On dirait que google ne veut pas de cette méthode?

mbell

donc le problème n'était pas seulement l'intégration de col, mais le reste ne fonctionnait pas, l'erreur vient de là

SpreadsheetApp.getActiveSheet();

je pense qu'il faudrait clarifier aussi le vocabulaire

réserver spreadsheet pour un fichier

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
ou
var ss = SpreadsheetApp.getActiveSpreadsheet()
var fichier = SpreadsheetApp.getActiveSpreadsheet()

pour une feuille

var sheet = ss.getActiveSheet()
ou
var sh = ss.getActiveSheet()
var feuille = ss.getActiveSheet()
var f = ss.getActiveSheet()

Bonjour Steelson et bonne fête nationale si tu es français,

Je ne te comprend pas sur la différence de fichier ou feuille,

sur mon fichier "entrainement" il y a des feuilles "2022, 2021, etc,," les macros sont fonctionneles sur toutes ces feuilles qui font partie du fichier,

Donc par exemple "funcion onEdit(event)" c'est pour toutes les feuilles et donc le fichier aussi,

Sur quel sorte de macro dois je mettre

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()

et donc où dois je placer les

var sheet = ss.getActiveSheet()

Merci pour les infos données Steelson,

mbell

D'abord est-ce que ton problème est résolu avec

SpreadsheetApp.getActiveSheet();

à la place de

SpreadsheetApp.getActive();

on verra le reste après

re: sur mon fichier test non:

image

Et sur le bon oui, je viens de recopier toutes les macros du bon vers le test et ça ne vas quand même pas.

je comprend plus

quelle ligne ?

est-ce

        spreadsheet.getRange('c1:ad1').setBackground('#ffffff');
//ou
        spreadsheet.getRange(1,col).setBackground('#ffff00')
//ou autre chose ?

Re Steelson,

c'était sur

        spreadsheet.getRange(1,col).setBackground('#ffff00')

Mais ET je ne comprend pas pourquoi même en recopiant toutes les macros du fichier maître vers le fichier test le pourquoi je n'ai pas le même résultat il boguait toujours.

J'ai donc fait un "créer une copie" du fichier maître et renommer en test et ça fonctionne, donc le problème n'est plus.

Sur le bon fichier les codes, comme tu l'as écrit,

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()

ont été modifier et tout roule.

Un grand merci à toi pour ton aide Steelson.

mbell

Rechercher des sujets similaires à "recherche information variable"