Différence de comportement pour 2 scripts identiques

Bonjour à toutes et à tous,

Je suis en train de m'arracher les cheveux face à un problème assez embêtant concernant un script :

J'ai plusieurs document qui possèdent les même script et qui sont identiques en terme de présentation mais sur un des documents j'obtient un résultat suite au script qui est incompréhensible.

C'est un script qui est censé copier puis coller les valeurs de certaines cellules.
Sur un document où le script fonctionne bien, j'ai bien les valeurs qui sont collées, tandis que dans l'autre cas les cases se vident.
Identiquement, un script pour "enregistrer" des saisies enregistrement tout correctement dans un cas et dans l'autre ce sont des valeurs sorties de nul part qui sont enregistrées....

Voici le script de la feuille qui fonctionne :

function modifier_modif_planning() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A7:P7').activate();
  spreadsheet.getRange('B9:O10').activate();
  spreadsheet.getRange('B9:O10').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('B12').activate();
  spreadsheet.getRange('B12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('D12').activate();
  spreadsheet.getRange('D12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('F12').activate();
  spreadsheet.getRange('F12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('H12').activate();
  spreadsheet.getRange('H12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('J12').activate();
  spreadsheet.getRange('J12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('L12').activate();
  spreadsheet.getRange('L12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('N12').activate();
  spreadsheet.getRange('N12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('B9:O10').activate();
  spreadsheet.getActiveRangeList().setNumberFormat('[hh]":"mm');
  spreadsheet.getRange('A7:P7').activate();
};

avec les données avant script :

image

Puis les données après script :

image

Et de l'autre côté j'ai ce script identique

function modifier_modif_planning() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A7:P7').activate();
  spreadsheet.getRange('B9:O10').activate();
  spreadsheet.getRange('B9:O10').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('B12').activate();
  spreadsheet.getRange('B12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('D12').activate();
  spreadsheet.getRange('D12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('F12').activate();
  spreadsheet.getRange('F12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('H12').activate();
  spreadsheet.getRange('H12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('J12').activate();
  spreadsheet.getRange('J12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('L12').activate();
  spreadsheet.getRange('L12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('N12').activate();
  spreadsheet.getRange('N12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('B9:O10').activate();
  spreadsheet.getActiveRangeList().setNumberFormat('[hh]":"mm');
  spreadsheet.getRange('A7:P7').activate();
};

Avec les données avant le script :

image

Puis les données inexplicables après le script :

image

Je n'arrive absolument pas à comprendre pourquoi ça ne colle pas tout simplement les valeurs c'est un script très simple....

Si quelqu'un a une idée ou peut m'aider ça sauverait mes nerfs !

N'hésitez pas s'il vous faut d'autres éléments et merci à ceux qui porterons du temps à me lire

Bonjour,

Succinctement ce qui pourrais causer ce problème : les plages sont différentes

> Si les plages sont différentes, alors les données copiées sont des cellules vide et donc, tu copies du vide sur des cellules.

Afin de s'en assurer, dans ton premier script, ajoute après une ligne qui est bien copiée un log, qui va permettre de "lire" ce que fais ton script, par exemple, après la ligne

  spreadsheet.getRange('B9:O10').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);

ajoute ceci :

console.log(spreadsheet.getRange('B9:O10').getDisplayValues())

Exécute ton script, à partir de la console Google Apps script afin de voir le log dans la console, ex :

image

Là normalement tu devrait avoir tes données d'affichées en bas. (dans mon exemple ci dessus "ceci est un log")

Si c'est bien le cas, reproduit ceci sur ton script qui ne fonctionne pas et vois si le log est bon ou pas, ensuite :

> le log n'affiche rien : c'est la lecture de données qui est à revoir

> le log affiche les données : c'est l'écriture de données qui est à revoir

Bonjour,

Déjà je pense que tu devrais stocker tes ranges dans un tableau et juste faire un boucle à partir de ton tableau plutôt que de réécrire à chaque fois la même chose.

Quelque chose comme ça :

planning

Juste, comme tu as l'air de vouloir copier toutes tes cellules, je ne comprends pas pourquoi tu ne prends pas une range globale (qui va de la case violette "modifier le planing" jusqu'à la case en bas à droite "modif : à param".

Bonjour @Anton, je pense, vu le format du script que c'est une macro enregistré, ce pourquoi ça "manque de logique"

Rechercher des sujets similaires à "difference comportement scripts identiques"