Fonctionnalité de recherche dans une Sheet

Bonjour à tous,

je me permets de solliciter votre aide. 💪

Je suis à la recherche d'une solution pour créer une sorte de "fonction de recherche" à la manière du Ctrl +F.

L'idée est d'avoir un champ ou je pourrais taper une valeur, un mot et que celle-cisoit mise en valeur exactement comme la fonction Ctrl+F maisdirectement dans le Sheet.

Objectif : Rechercher sans connaitre la valeur exact dans un Sheet en tapant les premières lettres.
https://docs.google.com/spreadsheets/d/1PdxFkf49-vFxjfp_g8KQK88XnwCLMBKnUThgtEfqOHw/edit?usp=sharing
Merci 🙏

Bonjour,

pas de soucis, j'y ai justement travaillé hier

je te l'intègre dans ton projet ce soir

Wouahou, merci.

Je publierai un tuto à la compréhension de ton job.

un tuto ? pour qui ? pour quoi ?

une première proposition avec un menu spécifique

1ère étape : activer

image image

2ème étape, lancer l'interface de recherche

image

le mot peut être incomplet

script

code.gs :

function onOpen() {
  SpreadsheetApp.getUi().createMenu('⇩ M E N U ⇩')
    .addItem('👉 Activer ...', 'init')
    .addItem('👉 Rechercher ...', 'emphasize')
    .addToUi();
}
function init() {
  SpreadsheetApp.getActive().toast("L'application est initialisée.");
}
function emphasize() {
  const html = HtmlService.createHtmlOutputFromFile('index').setTitle('Rechercher dans la feuille ...');
  SpreadsheetApp.getUi().showSidebar(html);
}
function delFormat() {
  const sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  sh.getDataRange().setBackground(null)
}
function formatCells(terme) { // cellule complète
  let ranges = SpreadsheetApp.getActive()
    .createTextFinder(terme)
    .matchEntireCell(false)
    .matchCase(false)
    .matchFormulaText(false)
    .ignoreDiacritics(true)
    .findAll();
  ranges.forEach( range => {    range.setBackground("lightblue");  });
}

index.html

<!DOCTYPE html>
<html>
<head>
  <base target="_top">
  <style>
      body {
        padding: 0 0.5rem; /* à remplacer par "margin: 0;" si affiché dans une boîte de dialogue */
        color: #333;
        font-family: Roboto, Arial, sans-serif;
      }
      p {
        margin: 0.8rem 0 0.3rem;
      }
      input[type="text"] {
        font-family: Roboto, Arial, sans-serif;
        display: block;
        width: 100%;
        box-sizing: border-box;
        margin-bottom: 1rem;
        padding: 0.6rem 0.7rem;
        background: #f3f3f3;
        color: #444;
        border: none;
        font-size: 1.08rem;
        border-radius: 0.4rem;
      }
      input[type="button"] {
        display: block;
        width: 100%;
        padding: 0.7rem 0 0.6rem;
        border: none;
        background: #30a392;
        color: #fff;
        font-size: 1.15rem;
        cursor: pointer;
        border-radius: 0.4rem;
      }
      input::placeholder {
        color: #aaa;
      }
  </style>
  <script>
    function afficher1() {
            var mot = document.getElementById("word").value;
          google.script.run.formatCells(mot);
      }
    function effacer() { google.script.run.delFormat(); }
  </script>
</head>
<body>
  <form>
    <br /><br />
    <input type="text" id="word" name="word" placeholder="Mot à rechercher">
    <br /><br />
    <input type="button" value="afficher" onclick="afficher1()">

    <input type="button" value="effacer" onclick="effacer()">
  </form>
</body>
</html

il faut néanmoins que tu m'expliques ceci

L'idée est d'avoir un champ ou je pourrais taper une valeur, un mot et que celle-ci soit mise en valeur exactement comme la fonction Ctrl+F mais directement dans le Sheet.

Objectif : Rechercher sans connaitre la valeur exact dans un Sheet en tapant les premières lettres.

qu'est-ce qui doit être différent de la fonction Ctrl+F afin que j'adapte ma proposition

Rechercher des sujets similaires à "fonctionnalite recherche sheet"