Intégrer des lignes d'un tableau dans un autre tableau

Hello le forum,

Petite question.....

J'aimerais intégrer dans un tableau existant plusieurs ligne venant d'un autre tableau se trouvant dans une autre feuille en évitant de le faire ligne par ligne. en Excel via une macro ca fonctionne, mais sur sheets je n'y arrive pas.

Une idée svp, je coince.

Merci d'avance pour votre aide

Steph5031

Petite précision, ce n'est pas vraiment intégrer, c'est plutôt insérer les 5 à 6 ligne a la fin des lignes du 2é tableau

Bonjour,

Tu peux le faire avec les {} (par exemple ={E1:F4;'Feuille 2'!A3:B9}) :

https://www.sheets-pratique.com/fr/astuces/accolades

Tu as un exemple complémentaire ici avec l'ajout d'une ligne de total à la fin d'un tableau de longueur variable :

https://www.sheets-pratique.com/fr/astuces/ajouter-total

Cordialement,

Merci Sébastien,

J'ai appris quelque chose, mais ce n'est pas vraiment ce que je recherche, je vais essayer de m'expliquer, mais je pense que c'est une Macro qu'il faut.

J'ai un tableau qui selon mon exercice est variable en nombre de ligne (exemple en feuil 1 j'ai un tableau de A1:E10 ou A1:E6 suivant l'exercice) et quand mon exercice est fini j'aimerais intégrer ce même tableau a la fin d'un tableau en feuil2.

J'ai essayer les accolades, mais ça effacé les autre ligne, ou alors y a quelque chose que je n'ai pas capté 🤔

Après les macros ou app script sur Sheets suis plus que novice

Pour le moment je le copie et je le colle, mais voudrais l'automatisé.

Merci

Bonjour Stef,

Si tu veux mettre ton tableau de la Feuille 1 à la fin de la Feuille 2.

Tu mets simplement cette formule dans la colonne A (à la fin du tableau) de ta Feuille 2 !

Bien sûr, il faut remplacer F par la dernière colonne de ton tableau de la Feuille 1.

={'Feuille 1'!$A$1:$F}

Cordialement,

Fil.


Hello Fil,

Déjà un grand merci, ça fonctionne super mais il faut le faire manuellement, tu n'aurais pas un truc pour l'automatiser ? via un bouton par exemple.

Steph

Bonjour Stef,

Si tu veux automatiser, c'est plus simple avec un script :

function copiercolleplage() {
 let spreadsheet = SpreadsheetApp.getActive();
  const source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Feuille 1').getRange('A1:E10');
   const cible = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Feuille 2');
    const lastCible = cible.getLastRow()+1;
      const cibleRange = cible.getRange(lastCible,1); 

 SpreadsheetApp.flush();

 source.copyTo(cibleRange, SpreadsheetApp.CopyPasteType.PASTE_VALUES
 , false);

};

Cordialement,

Fil.

Bonjour Fil,

On ne doit pas être loin de la solution.. mais le script ne fonctionne pas, certainement que je fais une mauvaise manœuvre.

Voici ce que j'ai fait,

J'ai ouvert App script, j'ai coller ton code

J'ai remplacer 'FEUILLE 1' par le vrai nom 'Frais ASSO'

J'ai remplacé 'FEUILLE 2' par le vrai nom 'Comptabilité ASSO'

J'ai modifié la plage source (B4:H18) cette plage peut-être variable suivant les semestres ex.: premier semestre j'aurais la plage B4:H12 et le 2é semestre je pourrais avoir B4:H6 comme B4:H16 par exemple. j'ai même essayer avec la plage de la première formule $B$4:$H...

j'ai placer un bouton sur lequel j'ai assigner le script (copiercolleplage)

Je vois bien Sheets qui fait l'action mais le tableau copié ne se colle pas

ci dessous mes deux tableaux

frais asso comptabilite asso

Quand je place la première formule en manuel, c'est vraiment TOP, si j'étais le seul a l'utilisation, je me débrouillerais ainsi, mas c'est pas le cas...

Je dois faire une mauvaise manip quelque part.

Si tu sais encore m'aider ce serait cool.

Belle journée

Stéph

Bonjour Stef,

J'ai adapté le script aux contraintes de ton fichier :

https://docs.google.com/spreadsheets/d/1bMkixBJEm3fLDFMb_olexmVLQ7iMSVgo5-234CCmu5k/edit?usp=sharing

function copiercolleplage() {
 let spreadsheet = SpreadsheetApp.getActive();
  const source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Frais ASSO').getRange('B4:H18');
   const cible = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Comptabilité ASSO');
    const lastCible = cible.getLastRow()+1;
      const cibleRange = cible.getRange(lastCible,2); 

 SpreadsheetApp.flush();

 source.copyTo(cibleRange, SpreadsheetApp.CopyPasteType.PASTE_VALUES
 , FALSE);

};

Cordialement,

Fil.


Hello Filoche,

Son ton fichier ça fonctionne a merveille, c'est vraiment ce que je voulais.

Par contre, je copie ton code dans mon fichier et rien ne se passe, je ne comprend pas, Je ne dois pas faire les choses comme il faut.

- j'ai copié le code et l'ai collé dans apps script.

- j'ai refait un bouton et assigné le script

Et rien 😥

dois-je refaire les tableaux ?

Steph.

Filoche,

J'ai trouvé a moitier, le scripte fonctionne, mais pas réellement comme sur ton fichier, en faite, par curiosité je suis descendu plus bas dans les lignes et j'ai vu mes tests.

En faite, sur ton fichier le scripte colle bien les lignes du premier tableau vers le deuxième, si il y a 4 lignes il copie les 4 (B4:H7), si il y en a 8 il en copie bien les 8 (B4:H11) et vient bien les coller a la suite des autres. sur mon fichier, il est venu les coller en dessous de mon tableau, c'est pour celà que je ne voyais pas que ça fonctionnait mais il copie toute la plage (B4:H18) et donc a chaque fois j'ai plusieurs lignes vides entre chaque test que je fais.

c'est peut-être un problème de tableau ? s'il les place en dessous par contre qu'il copie la plage entière ?

Merci pour ton aide

Steph

Bonjour Stef,

Peux-tu partager un modèle de ton tableau que je comprenne d'où vient le problème.

Merci,

Fil.

Fil,

Voici le lien du fichier, j'ai supprimé ce que je devais.

Fonctionnement des document, dans la feuil "Nettoyage ASSO" dans l'encadrer en haut a gauche, je choisi l'année et tout se calcule tout seul et le résultat se met dans la feuil "Frais ASSO" une fois la vérification faite, je click sur le bouton (bleu) et tout dois aller dans la feuille "Comptabilité ASSO" et c'est la que ça se complique.

https://docs.google.com/spreadsheets/d/1QDlk_r8-OE3T-WAr5IA2rn5gSK7MEXqPIqlw9jwIVRg/edit#gid=1190146...

Comprend pas pourquoi ???

Steph

Je viens de faire une demande d'accès.

Le lien du fichier est protégé...

Le script a l'air de fonctionner.

Tu avais simplement un caractère invible dans tes lignes vides en dessous...


Fil,

Effectivement, j'ai une formule qui concat les 3 colonnes a la droite de la colonne "B" ce qui empêche le collage a la suit des autres lignes, mais si je les enlèves et que j'ai + de lignes, ca ne concat plus.

Stef

Bon, ça à l'air de fonctionner.

J'ai remplacé tes formules par celle-ci en B4 de l'onglet "Frais ASSO" :

=map(query(C4:C23;"select C where C is not null");query(D4:D23;"select D where D is not null");lambda(m;n;CONCATENER(m;n)))


Super, mais je voudrais ajouter la colonne E j'ai essayer ceci mais j'ai un retour NA.

=map(query(C4:C23;"select C where C is not null");query(D4:D23;"select D where D is not null");query(E4:E23;"select E where E is not null");lambda(m;n;CONCATENATE(m;n)))

Je ne veux pas abusé de trop, mais j'ai ce problème de la colonne E et je viens de m'apercevoir que quand je filtre la feuil "Frais ASSO" et que j'envoi le résultat dans le tableau comptabilité il y a toujours la première ligne "1er trimestre" qui se mets ???

après je ne t'ennuie plus 😟

Déjà merci pour ton aide.

Stef

Ca va j'ai trouvé pour le concat

=map(query(C4:C23;"select C where C is not null");query(D4:D23;"select D where D is not null");query(E4:E23;"select E where E is not null");lambda(m;n;o;CONCATENATE(m;n;o;)))

Je cherche pour le filtre, si tu trouve avant.... merci

Stef

Ben, c'est normal.

Le script copie la plage B4:H23 dans la feuille Comptabilité ASSO, les lignes masquées par le filtre sont logiquement copiées aussi.

Dans ta requête, il me semble que tu n'as jamais parlé de copier une plage filtrée ???

Rechercher des sujets similaires à "integrer lignes tableau"