Appendrow qui ne se fait pas Le sujet est résolu

Avatar de l’utilisateur
NC-Ahmet

Coach Numericoach
Invétéré
Messages : 86
Inscription : 19 sept. 2022 14:09
A remercié : 16 fois
Remercié : 19 fois

Re: Appendrow qui ne se fait pas

Message par NC-Ahmet »

Dans la logique c'est ça, dans la pratique ton code ne fonctionnera pas ainsi car il faut que tu renseignes ce que tu "push" dans ton tableau et que tu corriges les erreurs de syntaxe.

Mais j'imagine que tu as écrit ça sur ton téléphone, ce qui explique les erreurs 😉

Pour savoir si ça marche il n'y a qu'un seule solution : tester. Je t'inviter à essayer et tu nous diras !
Avatar de l’utilisateur
TheZig
Messages : 32
Inscription : 18 mars 2023 18:08
A remercié : 7 fois
Remercié : 3 fois

Re: Appendrow qui ne se fait pas

Message par TheZig »

J'ai bien peur malheureusement qu'il n'y ait pas que le smartphone qui soit responsable des erreurs ;-)
j'ai toujours des problèmes avec la syntaxe :car je manque de bases: j'essaie de me cultiver, mais c'est souvent au coup par coup :-((
où puis-je apprendre ça ?

quand à "push" peut-être quelque chose du genre
 tableau.push(paiements[li]) ?
Ce qui se conçoit bien, s'énonce clairement (Boileau) 
Avatar de l’utilisateur
TheZig
Messages : 32
Inscription : 18 mars 2023 18:08
A remercié : 7 fois
Remercié : 3 fois

Re: Appendrow qui ne se fait pas

Message par TheZig »

Bonjour,

Pour celles et ceux que ça intéresseraient, voici ma solution, qui n'utilise ni boucle, ni push, mais tout simplement la fonction filter:
(merci à MC_Ahmet pour m'avoir donné le lien de la doc  JavaScript officielle : c'est une mine d'or 😂)

j'ai remplacé cette partie de mon code
// met dans une variable les données source de la ligne li, colonne 1 (A) jusqu'à la colonne 7 (G)
const paiements = FeuillCH.getRange(5,1,nbLignesSource,7).getValues();

// boucle pour parcourir les lignes de la feuille
  for (var li = 5; li <= nbLignesSource; li++)
    {
      cc = formCH_Source.getRange('G'+li).getValue();   // valeur des cases à cocher en col G  
 
      if (cc  == true)
      {

      // insère la ligne li

      listeCH_Cible.appendRow(paiements[li]);
       }
par ceci:
// met dans une variable les données source de la ligne li, colonne 1 (A) jusqu'à la colonne 7 (G)
const paiements = FeuillCH.getRange(5,1,nbLignesSource,7).getValues();

//création d'un nouveau tableau résultant du filtre du premier avec le critère  case  cochée (donc true)
  const paiemtsTrue = paiements.filter(dataRow => dataRow[6] === true);

  const nbLiTrue = paiemtsTrue.length; //nb de lignes du nouveau tableau

 if  (nbLiTrue>0) 
   {
//trouve la première ligne libre de la feuille cible
    const liCible = listeCH_Cible.getLastRow()+1; 

//collage des données de la 1ère col, de la ligne cible, à la dernière ligne de données, colonne G
    listeCH_Cible.getRange(liCible,1,nbLiTrue,7).setValues(paiemtsTrue);
   }
 
 
 
 
 
 
Ce qui se conçoit bien, s'énonce clairement (Boileau) 
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