Actualiser un filtre Google Sheets avec Apps Script

Le code suivant permet de forcer l'actualisation d'un filtre Google Sheets pour mettre à jour les données filtrées après les avoir modifiées.


Exemple d'utilisation

Voici l'exemple d'un filtre Google Sheets qui filtre les données dont la référence contient -US- :

sheets filtre actualiser

Si l'on modifie maintenant la valeur de l'article 11, les résultats du filtre ne seront pas automatiquement mis à jour :

function exemple() {
  SpreadsheetApp.getActiveSheet().getRange('B12').setValue('U4VW6-US-901');
}

Pour mettre à jour les données du filtre (ou créer le filtre s'il n'existe pas encore ou a été supprimé), exécutez la fonction suivante :

function filtrer() {
  // Source : https://www.sheets-pratique.com/fr/codes/actualiser-filtre
  const f = SpreadsheetApp.getActiveSheet();
  const filtre = f.getFilter() ?? f.getRange('A:C').createFilter();
  filtre.setColumnFilterCriteria(2, SpreadsheetApp.newFilterCriteria()
    .whenTextContains('-US-')
    .build()
  );
}
Modifiez les colonnes ainsi que les paramètres de setColumnFilterCriteria en fonction de votre filtre (si vous ne savez pas comment le faire, vous pouvez enregistrer une macro pendant que vous créez manuellement le filtre pour avoir un exemple).

Le filtre est ensuite actualisé et affiche dans ce cas également l'article 11 :

sheets filtre forcer mise a jour apps script actualiser