chez moi cela ne fonctionne pas non plus avec LibreOffice 25.2.7 :
Pourquoi les filtres UNO ne fonctionnent plus dans LibreOffice ?
Parce que LibreOffice a réécrit une partie du moteur de filtrage (autour de TableFilterField2/3, FilterDescriptor, et du moteur RegExp ICU)…
…et cette réécriture a cassé la compatibilité avec les macros Basic.
Ce n’est pas un petit bug isolé :
Les développeurs LibreOffice l’ont reconnu dans plusieurs tickets, mais :
- Les filtres UNO sont considérés comme “legacy API”
La priorité est donnée à l’interface graphique, pas aux macros Basic
Les développeurs sont très peu nombreux
Les bugs liés à UNO sont souvent classés “low priority”
Voici les raisons réelles, telles qu’on peut les comprendre en lisant les discussions des développeurs :
1. UNO est ancien et très complexe
Le système UNO date d’OpenOffice 1.0.
Il est difficile à maintenir, et très peu de développeurs le maîtrisent encore.
2. LibreOffice privilégie l’interface graphique
Les filtres via le menu fonctionnent.
Donc pour eux : “le logiciel fonctionne”.
3. Les macros Basic ne sont plus la priorité
La communauté pousse plutôt vers Python, Java, C++, ou l’API REST.
4. Les bugs UNO sont difficiles à reproduire
Selon la plateforme (Windows, Linux, Mac), le comportement change.
5. Manque de ressources
LibreOffice repose sur une poignée de développeurs salariés + bénévoles.
Voici les seules solutions réellement fonctionnelles aujourd’hui.
C’est la seule méthode 100 % fiable dans LO 25.x.
basic
Code : Tout sélectionner
Sub ActiverFiltreAuto
Dim oDisp, oFrame
oFrame = ThisComponent.CurrentController.Frame
oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
oDisp.executeDispatch(oFrame, ".uno:AutoFilter", "", 0, Array())
End SubLibreOffice ne permet plus de les définir par macro.
C’est-à-dire :
- Lire la plage cellule par cellule
Tester les valeurs toi-même
Recopier les lignes correspondantes dans une autre feuille
L’API UNO Python fonctionne mieux que Basic, car elle contourne certains bugs.
Cordialement, B.

