google apps script : getActiveCell + 2 prochaines cellules

a marqué ce sujet comme résolu.

Bonjour à tous,

Je voudrais prendre en range la cellule actuelle + les 2 prochaines cellules à droite :

var range = getActiveCell() + les 2 prochaines à droite

Par exemple si je suis sur la cellule A5, je voudrais que mon range soit A5:C5

Je vous remercie par avance pour le temps que vous pourrez me consacrer.

;)

+0 -0

Salut Elegance,

Je vous remercie pour votre réponse.

Effectivement, c’est A5:C5 :)

J’ai trouvé la solution :

var currRange = SpreadsheetApp.getActiveRange()

var col = currRange.getColumn()
var row = currRange.getRow()


var range = SpreadsheetApp.getActiveSheet().getRange(row, col, 1, 3)
var rangeName = range.getA1Notation()

Voilà, j’espère que cela pourra servir.

Bien à vous.

+2 -0

Bonjour,

merci d’avoir partagé ta solution. J’avais mis ton poste dans mes onglets ouverts pour y répondre quand j’avais le temps, je suis donc content que tu t’en sois sorti. C’est encore mieux que tu aies eu le reflex de partager le code, ça aidera les gens qui auront aussi ce besoin.

Je me suis aussi servi de mes pouvoir de modo pour formatter le code (il suffit de mettre trois fois ` touche que tu trouveras en faisant AltGr+7.

Bonjour tout le monde,

Pour aller un petit peu plus loin,

Avez-vous une idée de comment on peut faire si on veut reporter cette plage (récupérée à l’aide du code précédent) sur une autre feuille ?

Je m’explique :

Dans le code précédent, on a pu avoir une plage de 3 cellules (en rajoutant les 2 cellules de droite à la cellule active) sur la feuille actuelle.

Comment faire pour sélectionner la même plage mais sur une autre feuille pour par exemple appliquer le format de cette autre feuille à notre plage actuelle ?

L’exemple précédent nous donnait la plage A5:C5 sur la feuille actuelle (ex: feuille 3); Si on veut sélectionner la plage A5:C5 de la feuille 2, quel code me conseilleriez vous ?

J’ai essayer par exemple (en supposant que nous sommes sur la feuille 3):

function myfunction() {

  var ss= SpreadsheetApp.getActiveSpreadsheet();
  var targetSheet=ss.getActiveSheet();
  var sourceSheet = ss.getSheetByName('feuille1');

  var currentRange = SpreadsheetApp.getActiveRange();
  var col = currentRange.getColumn();
  var row = currentRange.getRow();

  var targetSheetRange = targetSheet.getRange(row, col, 1, 3);

  var rangeName = targetSheetRange.getA1Notation();

  var sourceRange = sourceSheet.getRange('A2:C2');

  sourceRange.copyTo(targetSheetRange);

    SpreadsheetApp.flush();

  var mfcSheet = ss.getSheetByName('feuille 2');

  var sourceMfcRange = mfcSheet.getRange(targetSheetRange);

  sourceMfcRange.copyTo(targetSheetRange, {formatOnly : true});

  SpreadsheetApp.flush();

}

la première fonction copyTo fonctionne à merveille, c’est la deuxième fonction copyTo où je veux aller récupérer le format de la même plage en feuille 2 qui pose problème : Il ne reconnait pas la plage

Voilà, j’espère avoir été assez claire ! Je reste à votre disposition si il faut que j’éclaircisse quelques points.

Merci d’avance pour le temps que vous voudrez bien me consacrer (même si vous n’avez pas la solution).

Bien à vous.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte