Numeriblog Google Workspace Google Apps Script, la puissance des outils Google à portée de scripts Apps Script : accéder aux puces intelligentes dans Google Sheets

Apps Script : accéder aux puces intelligentes dans Google Sheets

Cela fait déjà quelques mois que les puces intelligentes ont débarqué dans Google Sheets. Si vous ne voyez pas ce que c’est, vous pouvez vous rendre dans un Google Sheets quelconque et, dans une cellule, […]

personnes ont consulté cet article

2 minutes

Rédigé par Quentin Garcia - il y a 4 semaines

Ce que vous allez découvrir

  • Comment accéder à une puce intelligente de Google Sheets dans Apps Script ?
  • Et créer une puce intelligente, alors ?

Apps Script : accéder aux puces intelligentes dans Google Sheets

Cela fait déjà quelques mois que les puces intelligentes ont débarqué dans Google Sheets. Si vous ne voyez pas ce que c’est, vous pouvez vous rendre dans un Google Sheets quelconque et, dans une cellule, commencer à taper @. Vous verrez alors une multitude de suggestions, et si vous en choisissez une (par exemple votre propre adresse mail) et faites entrée, vous aurez créé une puce intelligente !

Les puces intelligentes dans Google Sheets
Un exemple de puce intelligente menant vers un autre fichier Google Sheets.

Les puces intelligentes sont bien pratiques, et il est possible à l’aide de formules de récupérer une partie des informations contenues dans notre cellule. Par exemple, si vous avez mis une puce intelligente en A2 qui mène vers un fichier Google Sheets comme dans l’image ci-dessus, vous pouvez écrire dans une autre cellule la formule : =A2.url, et cela vous donnera automatiquement le lien du fichier en retour.

Récupération URL puce intelligente Google Sheets
Grâce à la formule donnée, on récupère l’URL de la puce intelligente.

Vous noterez que la façon d’écrire cette formule ressemble diablement à l’accès aux propriétés d’un objet dans Apps Script, et vous avez alors peut-être cette pensée  : mais au fait, comment fait-on pour accéder à une puce intelligente de Google Sheets dans Apps Script ?

Comment accéder à une puce intelligente de Google Sheets dans Apps Script ?

Il s’avère que ce n’est pas possible  ! 

Enfin, en réalité, pas directement. En effet, la fonctionnalité étant assez récente et encore en train d’évoluer (avec de nouvelles puces intelligentes ajoutées de temps à autre et des fonctionnalités en plus par-dessus), il est probable que l’équipe en charge du développement d’Apps Script attende que tout soit plus calme pour proprement ajouter les fonctions liées aux smart chips.

Vous pouvez vous-même essayer : que ce soit avec getValue(), getRichTextValue() ou getFormula(), il n’y a aucun moyen de récupérer autre chose que la valeur affichée dans Google Sheets. Rien de toutes les autres informations, notamment le lien dans le cas d’une puce intelligente sur un fichier.

Face à la puce intelligente, il va donc falloir ruser. Et la ruse consiste à utiliser un moyen détournée : si Apps Script ne peut pas accéder à la puce intelligente et son contenu, comme nous l’avons vu, il s’avère que Google Sheets peut à l’aide d’une formule. Or, Apps Script peut tout à fait écrire une formule dans Google Sheets, puis récupérer le contenu de cette formule.

Si nous reprenons l’exemple précédent, on peut donc écrire la petite fonction suivante :

function getSmartChipURL() {
  // On récupère une cellule que l’on sait vide (on peut aussi pour cela créer une colonne ou une ligne temporaire et mettre notre formule dans une des cellules créées)
  const tempRange = SpreadsheetApp.getActiveSheet().getRange("C2");

  // On y écrit la formule souhaitée, ici pour récupérer l’URL de la cellule A2
  tempRange.setFormula("=A2.url");

  // On récupère le résultat de la formule
  const url = tempRange.getValue();

  // On supprime la formule dans notre tempRange
  tempRange.setValue("");

  // On peut désormais utiliser la valeur récupérée dans le reste de notre code, ou l’écrire en dur quelque part, par exemple en B2
  console.log(url);
  SpreadsheetApp.getActiveSheet().getRange("B2").setValue(url);
}

Et comme toujours, une démonstration vaut mieux qu’un long discours :

Fonction URL depuis Apps Script dans Google Sheets
En exécutant directement la fonction depuis Apps Script, on peut voir que l’URL a bien été récupérée puis inscrite directement en B2. Victoire !

Et créer une puce intelligente, alors ?

C’est là où notre bricolage tombe à l’eau, hélas : étant donné que la création d’une puce intelligente passe par autre chose qu’une formule, il est impossible de créer une puce intelligente par Apps Script pour le moment. Encore une fois, vous pouvez essayer avec un setValue(), setFormula() voire un setRichTextValue(), mais rien ne fonctionnera.

Espérons toutefois que Google ne va pas laisser les utilisateurs d’Apps Script en plan, mais si l’on suit un peu l’actualité sur ce côté, il y a de bonnes raisons d’y croire : en décembre 2023, Google annonçait la possibilité de créer ses propres smart chips avec prévisualisations personnalisées dans Google Docs. Étant donné l’engouement des utilisateurs et des partenaires de Google pour les puces intelligentes, il y a fort à parier qu’Apps Script va recevoir de nouvelles fonctions liées.

Et en attendant, avec quelques astuces, on peut toujours arriver à quelque chose  !

Besoin d'un peu plus d'aide sur Sheets ?

Des formateurs sont disponibles toute l'année pour vous accompagner et optimiser votre utilisation de Sheets, que ce soit pour votre entreprise ou pour vos besoins personnels !

Découvrir nos formations Sheets

Articles similaires

  • Articles connexes
  • Plus de l'auteur

Rédacteur

S’abonner
Notification pour
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires