Google App Script - listeception

Bonjour à tous,

Si vous touchez un peu au code, une idée de comment, à partir d'une liste base de donnée, une liste avec des labels trier la base de donnée dans les labels correspondants ?

J'ai tenté une boucle for qui itère les labels dans une nouvelle liste (temporaire), puis, imbriqué dans la première une autre boucle for qui compare la liste précédemment crée à la base de donnée et en cas d'équivalence push ma liste, mais ça ne marche pas.

25 LABELS (1 colonne / 25 lignes) - BDD (5 colonnes / x lignes) => je veux une liste par label contenant tous les éléments dans la BDD == à chaque label (derrière l'idée est de générer une feuille PDF par label reprenant chaque occurrence).

Si quelqu'un a une idée ça m'aiderait beaucoup, s'il faut un fichier exemple dites-le-moi.

màj : j'ai répété 25 fois (en modifiant le label)

var label1 = parametres.getRange(5,1).getValue();
  var liste_label = []
data.forEach(function(row){
  row[5] == labal && liste_label.push(row[2]+row[4]);})
  if (liste_label != ""){
    liste_finale.push(label)
    liste_finale.push(liste_label.toString().split(","))}

Au final j'ai ma liste, sous le format : [ label1, [ data, data, data, data ], label2 [data, data, data, data], ...]

C'est dégueulasse mais ça marche, une fois que j'aurai réussi à faire ma génération de PDF, je revienderai sans doute sur cette fonction pour tenter de faire une boucle (car en + d'être moche, les positions de mes labels sont constants et pas variables, j'aimerai qu'en cas de modification du paramétrage le script s'adapte)

Bonjour Pierre, je veux bien jeter un oeil, il me reste un peu de temps à tuer avant la reprise du boulot.

Mais je veux bien un petit fichier de démo si tu as ça sous le coude.

Après je ne suis pas un expert du code, je suis en cours d'apprentissage aussi, mais sait-on jamais ^^

Bonjour,

Voici un fichier reprenant à peu près ma problématique :

- onglet 1 avec la base de donnée (legume / poids / référence)

- onglet 2 paramètres avec les légumes autorisés

- onglet 3 qui a pour but de reprendre chaque légume et de cumuler les références et poids de ceux-ci

Tu as dû oublier le lien, tu as mis le résultat que tu souhaitais ?

Je ne comprends pas le fichier ni le résultat que tu comptes obtenir...

Pour chaque légume tu n'as qu'une référence du coup...

Bonjour,

peux-tu ouvrir l'accès à ton fichier ?

Bonjour,

Voici un nouveau lien, je l'ai transféré sur un compte qui permet le partage.

https://docs.google.com/spreadsheets/d/1JfUAc8pkIhObf3VseMWIXbdZ_Sc7traocbR3JIDmvR4/edit?usp=drivesd...

@Fred BZH, j'ai une base de donnée, avec des légumes, des références et des poids, mon but est d'avoir pour chaque légume une feuille bilan qui reprend, le nom du légume, toutes les références qui match dans la BDD et les poids.

Hello,

j'ai créé des copies de BDD et de tableau de bord, avec une petite modification de la base de données pour y intégrer les paramètres.

Pas besoin de passer par le code dans ce cas là, un query suffit, le résultat est le même que celui obtenu sur l'onglet tableau de bord mais je me dis que j'ai peut-être pas bien compris la demande

Bonjour,

Merci mais mon but est d'avoir le cumul de chaque légume sur une feuille, par exemple :

screenshot 2023 04 04 08 39 03

Hello,

si je comprend bien, il y a une base de donnée avec toutes les référence et le prix "unitaire", un tableau de bord qui indique les ventes réalisées et le deuxième tableau de bord permet de voir les ventes réalisées sur un légume et ses différentes références? Si c'est ça, ça serait bien d'avoir les références aussi sur le premier tableau de bord.

Désolé, j'ai pas l'impression de te faire gagner du temps

SOLUTION :

Si quelqu'un a la même problématique, voici la résolution :

Dans une 1ere fonction, lister les labels, puis les faire boucler dans une 2nd fonction :

  listeLabels.forEach(genereCertificat)}

Dans cette seconde fonction, faire matcher le label de la BDD avec le label inputé :

  var dataAdegrossir = dataSheet.getDataRange().getValues();
  var data = []
  for (i=0;i<dataAdegrossir.length;i++){if (dataAdegrossir[i][5] == label) {data.push(dataAdegrossir[i])}}
  if (data != ""){
    tempLabel.setValue(label)
    for (i=0;i<data.length;i++){
      if (data[i][2]!=""){template.getRange(14+i,2).setValue(data[i][2])}
      if (data[i][4]!=""){template.getRange(14+i,3).setValue(data[i][4])}
    }
Rechercher des sujets similaires à "google app script listeception"