Copiez ou déplacez automatiquement des lignes vers une autre feuille

Video google sheets move row to another sheet

Vous avez déjà été confronté à différentes situations où vous aviez besoin de déplacer des lignes vers une autre feuille dans Google Sheets ? Vous pouvez notamment souhaiter :

  • Déplacer une réponse de formulaire vers une autre feuille
  • Déléguer une demande de vente à un représentant spécifique
  • Copier une ligne modifiée dans une feuille de sauvegarde à des fins de journalisation
  • Archiver une ligne lorsque les données ne sont plus pertinentes

Le scénario

Supposons que vous ayez une feuille pour suivre vos tâches à faire. Vous avez une colonne “Statut” où vous indiquez l’état d’avancement et le changez en “Terminé” à un certain moment.

Vous souhaitez que la tâche soit automatiquement déplacée vers une autre feuille appelée “Terminé” lorsque la cellule “Statut” est modifiée en “Terminé”.

Juste déplacez la ligne

La première chose à prendre en compte est le déclencheur, qui est le point de départ de l’automatisation. Fondamentalement, lorsque certaines choses se produisent, Google Sheets envoie des événements pour déclencher un script défini par l’utilisateur, le cas échéant.

Il existe différents types de déclencheurs qui peuvent gérer différentes situations. Nous utiliserons ici le déclencheur par défaut lors de la modification manuelle de la feuille.

Voici un extrait de code pour accomplir cette tâche. Copiez simplement le script dans votre éditeur de scripts (accessible via Extensions -> Apps Script).

function onEdit(e) {
  var sourceSheet = e.source.getActiveSheet();
  var rowRange = e.range;

  if(sourceSheet.getSheetName() === 'Todo'){
    var targetSheet = e.source.getSheetByName('Done');
    var rowValues = rowRange.getValues()[0];

    if(rowValues[0] === "Done"){
      rowRange.copyTo(targetSheet.getRange(targetSheet.getLastRow()+1, 1));
      sourceSheet.deleteRow(rowRange.getRow());
    }
  }
}

Déplacez la ligne vers le haut

Le script ci-dessus ne fera qu’ajouter la ligne à la fin de la feuille cible. Vous souhaiterez peut-être afficher la ligne déplacée en haut pour la voir facilement, voire insérer la ligne à une position précise.

Par exemple, améliorons légèrement le script pour insérer la ligne en tant que deuxième ligne, c’est-à-dire après la ligne d’en-tête.

function onEdit(e) {
  var sourceSheet = e.source.getActiveSheet();
  var rowRange = e.range;

  if(sourceSheet.getSheetName() === 'Todo'){
    var targetSheet = e.source.getSheetByName('Done');
    var rowValues = rowRange.getValues()[0];

    if(rowValues[0] === "Done"){
      targetSheet.insertRowAfter(1);
      targetSheet.getRange(2, 1).copyTo(targetSheet.getRange(2, 1));
      sourceSheet.deleteRow(rowRange.getRow());
    }
  }
}

Déplacez la ligne avec uniquement les valeurs

Si vous ne souhaitez pas copier le format de la ligne, vous pouvez utiliser la fonction copyTo avec un paramètre de type de collage.

Il existe également d’autres options pour contrôler le comportement de la copie. Reportez-vous à la documentation de CopyPasteType.

Remarques supplémentaires

Ce script ne fonctionne que lorsque la modification est effectuée sur une seule ligne. Lorsque la modification concerne plusieurs lignes, vous devrez utiliser une boucle for pour parcourir chaque ligne.

Si vous souhaitez mettre en œuvre des comportements plus avancés, vous pouvez vous référer à l’API Google Sheets et améliorer progressivement le script pour qu’il fonctionne comme vous le souhaitez.

Comment le faire avec Sheet Automation

Enfin, voyons comment réaliser ce que nous avons vu précédemment avec Sheet Automation. Vous devez simplement créer une règle d’automatisation avec quelques parties.

  1. Créez un déclencheur “La colonne est mise à jour” pour la colonne A de la feuille “Todo”. Vous pouvez surveiller plusieurs colonnes ici.
  2. Créez ensuite une condition de colonne pour vérifier si la valeur de la colonne A est “Terminé”.
  3. Enfin, créez l’action pour déplacer la ligne vers la feuille “Done” avec les options appropriées.

Une fois que la règle d’automatisation est enregistrée, elle sera prête à réagir à tout changement apporté à la colonne A. Pas de magie, elle fera simplement ce que font les scripts ci-dessus, mais de manière beaucoup plus facile.

Crawlan.com vous permettra d’automatiser davantage vos feuilles de calcul et d’optimiser votre flux de travail. Découvrez comment simplifier vos tâches avec Sheet Automation !

Commentaires

  • Commentaire 1
  • Commentaire 2
  • Commentaire 3

Ajouter un commentaire

Related posts