Je me suis crée un carnet de notes avec Calc. Une des fonctions primordiale de cette feuille est de trouver toutes les occurrences dans une liste (pas forcément triée). En particulier rechercher tous les élèves d'une classe donnée. De plus n'y connaissant rien aux macros je ne pouvais en créer une.
Pour ce faire j'ai commencé par utiliser un filtre. Cette solution ne fonctionne pas dynamiquement. Si ma liste change (ajout ou suppression ou modification d'un élève) le résultat du filtre ne change pas. Si je change la classe sélectionnée, il faut que recommence mon filtre. J'ai donc rapidement abandonné cette solution.
Puis j'ai découvert le fonction EQUIV qui permet de trouver uniquement la première occurrence. Donc comment trouver la seconde? la troisième? ...
J'ai trouvé la solution suivante.
- à la ligne précédente j'ai le numéro de la ligne de l'occurrence précédente
- je relance une recherche mais a partir d'une sous liste qui commence juste après le dernier élément trouvé grâce à la fonction DECALER.
Cette solution fonctionne.
Avantage : toute modification ou suppression est immédiatement répercutée dans le résultat. L'ajout d'un élément est possible mais pose un petit problème que je sais résoudre.
Inconvénient: la mise au point de la recherche de la 2e occurrence et des suivantes est compliquée et m'a fait passer quelques nuits blanches.
Pour ceux qui veulent tester voici le fichier Je tiens à préciser qu'à l'époque j'utilisais OOo 1.1.4 donc le module OOo base n'existait pas. Et qu'en fait je faisais un genre de requête "à la main".
Ma question est (vous l'aurez compris): comment trouver simplement toutes les occurrences dans une liste? J'aurais, par exemple, bien aimé
un paramètre N° d'occurrence dans le fonction EQUIV.
Toute suggestion est la bienvenue.




