Médiaforma

API JS dans Excel – Copie de cellules

Partagez cet article sur vos réseaux

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 :

 
Commentaires

Aucun commentaire pour l'instant.

Laissez un commentaire