Coller uniquement les valeurs contenues danx les cellules

Bonjour, Filoch

Merci encore pour votre réponse sur notre fil précédent, dont voici le code que vous m'avez envoyé.

function copieColonne() { 

  var source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feuille 1");
 var destination = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feuille 2");
  var sourceplage = source.getRange(1, 3, source.getLastRow(),1);
 var colonnedest = destination.getLastColumn()+1;
var sourceplagesuppr = source.getRange(2, 3, source.getLastRow(),1);

  sourceplage.copyTo(destination.getRange(1,colonnedest));

  sourceplagesuppr.clearContent();

}

Je viens de m'apercevoir que copyto renvoie la valeur de la cellule avec le type de cellule (dans mon cas ce sont des cellules liées à une liste (avec la flêche..) J'ai tout essayé pour n'avoir que la valeur contenue dans chaque cellule (avec set et getValues..) impossible. Pouvez vous encore m'aider? Merci par avance.

Bonjour,

Avez-vous essayé avec getDisplayValues() ?

Bonjour,

Mes compétences dans les scripts sont très basiques, je pense que Pierre à plus d'expertise que moi... Je te laisse à ses bons soins !

Cordialement,

Fil. 😇

Oui, j'ai essayé avec getDisplayValues(). Mais je ne suis pas sur de l'endroit ou il doit se placer ..? sur le range source ou le range destination.?

Sur le source...

Bonjour,

Code actualisé, à tester :

function copieColonne() {
  const source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feuille 1");
  const destination = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feuille 2");

  var sourceplage = source.getRange(1, 3, source.getLastRow(), 1); // plage source
  var colonnedest = destination.getLastColumn() + 1; // colonne destination
  var sourceplagesuppr = source.getRange(2, 3, source.getLastRow(), 1); // plage source à supprimer (= sourceplage - entête)
  var sourceValues = sourceplage.getDisplayValues(); // Obtenir les valeurs affichées
  var destinationRange = destination.getRange(1, colonnedest, sourceValues.length, 1);

  destinationRange.setValues(sourceValues); // Coller les valeurs affichées
  sourceplagesuppr.clearContent(); // vide la page source
}

merci Pierre.

j'essaierai. Pour le moment j'ai obtenu ce que je souhaitais avec ce code:

function copieColonne() {
var source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feuille 1");
var destination = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feuille 2");
var sourceplage = source.getRange(2, 3, source.getLastRow(),1);
var colonnedest = destination.getLastColumn()+1;
var sourceplagesuppr = source.getRange(3, 3, source.getLastRow(),1);
sourceplage.copyTo(destination.getRange(2,colonnedest,),SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
sourceplagesuppr.clearContent();
}

en gras l'ajout que j'ai fais.. Ca fonctionne

j'essaierai quand même ta solution.

merci pour tout.

Rechercher des sujets similaires à "coller uniquement valeurs contenues danx"