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 :

Afficher/Masquer des lignes en fonction d'un sommaire


Sujet :

APIs Google

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Expert du bâtiment
    Inscrit en
    Février 2024
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Expert du bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2024
    Messages : 1
    Par défaut Afficher/Masquer des lignes en fonction d'un sommaire
    Bonjour,

    Je cherche une âme généreuse pour me proposer une boucle permettant de simplifier mon code et surtout le faire fonctionner sans erreur. J'ai essayé plusieurs fois sans succès.

    Je réalise un rapport avec Google Sheets qui tient dans un seul onglet. J'ai réalisé un sommaire avec une numérotation des pages.

    Les pages de mon rapport font actuellement 53 lignes, calculé en k183. J'ai codé : let NLignePage = sheet.getRange('k183');.
    (Plus tard, dans un second temps, j'aimerais que le nombre de ligne soit récupéré pour être toujours exacte, même s'il change.)

    Dans la colonne J (de J183 à J212), j'ai noté les n° des lignes de la feuille.
    Dans la colonne B (de B183 à B212), j'ai noté une simple condition pour afficher VRAI ou FAUX selon qu'il faut ou pas afficher la page (les lignes en fait).

    J'ai réalisé le code suivant avec un essai sur une seule ligne pour commencer. Mais cela ne fonctionne pas...

    Mon intention est d'utiliser la fonction hideRows que j'ai noté pour mon essai hideRows(216,1). Mais j'aimerais quelque chose comme

    hideRows(LignePage1,1) si ConditionPage1=VRAI
    hideRows(LignePage2,1) si ConditionPage2=VRAI
    ...

    Or, comme il me faut une boucle, je suppose que mon code nécessite quelques améliorations et qu'il n'y a sans doute pas besoin d'enregistrer manuellement toutes les conditions avec Let. Est-ce remplaçable par findNext par exemple ?...

    Je ne suis pas informaticien de métier, alors je galère un peu...

    Merci pour votre aide.

    Voici ce que j'ai commencé à faire :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    **********************************************************
    function CacherLignes() {
    //
    // Masquer les lignes en fonction valeur VRAI d'une cellule
    //
    // Se placer si besoin dans la feuille Rapport
    //
    var document = SpreadsheetApp.getActive();
    var onglet = SpreadsheetApp.getActiveSpreadsheet();
    document.setActiveSheet(onglet);
    //
    // Comme je nomme l'onglet avec la référence de mon rapport pour l'afficher en pied de page, le nom est variable.
    // onglet = document.getSheetByName("Rapport");
    // document.setActiveSheet(onglet);
    //
    //
    // 1) Récupérer les numéros de lignes
    // 
    let LignePage1 = onglet.getRange('J183');
    let LignePage2 = onglet.getRange('J184');
    let LignePage3 = onglet.getRange('J185');
    let LignePage4 = onglet.getRange('J186');
    let LignePage5 = onglet.getRange('J187');
    let LignePage6 = onglet.getRange('J188');
    let LignePage7 = onglet.getRange('J189');
    let LignePage8 = onglet.getRange('J190');
    let LignePage9 = onglet.getRange('J191');
    let LignePage10 = onglet.getRange('J192');
    let LignePage11 = onglet.getRange('J193');
    let LignePage12 = onglet.getRange('J194');
    let LignePage13 = onglet.getRange('J195');
    let LignePage14 = onglet.getRange('J196');
    let LignePage15 = onglet.getRange('J197');
    let LignePage16 = onglet.getRange('J198');
    let LignePage17 = onglet.getRange('J199');
    let LignePage18 = onglet.getRange('J200');
    let LignePage19 = onglet.getRange('J201');
    let LignePage20 = onglet.getRange('J202');
    let LignePage21 = onglet.getRange('J203');
    let LignePage22 = onglet.getRange('J204');
    let LignePage23 = onglet.getRange('J205');
    let LignePage24 = onglet.getRange('J206');
    let LignePage25 = onglet.getRange('J207');
    let LignePage26 = onglet.getRange('J208');
    let LignePage27 = onglet.getRange('J209');
    let LignePage28 = onglet.getRange('J210');
    let LignePage29 = onglet.getRange('J211');
    let LignePage30 = onglet.getRange('J212');
    //
    // 2) Récupérer le nombre de lignes de chaque page
    //
    let NLignePage = sheet.getRange('k183');
    //
    // 3) Conditions pour cacher les lignes
    //
    let ConditionPage1 = onglet.getRange('B183');
    let ConditionPage2 = onglet.getRange('B184');
    let ConditionPage3 = onglet.getRange('B185');
    let ConditionPage4 = onglet.getRange('B186');
    let ConditionPage5 = onglet.getRange('B187');
    let ConditionPage6 = onglet.getRange('B188');
    let ConditionPage7 = onglet.getRange('B189');
    let ConditionPage8 = onglet.getRange('B190');
    let ConditionPage9 = onglet.getRange('B191');
    let ConditionPage10 = onglet.getRange('B192');
    let ConditionPage11 = onglet.getRange('B193');
    let ConditionPage12 = onglet.getRange('B194');
    let ConditionPage13 = onglet.getRange('B195');
    let ConditionPage14 = onglet.getRange('B196');
    let ConditionPage15 = onglet.getRange('B197');
    let ConditionPage16 = onglet.getRange('B198');
    let ConditionPage17 = onglet.getRange('B199');
    let ConditionPage18 = onglet.getRange('B200');
    let ConditionPage19 = onglet.getRange('B201');
    let ConditionPage20 = onglet.getRange('B202');
    let ConditionPage21 = onglet.getRange('B203');
    let ConditionPage22 = onglet.getRange('B204');
    let ConditionPage23 = onglet.getRange('B205');
    let ConditionPage24 = onglet.getRange('B206');
    let ConditionPage25 = onglet.getRange('B207');
    let ConditionPage26 = onglet.getRange('B208');
    let ConditionPage27 = onglet.getRange('B209');
    let ConditionPage28 = onglet.getRange('B210');
    let ConditionPage29 = onglet.getRange('B211');
    let ConditionPage30 = onglet.getRange('B212');
    //
    // 4) Masquer les lignes : Essai sur la ligne 216
    //
    if (ConditionPage1.value == "TRUE") {
    SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().hideRows(216,1);
    }
    else if (ConditionPage1.value == "FALSE") {
    SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().showRows(216,1);
    }
    }
    **********************************************************************

  2. #2
    Membre très actif
    Avatar de frunch
    Homme Profil pro
    Développeur / comptable
    Inscrit en
    Janvier 2022
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur / comptable

    Informations forums :
    Inscription : Janvier 2022
    Messages : 156
    Par défaut
    Bonjour,
    Voilà pour la boucle, à tester.

    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
    // MASQUER LIGNES
    function masquage() {
       // definition var
      var doct = SpreadsheetApp.getActive();
      var fRap = doct.getSheetByName("Rapport");
      // derniere ligne 
        var dernLig = fRap.getLastRow();
        console.log(reponse)
        Browser.msgBox("Vous ne pouvez répondre plusieurs fois au questionnaire.");
        //verif nom dans onglet repondeurs
       //   for (i = 1;i <= dernLig;i++)
         //{
           // if (fRap.getRange(i,2).getValue() == "VRAI") 
     //       {  
       //     hideRows(i)
         //   return;   
     //       }
       //   }      
     }
    Malheureusement, je peux pas tester le code sur google.

    Nom : 2.png
Affichages : 169
Taille : 8,6 Ko

Discussions similaires

  1. afficher et masquer des lignes en fonction de la valeur d'une cellule
    Par kif550 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/05/2017, 07h01
  2. Afficher/masquer des lignes dans un tableau hiérarchique
    Par linou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/06/2009, 11h58
  3. Afficher/Masquer des lignes de tableaux
    Par mLk92 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/10/2007, 18h28
  4. Afficher/Masquer des lignes de tableaux
    Par MortyDeath dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/08/2007, 10h22
  5. Liste déroulante : afficher/masquer des lignes
    Par arxpression dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/08/2006, 16h50

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