Ouvrir un lien avec Google Apps Script

Pour ouvrir un lien dans un nouvel onglet à partir d'un code Apps Script, copiez-collez l'une des 2 fonctions disponibles sur cette page et renseignez simplement l'URL lors de l'appel de la fonction.

Utilisation :

linkOpen(url)

Version simple

Commencez par copiez la fonction suivante dans l'éditeur de script :

function linkOpen(url) {
  // Source : https://www.sheets-pratique.com/fr/codes/link-open
  SpreadsheetApp.getUi().showModalDialog(HtmlService.createHtmlOutput(`<script>window.addEventListener('load',()=>{window.open('${url}'),google.script.host.close()});</script></body></html>`), 'Ouverture ...');
}

Il vous suffira d'utiliser ensuite la fonction linkOpen avec l'URL passée en argument :

function exemple() {
  linkOpen('https://forum.excel-pratique.com');
}
La fonction linkOpen affiche brièvement une boîte de dialogue pour ouvrir le lien à l'aide de window.open puis referme automatiquement la boîte de dialogue.

Si le lien ne s'ouvre pas correctement dans le nouvel onglet, il vous faudra peut-être l'autoriser une première fois dans votre navigateur :

google sheets popup bloque link open

Version avec animation

Cette autre version de la fonction linkOpen affiche une animation d'attente pendant environ 1 seconde avant d'ouvrir la page demandée dans le nouvel onglet :

function linkOpen(url) {
  // Source : https://www.sheets-pratique.com/fr/codes/link-open
  SpreadsheetApp.getUi().showModalDialog(HtmlService.createHtmlOutput(`<!DOCTYPE html><html><head>
  <style>div{text-align:center}img{width:50px;animation:s 1s infinite linear}@keyframes s{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}</style>
  </head><body><div><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzA1YjM4ZSIgZD0iTTEyLDRWMkExMCwxMCAwIDAsMCAyLDEySDRBOCw4IDAgMCwxIDEyLDRaIi8+PC9zdmc+"></div><script>window.addEventListener('load',()=>{setTimeout(()=>{window.open('${url}'),google.script.host.close()},1000)});</script></body></html>`).setWidth(200).setHeight(65), 'Ouverture ...');
}

Aperçu :

google sheets dialogue attente load link open
Pour modifier la durée d'affichage, remplacez le nombre 1000 dans le code par la durée souhaitée (1000 = 1 seconde).