Créer une recherche dynamique dans Google Sheets avec un bouton (sans onEdit)

 

🔍 Créer une recherche dynamique dans Google Sheets avec un bouton (sans onEdit)

Dans cet article, je vous montre comment mettre en place une fonction de recherche dynamique dans une feuille Google Sheets, qui filtre automatiquement les résultats dans un tableau structuré… grâce à un simple bouton !

On va créer un script Google Apps Script qui :

  • lit la valeur saisie dans la cellule H1,

  • applique un filtre automatique sur la colonne "RECHERCHE DIVERS",

  • ou réinitialise le filtre si la cellule est vide.

✅ Pourquoi ce système est utile ?

  • Plus simple pour l’utilisateur final : pas besoin d'appuyer sur Entrée ou déclencher un script automatiquement.

  • Pas de bugs liés à onEdit() : on contrôle précisément quand le filtre est appliqué.

  • Interface plus claire : un champ de recherche et un bouton, rien de plus.


🔧 Étape 1 – Préparer votre feuille

Dans votre feuille Google Sheets :

  • La colonne RECHERCHE DIVERS doit exister dans la ligne des en-têtes (par exemple ligne 10).

  • Créez une cellule de recherche : utilisez par exemple H1 pour y taper vos mots-clés.

  • Placez vos données sous les en-têtes, sans laisser de lignes vides dans le tableau.


✍️ Étape 2 – Ajouter le script

  1. Ouvrez Google Sheets.

  2. Cliquez sur Extensions > Apps Script.

  3. Supprimez tout le code et remplacez-le par celui-ci :

javascript

function FiltrerRechercheEcole() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Liste ECOLE"); const searchValue = sheet.getRange("H1").getValue().toString().trim(); const headerRow = 10; // Ligne des en-têtes const lastRow = sheet.getLastRow(); const lastCol = sheet.getLastColumn(); const tableRange = sheet.getRange(headerRow, 1, lastRow - headerRow + 1, lastCol); // Supprimer tout filtre existant if (tableRange.getFilter()) { tableRange.getFilter().remove(); } // Créer un filtre tableRange.createFilter(); const filter = tableRange.getFilter(); // Identifier la colonne "RECHERCHE DIVERS" const headers = sheet.getRange(headerRow, 1, 1, lastCol).getValues()[0]; const colIndex = headers.indexOf("RECHERCHE DIVERS"); if (colIndex === -1) { SpreadsheetApp.getUi().alert("Colonne 'RECHERCHE DIVERS' introuvable !"); return; } // Si H1 est vide, ne rien filtrer (juste activer le filtre) if (searchValue === "") { return; } // Sinon, appliquer un filtre contenant le texte filter.setColumnFilterCriteria( colIndex + 1, SpreadsheetApp.newFilterCriteria() .whenTextContains(searchValue) .build() ); }

🔘 Étape 3 – Créer le bouton dans Google Sheets

  1. Dans votre feuille Google Sheets, cliquez sur Insertion > Dessin > Nouveau.

  2. Dessinez un bouton (par exemple un rectangle avec le texte "Rechercher").

  3. Cliquez sur le dessin inséré → trois petits points (⋮) > Attribuer un script.

  4. Entrez le nom exact de votre fonction :

    nginx

    FiltrerRechercheEcole

✅ Résultat

  • Tapez un mot-clé dans la cellule H1.

  • Cliquez sur le bouton Rechercher.

  • La feuille filtre automatiquement les lignes du tableau où la colonne RECHERCHE DIVERS contient ce mot.

  • Si vous videz H1 puis cliquez à nouveau, le filtre est réinitialisé mais reste actif.


💡 Astuce bonus

Vous pouvez adapter la cellule de recherche (H1) ou le nom de colonne ciblée (RECHERCHE DIVERS) selon votre contexte : client, produit, nom, école, etc.


🧩 Conclusion

Ce petit script rend vos feuilles de calcul Google bien plus interactives et ergonomiques. Plus besoin de macros complexes ni de déclencheurs onEdit souvent capricieux ! Un champ + un bouton = une recherche dynamique propre et maîtrisée.

Commentaires

Posts les plus consultés de ce blog

🛠 Utilisation de CustomUIEditor pour Personnaliser le Ruban Excel

🗓️ Simulateur de Congés et Calendrier Collaboratif sous Google Sheets

Explication VBA : Facturation automatique Gestion client