Macro pour sauvegarder automatiquement les lignes terminées

Bonjour à toutes et à tous,

Je reviens vers vous pour une nouvelle demande, espérant qu’elle ne soit déjà été traité dans un autre sujet sauf erreur. J'aurai souhaité savoir s’il était possible de sauvegarder toutes les lignes « terminées » d’un G-sheet « Fichier de travail » et les couper/coller dans un autre G-sheet « Fichier de Sauvegarde » via un bouton(macro) présent sur le premier G-sheet « Fichier de travail ». Ainsi les lignes terminées se mettront à la suite dans le G-sheet « Fichier de Sauvegarde ». J’avais regardé avec la fonction IMPORTRANGE() mais je n’ai pas l’associer avec un bouton pour exécuter l’action.

Voici les liens vers les fichiers :

G-sheet « Fichier de travail » :

https://docs.google.com/spreadsheets/d/1vvV9B07L_Q36YNowTdQ8WH48GQUVbI3XZMTIHKGoDL4/edit#gid=0

G-sheet « Fichier de Sauvegarde » :

https://docs.google.com/spreadsheets/d/1hkknJxHdM8Fw50eR2A760dGmSNR2jHVTMN-XpmAbi7Y/edit#gid=0

Ayant vraiment besoin de trouver une solution, merci d’avance pour votre aide :)

David

Bonjour,

sauvegarder toutes les lignes « terminées » d’un G-sheet « Fichier de travail » et les couper/coller dans un autre G-sheet « Fichier de Sauvegarde »

est-ce que tu veux que les lignes d'origine soient effacées ou seulement filtrées ? car dans le cas d'un effacement (si j'ai bien compris tu parles de couper) importrange ne peut pas faire l'affaire ! il faut un script (simple)

Bonjour Steelson,

oui, lignes effacées du fichier de travail , un vrai couper/coller.

Essaie ceci

function moverows() {
  var spreadsheetId = '1hkknJxHdM8Fw50eR2A760dGmSNR2jHVTMN-XpmAbi7Y'
  var sh1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("atelier");
  var sh2 = SpreadsheetApp.openById(spreadsheetId).getSheetByName("atelier");
  if (sh1.getLastRow()==1){return}
  var data = sh1.getRange(2,1,sh1.getLastRow()-1,sh1.getLastColumn()).getValues()
  var archiveData = []
  var lignes = []
  var ligne = 1
  var col = +sh1.getRange('BD1').getColumn() - 1
  try {
    data.forEach(function (row) {
      ligne++
      if (row[col]) {
        archiveData.push(row)
        lignes.push(ligne)
      }
    })
    sh2.getRange(sh2.getLastRow() + 1, 1, archiveData.length, archiveData[0].length).setValues(archiveData)
    lignes.reverse().forEach(x => sh1.deleteRow(x));
  } catch (e) { console.log(e) }
}

merci beaucoup Steelson, c'est exactement ce que je souhaitais comme fonctionnalité. Je vais lui dessiner un bouton pour lui assigner cette macro pour que ce soit plus ergonomique .

Merci encore Steelson, bon fin de week-end.

Rechercher des sujets similaires à "macro sauvegarder automatiquement lignes terminees"