Lien hypertexte de sheet vers un document pdf sur drive

Bonjour et mes meilleurs voeux pour 2021

le projet : créer un tableau sheet pour gérer du courrier sortant

  • Un dossier drive contenant les courriers (numérisés)
  • un tableau sheet avec
    • 5 colonnes :
    • numéro chrono (incrémentation créée en étirant la cellule)
    • destinataire (a remplir par les utilisateurs)
    • objet (idem)
    • expéditeur (liste déroulante)
    • date d'envoi (à remplir par les utilisateurs

Mon problème se trouve sur la colonne "objet". Je voudrais qu'un lien soit créé : en cliquant dans l'objet, on arrive directement sur le courrier pdf se trouvant dans le drive.

en utilisant l'onglet insertion, je dois aller dans le drive, clic droit sur le fichier / obtenir le lien / copier le lien

puis je reviens dans sheet pour coller le lien.

Y aurait-il un moyen plus "automatique" ? (quelque chose qui s'appuyerait sur le nom du fichier qui, à par l'extension serait pareil, ou qui s'appuierait sur le numéro de chrono, semblable pour le fichier ou la ligne dans sheet)

ou, un moyen pour que lorsque j'ouvre "insertion lien", cela me propose drive (et là je peux choisir mon dossier et mon fichier

Merci infiniment

Bonjour

sujet intéressant et particulièrement pertinent !

Je ne pense pas en effet que l'on puisse naviguer dans drive et cliquer sur un fichier pour en importer directement le lien

En revanche, il est possible, dans un onglet, d'importer la liste des fichiers avec ses caractéristiques. Il suffit ensuite de mettre une liste déroulante. Il y a un certain nombre de scripts de ce type sur la toile.

Un excellent script ...

il suffit de mettre le nom du dossier de tête dans le script

var nomDossier= 'test';
function listeFichiers() {

  var dossier = 'test';

  var feuille = SpreadsheetApp.getActiveSheet();
  feuille.clear();
  feuille.appendRow(["nom", "date mise à jour", "URL", "type"]);
  var folders = DriveApp.getFoldersByName(dossier);
  var foldersnext = folders.next();
  var data = [];
  var fichiers = foldersnext.getFiles();
  while (fichiers.hasNext()) {
    var fichier = fichiers.next();
    data = [ 
      fichier.getName(),
      fichier.getLastUpdated(),
      fichier.getUrl(),
      fichier.getMimeType()
    ];
    feuille.appendRow(data);
  }
}

ensuite, son exploitation dépend du reste de ton fichier : tu peux par exemple faire une liste déroulante et un vlookup pour ramener le lien, ou autres solutions (auxquelles je n'ai pas réfléchi).

Merci beaucoup.

En fait, ce n'est pas si simple que ça. Vous m'avez perdu au mot script. Je vais faire des fouilles internet car dans l'absolu, je sais ce qu'est un script... dans la réalité, c'est une autre histoire

Bonjour,

voici un sujet exactement similaire :

How can I easily link to a bunch of files in my Google Drive from a Google Sheet (in the same account/drive)?

https://webapps.stackexchange.com/questions/135181/how-can-i-easily-link-to-a-bunch-of-files-in-my-g...

the URL for the files (what Drive calls the "shareable link") is not easily computable from the filename. ...

I do not want to have to manually retrieve the "shareable link" from the Drive UI, as there are several hundred files involved.

qu'est-ce qui n'est pas simple pour toi ? un script est un fonctionnalité assez courante, cela permet en tous cas de créer localement dans le fichier la nomenclature simplifiée du dossier avec les ID des différentes fichiers pdf

j'avais fait aussi un tour sur le net pour vérifier s'il y avait d'autres possibilités, tout me ramenait à cette solution

si tu optes pour cette solution, on te guidera pour mettre en place ce script, c'est assez simple après l'avoir fait une fois

Merci à tous.

Je vais regarder. Et si je n'y arrive pas, je vous appelle au secours.

Bonne journée

Une refonte complète du code :

function listeDossiersEtFichiers() {

  var feuille = SpreadsheetApp.getActiveSheet();
  feuille.clear();
  feuille.appendRow(["parent","dossier", "nom", "date mise à jour", "taille", "URL", "ID", "description", "type"]);

  try {
    var parentFolder = DriveApp.getRootFolder();
    // liste à la racine si besoin = enlever dans ce cas le // qui suit
    // listeFichiers(parentFolder,'racine')
    listeSousDossier(parentFolder,'racine');
  } catch (e) {
    Logger.log(e.toString());
  }

}

function listeSousDossier(parentFolder,parent) {
  var childFolders = parentFolder.getFolders();
  while (childFolders.hasNext()) {
    var childFolder = childFolders.next();
    Logger.log("Dossier : " + childFolder.getName());
    listeFichiers(childFolder,parent)
    listeSousDossier(childFolder,parent + "|" + childFolder.getName());
  }
}

function listeFichiers(dossier,parent){
  var feuille = SpreadsheetApp.getActiveSheet();
  var data = [];
  var fichiers = dossier.getFiles();
  while (fichiers.hasNext()) {
    var fichier = fichiers.next();
    data = [ 
      parent,
      dossier.getName(),
      fichier.getName(),
      fichier.getLastUpdated(),
      fichier.getSize(),
      fichier.getUrl(),
      fichier.getId(),
      fichier.getDescription(),
      fichier.getMimeType()
      ];
    feuille.appendRow(data);
  }
}

Bonjour,

Je vais faire des fouilles internet car dans l'absolu, je sais ce qu'est un script... dans la réalité, c'est une autre histoire

Peux-tu nous donner les résultats de tes fouilles ?

Bonjour

Encore un bel outil.

Pour ce type de recherche, j'utilise de mon côté Drive File Stream qui liste tous les fichiers de mon drive sous la forme d'un explorateur Windows.

Mon souci est que ca n'affiche que mon drive et les drive partagés

Pour tous les fichiers qui sont partagés avec moi, ceux-ci se retrouvent en vrac et je n'ai aucun moyen de les retrouver facilement.

image

Le script ne liste que son propre drive. Il y a moyen d'ajouter tous les fichiers qui se trouvent dans ce dossier fourre-tout?

Rechercher des sujets similaires à "lien hypertexte sheet document pdf drive"