Google Sheets Google Apps Script
Copier dynamiquement la dernière ligne avec données et insérer une nouvelle ligne propre
| function Copier_ligne() |
|---|
function Copier_ligne() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var lastRow = sheet.getRange("E:E").getValues().filter(String).length; // dernière ligne non vide de la colonne E // Copier la ligne trouvée var sourceRange = sheet.getRange(lastRow, 1, 1, sheet.getLastColumn()); var targetRow = lastRow + 1; // Insérer une nouvelle ligne après la dernière ligne de données sheet.insertRowsAfter(lastRow, 1); // Coller la ligne copiée var targetRange = sheet.getRange(targetRow, 1); sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); // Effacer les cellules spécifiques de la nouvelle ligne (ajuste selon tes besoins) var rangesToClear = [ `E${targetRow}:S${targetRow}`, `V${targetRow}:X${targetRow}`, `AA${targetRow}:AB${targetRow}`, `AD${targetRow}:AF${targetRow}`, `AI${targetRow}:AM${targetRow}`, `AP${targetRow}:AU${targetRow}`, `AX${targetRow}:BE${targetRow}`, `BH${targetRow}:BI${targetRow}`, `BL${targetRow}` ]; rangesToClear.forEach(function(range) { sheet.getRange(range).clear({contentsOnly: true, skipFilteredRows: true}); }); } |
✅ Ce que fait ce script :
- lastRow : détecte la dernière ligne non vide dans la colonne E.
- insertRowsAfter(lastRow, 1) : insère une ligne juste après.
- copyTo(...) : copie la ligne entière.
- clear(...) : nettoie les plages spécifiques de la nouvelle ligne.
✍️ Explication :
Dans la gestion d’un tableau de paie ou tout autre registre structuré sur Google Sheets, on a souvent besoin de :
-
Copier la dernière ligne remplie (par exemple une ligne de saisie complète de salarié),
-
Ajouter automatiquement une nouvelle ligne juste en dessous,
-
Coller la ligne copiée (pour garder les formules ou mises en forme),
-
Effacer certains champs spécifiques pour que la nouvelle ligne soit prête à remplir.
Cette opération peut être automatisée grâce à Google Apps Script.
🔧 Fonction utilisée : Copier_ligne
Voici ce que fait la fonction pas à pas :
-
🔎 Elle cherche la dernière ligne non vide dans la colonne E, souvent utilisée pour indiquer une donnée obligatoire (comme un nom ou matricule).
-
📋 Elle copie toute la ligne correspondante (de la colonne A à la dernière colonne).
-
➕ Elle insère une ligne vide juste en dessous.
-
📎 Elle colle la ligne copiée dans la nouvelle ligne insérée.
-
🧹 Elle vide les champs que l’utilisateur doit remplir à nouveau (noms, dates, valeurs chiffrées…), tout en conservant la structure.
🧪 Exemple d’utilisation
Tu as un tableau de gestion du personnel. En cliquant sur un bouton associé à cette macro, une nouvelle ligne prête à remplir est insérée automatiquement, avec les bonnes formules en place, sans duplication inutile des anciennes données.
u peux rendre ton script automatique et intelligent en détectant toutes les cellules avec une valeur dans la ligne copiée (la nouvelle ligne ajoutée), sans avoir à spécifier manuellement les plages (E:S, V:X, etc.).
✅ Objectif :
Effacer toutes les cellules avec des valeurs fixes (pas des formules) dans la nouvelle ligne insérée.
🧠 Comment faire ?
Tu peux parcourir chaque cellule de la ligne insérée, et supprimer uniquement son contenu si :
-
Ce n’est pas une formule (
getFormula()renvoie vide), -
Et ce n’est pas vide (
getValue()≠"").
🔁 Code mis à jour :
✅ Ce que fait ce script :
-
🔍 Détecte la dernière ligne remplie via la colonne E.
-
📋 Copie toute cette ligne vers la ligne suivante.
-
🧽 Nettoie automatiquement les cellules contenant uniquement des valeurs (et non des formules).
-
🎯 Pas besoin de spécifier manuellement les colonnes à effacer.
✅ Solution correcte pour obtenir le nom de la feuille active dans Google Sheets (langue française) :
Tu peux utiliser la fonction Apps Script personnalisée, car Google Sheets n’a pas de fonction intégrée pour obtenir le nom de la feuille active.
🛠️ Étapes à suivre :
-
Ouvre ton Google Sheets
-
Clique sur Extensions > Apps Script
-
Colle ce code :
-
Enregistre le script (
Ctrl + S) -
Retourne à ta feuille Google Sheets
-
Utilise la formule suivante dans une cellule :
✅ Résultat :
Cela affichera le nom de la feuille actuelle, peu importe les espaces, caractères ou accents.
📝 Si tu veux l’écrire avec un petit texte devant :
🟢 Google Sheets Apps Script : Copier automatiquement une ligne + Remplir avec des valeurs d’en-tête
Dans ce tutoriel, je vous montre comment utiliser Google Apps Script pour :
✅ Copier automatiquement la dernière ligne de données d’un tableau
✅ Ajouter une nouvelle ligne juste en dessous
✅ Nettoyer certaines cellules (vider des champs spécifiques)
✅ Remplir automatiquement cette nouvelle ligne avec les données saisies dans des cellules d’en-tête (par exemple les cellules E2 à E9, G2 à G9, I2 à I3)
✅ Puis vider ces cellules d’en-tête après insertion
🔧 Code complet expliqué
✅ Ce que fait ce script :
-
Automatise l’ajout d’une nouvelle ligne
-
Copie le format d’une ligne précédente
-
Injecte automatiquement les données saisies dans un petit formulaire
-
Vide le formulaire pour la saisie suivante

Commentaires
Enregistrer un commentaire