Déclenchement d'une macro à partir d'une case cochée

Bonjour à tous et à toutes,
Je suis maraichère et je cherche à calculer mes coût de revient par légumes. Cela implique énormément de donnée et je souhaiterais simplifier cette collecte, surtout que nous sommes deux associées dont l'une est un peu réfractaire au numérique. C'est pourquoi je cherche des solutions pratiques et manipulables depuis l'appli Sheet. J'ai lu que les macros peuvent s'exécuter depuis l'appli si cela passe par une case à cochée. Si j'arrive à intégrer le déclenchement de mes macros avec cette action de cases cochées, cela va beaucoup me servir. Je compte me mettre un peu au code l'hiver prochain mais en attendant j'ai besoin de votre aide.
Voici le fichier exemple :

https://docs.google.com/spreadsheets/d/1mGrJkByjqu1EQPztkH5lWj1ZaP0-iokVReDQ1FiZNPQ/edit?gid=1348450...

Et voici ma macro précédée d'un code que j'ai trouvé sur ce forum mais qui ne fonctionne pas.
(explication de ma macro : la ligne sélectionnée va se coller dans la feuille "archive" puis se supprimer dans la feuille "Journal de bord"
Souhait du déclencheur via case cochée : si case est cochée, la ligne va s'archiver
A savoir : j'ai fait ma macro en absolu, pas sûr que cela soit pertinent...)

Je vous remercie énormément si vous avez des solutions à m'apporter :)

/** @OnlyCurrentDoc */

function onEdit(event){
  var feuille = event.source.getActiveSheet();
  var cellule = feuille.getActiveCell();
  if(feuille.getName()=='Journal de bord' && cellule.getColumn() == 13){  
macroabsolu2();
}

function macroabsolu2() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A3:O3').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Archive'), true);
  spreadsheet.getRange('2:2').activate();
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
  spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.getRange('\'Journal de bord\'!A3:O3').moveTo(spreadsheet.getActiveRange());
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Journal de bord'), true);
  spreadsheet.getRange('A3:O3').deleteCells(SpreadsheetApp.Dimension.ROWS);
};
}

Salut !

Essayes avec ce script :

const SHEET_BOARD = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Journal de bord');
  const SHEET_ARCHIVE = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Archive');

function onEdit(e){
  var feuille = e.source.getActiveSheet();
  var cellule = e.range;
  if(feuille.getName() ==SHEET_BOARD.getSheetName() && cellule.getColumn() == 13 && cellule.isChecked()){  
    macroabsolu2(cellule);
  }
}

function macroabsolu2(cellule) {
  let ligne = SHEET_BOARD.getRange(cellule.getRow(),1,1,SHEET_BOARD.getLastColumn()).getValues().flat();
  ligne.splice(5, 0, "", "");
  SHEET_ARCHIVE.appendRow(ligne);
  SHEET_BOARD.deleteRow(cellule.getRow());
}

Ca marche et même sur l'appli, je suis très contente. Merci beaucoup Pierre. Si vous passez à côté d'Argentan (orne) un jour, je vous offrirais un panier de légumes avec grand plaisir !

C'est le but d'un forum d'entraide

S'il vous faut des explications n'hésitez pas à demander car je n'ai pas commenté le script

Rechercher des sujets similaires à "declenchement macro partir case cochee"