IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

APIs Google Discussion :

Macro automatisation d'une tâche [Google Sheets]


Sujet :

APIs Google

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2019
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Macro automatisation d'une tâche
    Bonjour,

    j’essaye de faire une macro pour automatiser une tâche mais je ne connais pas le javascript…
    Dans une feuille google sheets où je récupère des données via les réponses d’un formulaire google form, à chaque nouvelle réponse une nouvelle ligne est créée.
    Les réponses sont des liens https dont sont ensuite extrait des données mais si le lien https n’existe plus les données disparaissent car il y a une actualisation de la formule je cherche à contourner cette actualisation; Pour cela j’aurais besoin de faire une macro copier coller automatique qui copie les valeurs extraites des liens dans une nouvelle colonne.

    voici le document : https://docs.google.com/spreadsheets...it?usp=sharing

    dans ce document le troisième lien a été effacé, et donc les valeurs extraites n’existent plus. le rôle de la macro est de copier/coller uniquement les valeurs des colonnes "C" et "D" dans "E" et "F" à chaque fois qu’une nouvelle ligne est créée.

    voilà le bout de code que j’ai péniblement réussis à faire pour commencer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function Sauvegarde() {
      var document = SpreadsheetApp.getActive();
      var sheet = document.getSheetByName("Réponses au formulaire 1");
      document.setActiveSheet(sheet);
      var range = spreadsheet.getRange("C2:C50");
      var values = range.getValues();
     
      document.getRange('F2').activate();
     
      // var spreadsheet = SpreadsheetApp.getActive();
      // spreadsheet.getRange('F2').activate();
      // spreadsheet.getRange('C2').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
    Merci par avance pour votre aide.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Ta formule réalise justement le téléchargement et la requête XPath au moment où tu ouvres le document. Il faut réaliser cette tâche dans un script.

    En admettant que ton URL soit en A1, tu peux télécharger le contenu ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function myFunction() {
     
      var document = SpreadsheetApp.getActive();
      var sheet = document.getActiveSheet();
      Logger.log("Sheet name" + sheet.getName());
     
      var range = sheet.getRange("A1:A1");
      var url = range.getValue();
      Logger.log("URL" + url);
     
      var response = UrlFetchApp.fetch(url);
      Logger.log(response.getContentText());
     
    }
    Il faut ensuite récupérer les données qui t'intéressent dans la variable response.

    Il ne semble pas y avoir de solution built-in pour faire du XPath dans Apps Script : https://developers.google.com/apps-script/reference/ faire une recherche "xpath" --> aucune réponse... Ces codes trainent sur Github par exemple : https://github.com/ConfidentCannabis...s-script-xpath

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2019
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Merci beaucoup Bktero,
    j'ai enregistré la macro, envoyé une nouvelle réponse via le formulaire, puis effacé le lien d'origine, les requêtes Xpath n'ont pas été modifiées suite à fermeture et réouverture du doc.
    C'est exactement ce que je voulais.
    C'est magique (oui j'ai rien compris)...

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    J'avoue que je ne me souviens plus très bien de mes expérimentations...

    L'idée ça reste de dire qu'il faut récupérer les données au moment où tu ajoutes le lien dans le fichier, une bonne fois pour toute. Dans la cellule de destination, tu mets ces données et non une requête pour les récupérer, car cette requête sera exécutée à chaque fois que tu ouvres le fichier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Automatisation d'une tâche sur BDD à partir d'un service WCF
    Par mrflamby dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 14/05/2015, 21h52
  2. Automatisation d'une tâche dans Access 2003
    Par JCOUSSEA dans le forum Macros Access
    Réponses: 2
    Dernier message: 16/11/2012, 09h02
  3. Automatisation d'une tâche avec triggers
    Par zbhmida dans le forum PL/SQL
    Réponses: 3
    Dernier message: 11/01/2012, 11h13
  4. Automatisation d'une tâche
    Par Diablo_22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/01/2008, 00h38
  5. Automatiser une tâche
    Par Sun-Burst dans le forum Langage
    Réponses: 1
    Dernier message: 10/06/2006, 14h41

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