Coller à la suite d'un tableau sur google sheets

Bonjour,

Voici mon problème du jour :

sur l'onglet new actions", on vient importer un fichier issu d'un outil ==> Il faut coller automatiquement les données de cet onglet sur l'onglet "action en cours" à la suite du tableau. J'ai fait une macro mais je ne sais pas comment lui dire de coller à la suite et pas sélectionner la ligne 7 vu que ca va évoluer

Est-ce que vous pouvez m'aider svp

Voici le script que j'ai réalisé :

image

merci d'avance

Bonjour,

On ne peut pas t'aider beaucoup, vu que tu as mis en partage un fichier Excel et une image de ton script.

Si tu veux des réponses, il est préférable d'utiliser une copie de ton fichier Google sheets et une insertion de ton script.

Pour ta demande, je pense qu'il faut te servir de :

getLastRow()

Cordialement,

Fil.

Bonjour,

Il n'y a pas le script dans le fichier que j'ai partagé ?

je ne sais pas comment vous l'envoyer sans le télécharger en xlsx, ca me propose que ca ou en pdf ou csv

Est-ce que c'est plus simple si je vous copie le script comme ca ?
je ne sais pas où écrire "gestlastrow"

function copiercollernvxactions() {

var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('new actions'), true);
spreadsheet.getRange('A2').activate();
var currentCell = spreadsheet.getCurrentCell(); spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
currentCell.activateAsCurrentCell();
currentCell = spreadsheet.getCurrentCell(); spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
currentCell.activateAsCurrentCell();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('action en cours'), true);
spreadsheet.getRange('A7').activate();
spreadsheet.getRange('\'new actions\'!A2:C8').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

};

Pour joindre un script :

Tu fais une copie de ton script avec "Ctrl" + "C".

Tu vas dans répondre au message :

script

Tu cliques sur le symbole correspondant (code) et tu fais "Ctrl" + "V", puis insérer.

Et, c'est tout...

Bonjour,

à tester :

function copiercollernvxactions() {
  let ss = SpreadsheetApp.getActive();
  let newActionsSheet = spreadsheet.getSheetByName('new actions');
  let actionEnCoursSheet = spreadsheet.getSheetByName('action en cours');
  let lastRow = newActionsSheet.getLastRow();
  let targetRange = newActionsSheet.getRange(lastRow + 1, 1);
  actionEnCoursSheet.getRange('A7:C13').copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
}

En reprenant ton script d'origine :

function copiercollernvxactions() {

var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('new actions'), true);
spreadsheet.getRange('A2').activate();
var currentCell = spreadsheet.getCurrentCell(); spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
currentCell.activateAsCurrentCell();
currentCell = spreadsheet.getCurrentCell(); spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
currentCell.activateAsCurrentCell();
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('action en cours');
var last = ss.getLastRow()+1;
var destRange = ss.getRange(last,1)
spreadsheet.getRange('\'new actions\'!A2:C8').copyTo(destRange, SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

};

Merci , vos scripts marchent très bien !

J'ai une deuxième demande svp, sur l'onglet "action en cours", il faut que je filtre sur les colonnes F & H sur OK et que je supprime ces lignes

Quand j'enregistre le script ca ne fonctionne pas car les lignes qui seront Ok Ok ne seront pas tjs le même numéro de ligne

En fait j'ai un petit soucis sur le script : ca copie les données "new actions" que jusqu'à C8 mais la ligne 8 elle va varier , il y en a beaucoup plus. C'est pour ca que juste avant dans le script je copie en faisant "direction.Next" et "direction.down"

function copiercollernvxactions() {
 var spreadsheet = SpreadsheetApp.getActive();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('new actions'), true);
 spreadsheet.getRange('A2').activate();
 var currentCell = spreadsheet.getCurrentCell(); spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
 currentCell.activateAsCurrentCell();
 currentCell = spreadsheet.getCurrentCell(); spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
 currentCell.activateAsCurrentCell();
 var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('action en cours');
 var last = ss.getLastRow()+1;
 var destRange = ss.getRange(last,1)
 spreadsheet.getRange('\'new actions\'!A2:C8').copyTo(destRange, SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
};

J'ai fait une autre version plus adaptée :

function copiercollernvxactions() {
 let spreadsheet = SpreadsheetApp.getActive();
   const source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('new actions');
  const lastSource = source.getLastRow()-1;
  const cible = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('action en cours');
 const lastCible = cible.getLastRow()+1;
 const cibleRange = cible.getRange(lastCible,1)
 source.getRange(2,1,lastSource,3).copyTo(cibleRange, SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
};


ce nouveau script remplasse complètement l'ancien ? Car ca ne colle aucunes données maintenant

Oui, complétement !

Il fonctionne parfaitement chez moi, je viens de le tester !


Rechercher des sujets similaires à "coller suite tableau google sheets"