Importrange d'un fichier qui change tous les jours

Bonjour,

Je souhaiterais savoir si il est possible et comment de modifier le fichier source dans une requête importrange.

Pour vous expliquer le contexte, toutes les nuits je reçois un nouveau fichier qui est automatiquement copié dans Drive grâce à zapier.

Dans mon fichier j'ai un importrange qui récupère les données puis fait un copier coller automatique de certaines valeurs tous les matins. Je souhaiterais pouvoir modifier ce importrange pour qu'il prenne les valeurs du dernier fichier, il a toujours le même nom et les valeurs sont toujours formatés de la même manière.

N'hésitez pas si vous avez des questions complémentaires où si je peux vous aider sur d'autres problématique.

Bonjour,

Normalement, à l'ouverture du fichier, les valeurs se réactualisent. J'ai quand même quelques interrogations :

  1. le fichier a le même nom, mais a-t-il le même ID car importrange s'appuie sur l'id du fichier ?
  2. est-ce que le fichier destination reste fermé ou est-il ouvert tous les jours ?

Le problème c'est que c'est un nouveau fichier tous les jours mais qui a le même nom, donc dans le importrange c'est un ID différents. C'est la le problème, et via zapier je peux pas actualiser le fichier je peux que déposer le nouveau fichier.

ok, il faut donc faire un script qui ira chercher le nouvel id du fichier en fonction du nom de ce dernier et de sa date d'enregistrement

je te prépare quelque chose, question : les fichiers sont-ils stockés dans la racine du drive ou dans un dossier particulier dont l'id ne change pas ?

Voici un script qui liste tous les fichiers d'un dossier

function listeFichiersUnDossier() {
  var dossier = 'mettre id du dossier ici';
  var feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ici le nom de l onglet qui comportera la liste'); 
  feuille.clear();
  feuille.appendRow(["nom", "date mise à jour", "URL", "id"]);
  var folder = DriveApp.getFolderById(dossier);
  var data = [];
  var fichiers = folder.getFiles();
  while (fichiers.hasNext()) {
    var fichier = fichiers.next();
    if (fichier.getMimeType() == 'text/csv'){
      data = [ 
        fichier.getName(),
        fichier.getLastUpdated(),
        fichier.getUrl(),
        fichier.getId()
      ];
    feuille.appendRow(data);
    }
  }
}

ensuite, pour retrouver l'id le plus récent correspondant au nom souhaité, en admettant que l'onglet soit Feuille 1, et le fichier test.csv

=index(query('Feuille 1'!A:D;"select * where A='test.csv' order by B desc limit 1";0);1;4)

à inclure dans ta fonction importrange

Si tout est ok, mets alors un déclencheur sur la fonction

listeFichiersUnDossier

à l'ouverture du fichier.

Merci Mikhail, je vais tester ça. Je mettrais un déclencheur à l'apparition d'un nouveau fichier dans le répertoire ou une heure avant mon autre script.

J'ai pas encore tous les reflexes sur sheets et les scripts étant plus habitué à la suite office.

 ta dispo si besoin

J'ai modifié le fichier.getMimeType() par fichier.getName() qui correspond mieux à ce que je voulais faire.

Il reste plus que le allow.access à valider en automatique, on va continuer de fouiller le forum j'ai vu que tu avais répondu à pas mal de questions à ce sujet ;)

merci pour tout j'ai validé la réponse 🙂

Rechercher des sujets similaires à "importrange fichier qui change tous jours"