RECHERCHE V & IMPORT RANGE entre 2 classeurs distincts

Vous souhaitez importer dans votre fichier cible la colonne L de votre fichier d'origine quand sa colonne A est = à la colonne B de votre fichier cible ?

Bonjour,

Oui exactement(concept RechercheV) sachant que le fichier origine est très volumineux.

Merci.

Bonjour,

à tester :

function transfert (){
  const feuilleOrigine = SpreadsheetApp.openByUrl(' METTRE URL ICI ').getSheetByName(' Nom de la feuille ici');
  const feuilleDest =   SpreadsheetApp.openByUrl(' METTRE URL ICI ').getSheetByName(' Nom de la feuille ici');

  let dataA = feuilleOrigine.getRange('A1:A').getValues(); // colonne A du fichier origine
  let dataL = feuilleOrigine.getRange('L1:L').getValues(); // colonne L du ficher origine
  let colonneB = feuilleDest.getRange('B1:B').getValues(); // colonne B du fichier cible

  for(i=0;i<colonneB.length;i++){
    let indice = dataA.indexOf(colonneB[i]);
    if(indice!== -1){
      feuilleDest.getRange(i+1,15).setValue(dataL[indice][0]) // 15 = colonne O à changer si necessaire
    }
  }
}

Bonjour,

Si tu veux utiliser une formule, tu peux séparer en plusieurs plages.

Un exemple avec 2 plages, mais tu peux augmenter le nombre de plages en fonction des besoins !

=VSTACK(query(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1Z-FKSMdrMtmmQinuQjT-dYLWL6wTc5Db6rSVIBRcMac/edit#gid=0";"Suivi fact ACF!$B$2:$L$75000");"select  Col12 where Col1 = '"&A2&"'");query(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1Z-FKSMdrMtmmQinuQjT-dYLWL6wTc5Db6rSVIBRcMac/edit#gid=0";"Suivi fact ACF!$B$75001:$L$153453");"select  Col12 where Col1 = '"&A2&"'"))

Bonjour,

Merci pour votre réponse @PierreLepinay comme je n'ai jamais utilisé le script pouvez vous me dire svp si c'est ok , et aussi comment déployer c'est à dire faire exécuter ce script dans la colonne O ?

Merci encore !

image image

Bonjour,

C'est presque comme ceci, il faut supprimer la première ligne "function MyFunction() {" et la dernière ligne : "}"

Bonjour,

J'ai ça quand je clic sur exécuter ! Qu'en est-il svp ?

image

'mettre url ici' > il faut mettre vos url

'nom de la feuille ici' > les noms de feuille

Attention la première ligne c'est la feuille d'origine, la seconde feuille de destination

h mince j'ai zappé merci

Bonjour,

Toujours pas !

image

Bonjour,

Le message d'erreur indique ne pas réussir à ouvrir votre 2nd fichier, l'url est elle correcte ? Le nom de feuille strictement identique ?

Bonjour,

Désolé pour ma réponse tardive.

Je viens de corrigé et je ne vois pas les résultats ! y a il une autre action a faire après l'exécution ? Merci

image image

Bonjour,

J'utilise beaucoup d'échange entre fichier avec la fonction importrange entre fichier.

Dans ce cas j'aurais utiliser la fonction recherchex pour cibler directement la bonne colonne (la recherchev obligeant de prendre une grand plage et ensuite de dire la colonne de résultat), avec le petit arrayformula au début.

=arrayformula(recherchex(A2:A;IMPORTRANGE("https://docs.google.com/spreadsheets/d/1Z-FKSMdrMtmmQinuQjT-dYLWL6wTc5Db6rSVIBRcMac/edit#gid=0";"Suivi fact ACF!$B$2:$B");IMPORTRANGE("https://docs.google.com/spreadsheets/d/1Z-FKSMdrMtmmQinuQjT-dYLWL6wTc5Db6rSVIBRcMac/edit#gid=0";"Suivi fact ACF!$L$2:$L");;0;1))

@Filoche je ne connais pas cette formule =VSTACK() est elle égale à l'utilisation des {} ?

Bonjour, merci pour votre réponse.

Je crois que y a un souci sur la fonction ? Merci

image

J'ai corrigé, n'ayant pas mes lorgnons j'ai pas fait attention à l'absence de la recherche x ^^

Bonjour merci pour votre retour.

Il plante toujours ! Le fichier source est très volumineux.

image

Bonjour,

Désolé pour ma réponse tardive.

Je viens de corrigé et je ne vois pas les résultats ! y a il une autre action a faire après l'exécution ? Merci

image image

Bon, j'ai vérifié chez moi, c'était juste un soucis de liste, voici le script modifié, j'ai testé ça marche :

function transfert (){

const feuilleOrigine = SpreadsheetApp.openByUrl('URL ').getSheetByName(' nom Feuille ');

const feuilleDest = SpreadsheetApp.openByUrl(' RUL').getSheetByName(' nom Feuille ');

let dataA = feuilleOrigine.getRange('A1:A').getValues().flat(); // colonne A du fichier origine

let dataL = feuilleOrigine.getRange('L1:L').getValues().flat(); // colonne L du ficher origine

let colonneB = feuilleDest.getRange('B1:B').getValues().flat(); // colonne B du fichier cible

for(i=0;i<colonneB.length;i++){ let indice = dataA.indexOf(colonneB[i]);

if(indice!== -1){ feuilleDest.getRange(i+1,15).setValue(dataL[indice][0]) // 15 = colonne O à changer si necessaire } }}}

Bonjour,

Merci pour votre réactivité.

Rien qui va avec mon fichier la.

image

problème d'accolade

effacez tout les scripts, copier / coller le script et remplacez vos URL et nom de feuille.

function transfert (){
  const feuilleOrigine = SpreadsheetApp.openByUrl('URL').getSheetByName('Feuille');
  const feuilleDest =   SpreadsheetApp.openByUrl('URL').getSheetByName('Feuille');

  let dataA = feuilleOrigine.getRange('A1:A').getValues().flat(); // colonne A du fichier origine
  let dataL = feuilleOrigine.getRange('L1:L').getValues().flat(); // colonne L du ficher origine
  let colonneB = feuilleDest.getRange('B1:B').getValues().flat(); // colonne B du fichier cible

  for(i=0;i<colonneB.length;i++){
    let indice = dataA.indexOf(colonneB[i]);

    if(indice!== -1){
      feuilleDest.getRange(i+1,15).setValue(dataL[indice][0]) // 15 = colonne O à changer si necessaire
    }
  }
}

Bonjour PierreLepinay, merci votre réponse,

C'est good, mais par contre je ne vois rien dans la colonne O je n'ai pas les résultats. Y a t-il une action a faire après l'exécution ?

image image
Rechercher des sujets similaires à "recherche import range entre classeurs distincts"