Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2019
    Messages : 7
    Points : 4
    Points
    4

    Par défaut Récupérer l'URL d'un Google sheet

    Bonjour,
    J'aimerais connaitre un moyen de récupérer l'URL du fichier en cours d'utilisation pour
    la copier dans un cellule précise d'un autre fichier Google Sheet afin de l'exploiter dans un importrange.

    Merci par avance
    Cordialement.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    ...
    Inscrit en
    juin 2009
    Messages
    4 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : juin 2009
    Messages : 4 256
    Points : 12 686
    Points
    12 686
    Billets dans le blog
    1

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2019
    Messages : 7
    Points : 4
    Points
    4

    Par défaut Problématique d'audit

    Bonjour,

    Merci pour votre réponse rapide.
    Vous m'avez aidé par deux fois sur une même problématique et malgré tout je ne réussit pas à finir mon script et à le faire fonctionner.
    Je ne sais pas si j'ai le droit d'exposer cette problématique dans la même discussion. Si je dois en recréer une, faite le moi savoir.
    Je vais essayer de décrire dans le détail mes attendus mais également de partager ce que j'ai déjà réalisé.
    Je ne connais pas toutes les possibilités de Google Apps Script donc j'ai émis deux hypothèses.

    Hypothèse 1 :

    Mon fichier standard d'audit, une fois réalisée, doit par le biais du bouton "Envoie de l'audit" être copié afin de garder la preuve de l'audit.

    Nom : Audit.JPG
Affichages : 72
Taille : 70,5 Ko

    L'URL de cette copie doit être collé dans un planning afin d'être exploité par une formule (importrange).

    Nom : Planning.JPG
Affichages : 74
Taille : 52,7 Ko

    Et pour finir, afin de faciliter le prochain audit, toutes le contenu des cellules "réponses" de l'audit standard doivent être vidées et les cases décochées.

    Hypothèse 2 : (Je doute de la possibilité de récupérer l'URL d'un fichier qui vient d'être créé par le même script.)

    Donc tout simplement ajouter un autre bouton. Il ne sera utilisé que sur les copies audits pour récupérer et coller l'URL sur le planning.

    En ce qui concerne ce que j'ai réalisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function TEST1() {
      var spreadsheet = SpreadsheetApp.getActive();                // Ce permet de créer une copie du fichier en cours
      spreadsheet.getRange("Y1").activate();
      spreadsheet.copy('Copie de Audit plan de contrôle');
     
                                                                            // Il doit y avoir ici quelque chose qui doit faire référence au fichier que je viens de copier, si cela est possible
     
      var ss = SpreadsheetApp.getActiveSpreadsheet();getUrl()  // Ici j'ai des doutes sur le fait qu'on puisse aller chercher l'URL d'un fichier que je viens de créer 
    var s = ss.getActiveSheet();
    var url = ss.getUrl();
     
                                                                                           // Il me manque ici un script qui colle dans un le fichier planning
     
    var app = SpreadsheetApp;                                               // Ici je "Clean" les cellules et les cases à cocher
      var activeSheet = app.getActiveSpreadsheet().getActiveSheet();
      activeSheet.getRange("I1:I4").clearContent();
      activeSheet.getRange("L1:L4").clearContent();
      activeSheet.getRange("N1:N4").clearContent();
      activeSheet.getRange("I6:I31").clearContent();
      activeSheet.getRange("J6:J31").clearContent();
      activeSheet.getRange("K6:K31").clearContent();
      activeSheet.getRange("L6:L31").clearContent();
     
    }
    Merci

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    ...
    Inscrit en
    juin 2009
    Messages
    4 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : juin 2009
    Messages : 4 256
    Points : 12 686
    Points
    12 686
    Billets dans le blog
    1

    Par défaut

    Vous avez un doute, mais avez-vous tester ?

    Dans ce genre de situation, il ne faut pas hésiter à travailler sur un jeu de fichiers plus simples, avec des scripts par conséquent plus simples, pour tester le processus.

    Aujourd'hui, qu'est ce qui ne fonctionne pas dans votre script ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2019
    Messages : 7
    Points : 4
    Points
    4

    Par défaut

    Oui oui bien sûr. Je test chaque petites portions de code que j'écris afin de vérifier qu'il fonctionne.

    Afin de faciliter le processus j'ai justement pensé à l'hypothèse 2 avec 2 boutons (2 scripts).
    L'un pour copier mon fichier et effacer le contenu des cellules. L'autre pour récupérer l'Url de ce nouveau fichier et la copier dans un planning.
    Dans les deux cas de bloque sur ce dernier point.

    A l'heure actuelle, le script me permet :
    - De créer une copie de mon fichier drive
    - De décocher et d'effacer tous les commentaires sur le fichier d'origine.

    Il me manque donc la 3ème partie qui consisterait (si c'est possible) à récupérer l'Url de la copie pour la coller dans un planning.
    C'est sur cette étape que je suis perdu. Vous m'aviez répondu pour la copie de l'Url mais je n'ai pas réussi à la faire fonctionner.

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    ...
    Inscrit en
    juin 2009
    Messages
    4 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : juin 2009
    Messages : 4 256
    Points : 12 686
    Points
    12 686
    Billets dans le blog
    1

    Par défaut

    Comment fais-tu la copie ?

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2019
    Messages : 7
    Points : 4
    Points
    4

    Par défaut

    La copie du fichier ce fait grâce à ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function COPIE() {
      var spreadsheet = SpreadsheetApp.getActive();
      spreadsheet.getRange('H9').activate();
      spreadsheet.copy('Copie de Audit Plan de contrôle');
    J'y mets directement à la suite ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      var app = SpreadsheetApp;
      var activeSheet = app.getActiveSpreadsheet().getActiveSheet();
      activeSheet.getRange("I1:I4").clearContent();
      activeSheet.getRange("L1:L4").clearContent();
      activeSheet.getRange("N1:N3").clearContent();
      activeSheet.getRange("J6:J31").clearContent();
      activeSheet.getRange("K6:K31").clearContent();
      activeSheet.getRange("L6:L31").clearContent();
      activeSheet.getRange("I6:I31").clearContent();
    Il me permet de clear les cellules.
    Lors de l'exécution de la fonction la fichier ne s'ouvre pas visuellement.

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    ...
    Inscrit en
    juin 2009
    Messages
    4 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : juin 2009
    Messages : 4 256
    Points : 12 686
    Points
    12 686
    Billets dans le blog
    1

    Par défaut

    Idéalement, tu voudrais faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    spreadsheet.copy('Copie de Audit Plan de contrôle');
    var spreadsheet = SpreadsheetApp.openByName('Copie de Audit Plan de contrôle');
    var url = spreadsheet.getUrl();
    // faire quelque chose avec l'URL ici
    Sauf que openByName() ne semble pas exister... Tu auras peut-être une solution ici : https://stackoverflow.com/questions/...dsheet-by-name

    Il n'y aucun raison que ton fichier s'ouvre lors de l'exécution de ton script. Ouvre un fichier dans un script ne revient pas à demander à ton navigateur internet d'ouvrir ce fichier. Tout ce passe dans le cloud : c'est comme ouvrir un fichier texte sur ton PC avec Python, tu ne vas pas voir Notepad s'ouvrir

  9. #9
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    ...
    Inscrit en
    juin 2009
    Messages
    4 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : ...

    Informations forums :
    Inscription : juin 2009
    Messages : 4 256
    Points : 12 686
    Points
    12 686
    Billets dans le blog
    1

    Par défaut

    Ce code pourra t'aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function getFileUrl(filename) {
      var files = DriveApp.getFilesByName(filename);
      var array = new Array();
      while (files.hasNext()) {
        var file = files.next();
        array.push(file.getUrl());
      }
      return array;
    }

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2019
    Messages : 7
    Points : 4
    Points
    4

    Par défaut

    J'ai une demande d'autorisation en boucle.
    Je pense que c'est liée au dernier code que tu m'a partagé. Je ne le comprend pas bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function COPIE() {
      var spreadsheet = SpreadsheetApp.getActive();
      spreadsheet.copy('Copie de Audit Plan de contrôle'); // Copie le fichier et le nomme de cette manière. Marche niquel !
     
        var files = DriveApp.getFilesByName('Copie de Audit Plan de contrôle');
      var array = new Array();
      while (files.hasNext()) {
        var file = files.next();
        array.push(file.getUrl());
      }
      return array;
     
    // Manque l'ouverture du planning
     
      var spreadsheet = SpreadsheetApp.getActive(); // Colle l'URL dans la cellule souhaitée
      spreadsheet.getRange('C9').activate();
      spreadsheet.copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/11/2017, 19h13
  2. Récupérer l'URL d'une iframe
    Par Tizard dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/10/2005, 20h35
  3. Récupérer l'url d'une page précédente
    Par Linoa dans le forum Sessions
    Réponses: 3
    Dernier message: 28/09/2005, 10h28
  4. Récupérer l'URL en cours
    Par [Silk] dans le forum Web & réseau
    Réponses: 4
    Dernier message: 21/07/2005, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo