Macro dans une feuille déterminée

Bonjour, bonjour,

Je me permets de vous poser la question suivante. Je souhaite réaliser une macro dans Google Sheets.

Je précise que je début sous Google Sheets.

Voici ce que j'ai bidouillé, pour le moment.

/** @OnlyCurrentDoc */

function onEdit(e) {

var spreadsheet = SpreadsheetApp.getActive().;

spreadsheet.getRange('D5:D12').setFormula('=rand()');

spreadsheet.getRange('g5:g12').setFormula('=rand()');

spreadsheet.getRange('D15:D22').setFormula('=rand()');

spreadsheet.getRange('D25:D28').setFormula('=rand()');

};

J'utilise "OnEdit" afin de fixer la valeur de mes nombres random, étant donné que je n'ai pas besoin d'aller sur cette feuille. Seulement pour relancer la macro quand on en a besoin.

Je tiens à préciser que je sais le faire sous Excel (et ça tourne très bien) mais je ne suis pas parvenu à l'adapter à GS. Et je dois le faire sous GS, pour cause de partage de fichier.

Le hic actuel, c'est que j'ai déterminer la feuille active. Ce qui fait que la macro s'applique sur les autres feuilles du classeurs, écrasant, du même coup, mes données. Gênant, n'est-ce pas?

Et je ne trouve pas, sur internet, comment écrire mon code pour que ma macro ne s'exécute que dans "Feuil 3".

Vous en remerciant par avance!

Re bonjour!

J'ai trouvé comment adapter ma macro excel à Google Sheets.

function Macrosanstitre() {
  var spreadsheet = SpreadsheetApp.getActive();
  var toKeep1 = spreadsheet.getRange('D6:D13');
  toKeep1.setFormula('=rand()');
  toKeep1.setValues(toKeep1.getValues());
  };

Voilà comment stabiliser un tirage aléatoire pour que le random ne se fasse pas à chaque clic.

Et pour contourner, en partie, le problème de la macro qui n'est pas affectée à une feuille particulière, je suis passé par un bouton sur la page en question.

Cette dernière partie est du bidouillage complet. Même si ça marche, je veux bien une réponse à ma question initiale!

Vous en remerciant par avance,

Benjen

Merci pour la partage C'est vrai qu'adapter les macros Excel sur GS est vraiment compliqué !

Personne pour répondre? Tant pis.

Je passe ce sujet en résolu, mais si ce n'est pas vraiment le cas.

Bonjour,

Une solution pour éviter d'utiliser la formule =rand() :

function aleatoire() {
  var f = SpreadsheetApp.getActiveSpreadsheet();
  for (var i = 6; i <= 13; i++) {
    var c = f.getRange('D' + i).setValue(Math.random());
  }
}

Aperçu :

apercu

Cordialement,

Et je ne trouve pas, sur internet, comment écrire mon code pour que ma macro ne s'exécute que dans "Feuil 3".

Et la version pour la feuille 3 :

function aleatoire() {
  var f = SpreadsheetApp.getActive().getSheetByName('Feuil 3');
  for (var i = 6; i <= 13; i++) {
    var c = f.getRange('D' + i).setValue(Math.random());
  }
}

Cool! Merci pour les deux informations !!

Rechercher des sujets similaires à "macro feuille determinee"