Cette section va vous montrer comment copier une plage de cellules dans une autre.
A titre d’exemple, la plage A1:D6 va être copiée dans la plage A10:D15 :
Pour recopier les valeurs, utilisez ce code :
async function run() { await Excel.run(async function (context) { const feuille = context.workbook.worksheets.getActiveWorksheet(); let plage = feuille.getRange('A1:D6'); plage.load('values'); await context.sync(); let valeurs = plage.values; let plage2 = feuille.getRange('A10:D15'); plage2.values = valeurs; }); }
Je pense que vous comprenez sans problème ce code. Juste au cas où :
La plage A1:D6 est obtenue avec la fonction getRange() et placée dans la variable plage :
let plage = feuille.getRange('A1:D6');
La propriété values des cellules de la plage est lue dans la feuille de calcul. Leur contenu est disponible après l’exécution du await :
plage.load('values'); await context.sync();
Les valeurs de la plage sont alors placées dans la variable valeurs :
let valeurs = plage.values;
Puis elles sont recopiées dans la plage A10:D15 :
let plage2 = feuille.getRange('A10:D15'); plage2.values = valeurs;
Ici, ce sont bien les valeurs et non les formules qui sont recopiées dans la plage A10:D15. Vous pouvez le vérifier en cliquant sur (par exemple) la cellule D11 :
Pour recopier les formules en les adaptant à la nouvelle plage, remplacez ces instructions :
plage.load('values'); let valeurs = plage1.values; plage2.values = valeurs;
Par celles-ci :
plage.load(formulasR1C1'); let formules = plage1.formulasR1C1; plage2.formulasR1C1 = formules;
C’est aussi simple que cela. Maintenant, les formules sont recopiées et elles s’adaptent à la nouvelle plage de cellules :