Limiter une zone avec une variable

Bonjour,

J'ai besoin de définir une zone (pour copie de données par exemple) :

Je sais le faire en indiquant les lignes de début et fin

mais si la ligne de début est constante, celle de fin est variable

je sais trouver le nombre de lignes avec NBVAL

mais je ne réussis pas à introduire cette variable dans ma formule de définition de la zone

j'ai toujours "erreur" !

Exemple : spreadsheet.getRange('3:2000').activate();

Je voudrais remplacer ce 2000 par une variable

Merci de votre attention

Pour GoogleSheeters, mais pas que.

Bjr InFM,

Voyez donc la fonction Offset qui va vous servir souvent.

Range.Offset (Décalage lignes, Décalage colonnes, Nb de lignes, Nb de colonnes)

Avec des paramètres définis ainsi : Offset (p1, p2 + optionnels : , p3, p4)

Offset retourne une plage de p3 lignes x p4 colonnes,

"décalée" de p1 lignes et p3 colonnes, à partir de la 1° cellule de Range

Si p3 ou p4, sont omis, ce sont les dimensions de la plage source qui sont reprises.

Dans votre cas, les décalages sont inutiles, mais vous pouvez utiliser les dimensions de la plage

Comme vous avez la particularité de vouloir sélectionner les lignes entières, ne spécifiez pas le p4,.

Ca donne comme ceci :

var nbLignes = jeCompteMesLignesIci();

spreadsheet.getRange('3:3').offset(0, 0, nbLignes, ).activate();

Rmq 1 : La virgule après nbLignes n'est pas indispensable, mais elle nous rappelle qu'il existe un p4 et qu'il est vide

(conseil pour la maintenabilité, mais c'est vous qui voyez)

Rmq 2 : Est-il utile de sélectionner les lignes entières ?

Maintenant que vous savez faire une sélection dynamique, ce serait plus perf de ne sélectionner que les colonnes utiles,

Rmq 3 : Vous faites un activate(), pour "sélectionner", càd positionner le curseur sur cette plage.

Or, dans 80% des cas, on peut faire les opérations voulues sans cette sélection,

simplement en travaillant sur des variables range, sans impacter l'affichage.

Et c'est 10x plus rapide? Pensez-y.

Bonne mise en oeuvre

EXM

Bonjour

Merci Exacel pour cette proposition très détaillée.

Je vais étudier cette fonction Offset

Bien d'accord, pas besoin des lignes entières.

J'essaie cela dès que possible

et je reviens

A +

INFM

Rechercher des sujets similaires à "limiter zone variable"