script Google sheets très lent
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

script Google sheets très lent



  1. #1
    vande545

    script Google sheets très lent


    ------

    Bonjour

    J'ai créé une feuille sur Google sheets avec plusieurs scripts. On clique sur une image et ça déclenche l'exécution d'une macro qui ajoute 1 à une cellule :
    Code:
    function un_plus() {
      var anciennevaleur = SpreadsheetApp.getActiveSheet().getRange('C3').getValue();
      SpreadsheetApp.getActiveSheet().getRange('C3').setValue(anciennevaleur+1);
     };
    C'est on ne peu plus simple comme code mais curieusement, le temps d'exécution me semble assez long, environ 1 seconde pour seulement 2 lignes de code.
    Une macro équivalente sur Excel s'exécuterait instantanément ?

    (J'ai simplifié l'exemple. Ce script fait partie d'une boucle qui agit sur une plage de cellules)

    -----
    Dernière modification par vande545 ; 08/02/2020 à 10h45.

  2. #2
    umfred

    Re : script Google sheets très lent

    la lenteur se situe peut-être ailleurs dans ta boucle du coup ...

  3. #3
    vande545

    Re : script Google sheets très lent

    la lenteur se situe peut-être ailleurs dans ta boucle du coup ...
    Non pas seulement, il faut au moins une seconde pour exécuter seulement les deux lignes affichées plus haut

  4. #4
    umfred

    Re : script Google sheets très lent

    je viens de tester sur un feuille vide, et ça me semble inhérent au principe de script (lancement du script, exécution du script, fin de script)

  5. A voir en vidéo sur Futura
  6. #5
    vande545

    Re : script Google sheets très lent

    ça me semble inhérent au principe de script
    Ok mais je ne comprends pas la différence avec une macro Excel ou un script dans une page web qui passent par les mêmes étapes ?
    Avec une routine un poil compliquée, ça va devenir inexploitable.

  7. #6
    umfred

    Re : script Google sheets très lent

    il y a aussi le fait que c'est exécuté "en ligne" et pas localement, donc un temps de communication en plus.
    Pour Excel, les macros sont intégrés au fichier avec le moteur de VBA, et pas dans google sheets (sauf erreur de ma part).

    si tu enlèves juste ces 2 lignes, ton script est beaucoup plus rapide ?

  8. #7
    vande545

    Re : script Google sheets très lent

    Je n'avais pas pensé au fait qu'étant en ligne, il y a un temps de transmission dans les deux sens. Ça me rassure un peu car la latence sera la même quelque soit la longueur du code à exécuter.
    si tu enlèves juste ces 2 lignes, ton script est beaucoup plus rapide ?
    C'est mon 1er script sur Google sheets et la boucle répète ces deux lignes pour une plage de cellules.
    Je n'ai donc pas d'autre expérience avec cet outil.
    Dernière modification par vande545 ; 10/02/2020 à 12h00.

  9. #8
    Fustigator

    Re : script Google sheets très lent

    Citation Envoyé par umfred Voir le message
    il y a aussi le fait que c'est exécuté "en ligne" et pas localement
    Ca c'est pas certain du tout; une partie des cellules doit être chargée localement.
    Par contre, ce qui est sur c'est que chercher deux fois la références à la cellule via :

    Code:
    SpreadsheetApp.getActiveSheet().getRange('C3')
    au lieu de la conserver dans une variable après le premier appel est sous optimal et sans intérêt.

  10. #9
    vande545

    Re : script Google sheets très lent

    Par contre, ce qui est sur c'est que chercher deux fois la références à la cellule ...
    J'avais déjà essayé et ça ne change rien... De perceptible :
    Code:
    function deux_plus() {
      var feuille = SpreadsheetApp.getActive();
      var anciennevaleur = feuille.getRange('C4').getValue();
      feuille.getRange('C4').setValue(anciennevaleur+1);
     };

  11. #10
    Fustigator

    Re : script Google sheets très lent

    Là le changement ne porte que sur la référence à la feuille active, pas sur la référence à la cellule; tu appels deux fois le getRange.
    Sinon, la feuille a combien de cellule au total (environ) ?

  12. #11
    vande545

    Re : script Google sheets très lent

    15 cellules pour l'instant et ça ne devrait pas excéder 19 donc si je gagne quelques 1/100 de secondes par instruction, ça restera imperceptible (AMHA)

  13. #12
    umfred

    Re : script Google sheets très lent

    ce que te suggerais Fustigator, c'était ce code là:
    Code:
    function deux_plus() {
      var cellule = SpreadsheetApp.getActive().getRange('C4');
      var anciennevaleur = cellule.getValue();
      cellule.setValue(anciennevaleur+1);
     };
    Pour voir si ça a un impact sur la rapidité.
    Edit: je viens de tester, a priori non
    Dernière modification par umfred ; 12/02/2020 à 13h49.

  14. #13
    vande545

    Re : script Google sheets très lent

    il n'y a pas de différence perceptible
    Dernière modification par vande545 ; 12/02/2020 à 13h52.

  15. #14
    CM63

    Re : script Google sheets très lent

    Tu m'en apprends, je ne savais pas qu'on pouvait faire des macros dans google sheets. Quand j'avais essayé, on ne pouvait pas. Sinon, tu me donnes une idée, je vais développer ton truc sous php.
    Dernière modification par CM63 ; 24/02/2020 à 13h49.

  16. #15
    vande545

    Re : script Google sheets très lent

    je vais développer ton truc sous php
    la 1ère version (2008 et 2014) était une feuille Excel. Il y avait une 2e macro qui envoyait le résultat par FTP dans une base de données MySQL ce qui déclenchait un script PHP qui reconstruisait le graphique avec la bibliothèque GD (plus sûr du nom ?)
    J'avais aussi eu l'idée du JS-PHP mais c'est trop dépendant de la liaison internet

Discussions similaires

  1. PC lent et google chrome tres gourmand
    Par ga3ttan dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 07/10/2018, 22h46
  2. PC windows 8 très très lent (acheté en septembre)
    Par invite6e8078f6 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 11/06/2015, 23h44
  3. PC très très lent après être passé (tout seul) en Windows 8.1
    Par invite4551cab5 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 2
    Dernier message: 10/04/2015, 14h08
  4. PC très très lent-Rien n'est détecté par les antivirus et antispywares
    Par invited8a43ea7 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 4
    Dernier message: 08/06/2008, 13h12