Pb de déclencheur de Macro

Bonjour,

J'ai créé une Macro qui fait le Taf en Déploiement Manuel :

function PAssage() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('14:14').activate();
  spreadsheet.getActiveSheet().showRows(2, 11);
  spreadsheet.getRange('14:24').activate();
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 11);
  spreadsheet.getActiveRange().offset(0, 0, 11, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.getRange('A14').activate();
  spreadsheet.getRange('3:13').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('24:24').activate();
  spreadsheet.getRange('13:13').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
  spreadsheet.getRange('3:13').activate();
  spreadsheet.getActiveSheet().hideRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows());
  spreadsheet.getRange('14:14').activate();
  spreadsheet.getRange('A14:A23').activate()
  .mergeVertically();
  spreadsheet.getRange('L14').activate();
  spreadsheet.getRange('L3:O13').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
  spreadsheet.getRange('F15').activate();
};

Mais lorsque je souhaite la déclencher automatiquement ....

Erreur : 15 juin 2023, 09:09:21ErreurException: Those rows are out of bounds. at PAssage(macros:59:32)

Pourriez vous me dire d'où vient le problème ?

Merci.

Bonjour,

Cette macro semble avoir été enregistrée et est donc difficilement lisible.

Quel déclencheur utilisez-vous de manière automatique ? Car la macro ne déclare pas de feuille, c'est peut-être cela qui pose problème, remplacez

function PAssage() {
var spreadsheet = SpreadsheetApp.getActive();

par : (en mettant le nom de votre feuille ligne 3 entre les guillemets)

function PAssage() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const spreadsheet = ss.getSheetbyName(' METTEZ ICI LE NOM DE L'ONLGET');

(il y a une inversion de texte, normalement, on déclare le fichier en spreadsheet, ou ss, puis la feuille avec un nom perso ou sheet, j'ai laissé spreadsheet en nom de feuille afin d'éviter à avoir à modifier toutes les occurrences)

Merci pour ta réponse.

J'ai une erreur qui s'affiche :

17:49:49ErreurTypeError: ss.getSheetbyName is not a functionPAssage@ macros.gs:58

Bonjour,

Essayez ce code :

function PAssage() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const spreadsheet = ss.getSheetByName('Feuille 1');

  spreadsheet.getRange('14:14').activate();
  spreadsheet.showRows(2, 11);
  spreadsheet.getRange('14:24').activate();
  spreadsheet.insertRowsBefore(spreadsheet.getActiveRange().getRow(), 11);
  spreadsheet.getActiveRange().offset(0, 0, 11, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.getRange('A14').activate();
  spreadsheet.getRange('3:13').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('24:24').activate();
  spreadsheet.getRange('13:13').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
  spreadsheet.getRange('3:13').activate();
  spreadsheet.hideRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows());
  spreadsheet.getRange('14:14').activate();
  spreadsheet.getRange('A14:A23').activate()
  .mergeVertically();
  spreadsheet.getRange('L14').activate();
  spreadsheet.getRange('L3:O13').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
  spreadsheet.getRange('F15').activate();
};
Rechercher des sujets similaires à "declencheur macro"