Extraction automatique données des google sheet d'un dossier en ligne

Bonjour,

Je souhaiterais compiler certaines données de plusieurs feuilles google sheets différentes dans une seule feuille.
Pour cela, je sais qu'il est possible d'extraire les données d'une feuille, avec la fonction =IMPORTRANGE("lien";"numéro_de_celulle").
Cependant, j'aimerais ne pas à avoir aller chercher le lien du fichier google sheet à chaque fois, car il y a une centaine de feuilles google sheet dont je veux extraire les données, qui se trouvent tous dans un même dossier drive. Les cellules que je veux extraire dans chaque feuille sont toujours les mêmes. Donc dans la fonction =IMPORTRANGE("lien";"numéro_de_celulle"), seul le paramètre "lien" devra changer à chaque fois. Est-il possible d'utiliser VBA/Google Apps Script pour faire cela ?
J'aimerais aussi qu'à chaque fois que je rajoute une nouvelle feuille google sheet dans le dossier, la feuille compilant les données se mettent à jour en ajoutant une nouvelle ligne pour la nouvelle feuille.

Merci d'avance !

Bonjour,

Un script peut permettre de lister les URLs d'un fichier, donc tu peux ensuite les inclure dans un onglet "données" de ton sheet et ensuite utiliser cette plage comme base pour tes =IMPORTRANGE(

Voici le code du script, tu as juste à changer le nom du fichier en ligne 2 :

function listeUrls(){ 
var nom = "AZERTY" ;
var dossier = DriveApp.getFoldersByName(nom);
var fichiers = dossier.next().getFiles();
while (fichiers.hasNext())
{
var fichier = fichiers.next();
Logger.log(fichier.getUrl());
}
} 

Bonjour,

Merci beaucoup ! Je n'ai pas besoin d'inclure ceci pour que les liens sont copiés sur le fichier excel ?

SpreadsheetApp. getActiveSpreadsheet().getSheetByName('nomdelafeuilleexcel').getRange().setValue(fichier.getUrl());

J'ai changé "AZERTY" par le nom de ma feuille excel dans

var nom = "AZERTY"

et indiqué le nom du dossier dans la parenthèse dans

 var dossier = DriveApp.getFoldersByName(nom);

Mais les liens ne sont pas copiés dans mon fichier Excel.

Je débute tout juste sur Google Script, veuillez m'excuser.

Bonjour, le code fonctionne et me donne bien liens lorsque le code est lancé sur Google Script !

Problèmes résolus. Merci beaucoup !

Bonjour,

J'ai vu un message où tu demandais comment implémenter la liste d'URL dans ton fichier sheet (qui semble avoir disparu )

Voici la réponse si nécessaire :

function listeUrls(){ 
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("nom de la feuille Sheet où tu veux le resultat");
var nom = "Nom du dossier cible" ;
var dossier = DriveApp.getFoldersByName(nom);
var nbUrl = 0;
var list = [];
var fichiers = dossier.next().getFiles();
while (fichiers.hasNext())
{
  nbUrl++;
  var fichier = fichiers.next();
  list.push(fichier.getUrl());
}

for (var i=0;i<=nbUrl;i++){
  sheet.getRange(1+i,1).setValue(list[i]) // la liste début à A1 dans ce cas, il est possible de changer la destination en modifiant 1 , 1
}
} 

Bonjour,

J'ai une question supplémentaire, dans le cas où on a plusieurs dossiers avec le même nom, comment accéder au bon dossier (en passant par les bons sous-dossiers par exemple ?) contenant tous les fichiers excel ?

Merci d'avance !

Rechercher des sujets similaires à "extraction automatique donnees google sheet dossier ligne"