Bonjour, Comme je me heurte à ce bug sur au moins un fichier Calc pour mon boulot et que je ne veux pas revenir à la version 3.0.1, j'ai cherché et trouvé un contournement qui fonctionne dans le cas qui m'intéresse. Je ne sais pas si ce que je vais exposer est trivial pour les experts de Calc mais je crois que ça peut être utile pour rendre des classeurs plus robustes.
Le problème apparait chez moi dans un classeur qui contient 2 feuilles. Il s'agit d'un inventaire d'ordinateurs. La 2e feuille contient la liste des machines repérées par un identifiant. Cette liste fournit les caractéristiques des machines. La première feuille contient la liste des utilisateurs, chacun ayant un ou plusieurs ordinateurs. Cette première feuille contient donc en gros une ligne par personne avec son nom en colonne A, l'identifiant de sa machine en colonne B et dans les colonnes C, D, etc. les caractéristiques principales de la machine. Les colonnes C et suivantes sont remplies à l'aide d'une formule contenant un RECHERCHEV() qui cherche l'identifiant de la machine sur la feuille 2 . En fait c'est un peu plus complet, un utilisateur n'ayant pas seulement un nom mais appartenant aussi à des catégories mais ça permet de situer le problème. Le tri me sert à présenter et analyser les informations de la feuille1 de différents points de vue ; il ne s'agit pas de mettre en forme ma liste une fois pour toutes mais selon les besoins d'afficher les données par ordre alphabétique des utilisateurs ou selon l'ordre croissant des identifiants. Le problème engendré par le bug 101690 se manifeste dans les cellules qui contiennent les recherchev() qui vont chercher des données sur l'autre feuille et, dans ce cas, seulement celles-là. En quelque sorte les références que contiennent ces formules ne sont pas triées c'est à dire que tout se passe comme si c'était des références absolues. J'ai joint un fichier Calc exemple. Il suffit de sélectionner les colonnes A à F de la feuille 1 puis de trier en ordre décroissant sur A pour mettre le problème en évidence : le cellule contrôle vire au rouge. Mes formules sont du genre : B2=RECHERCHEV(A2;Feuille2.$A$2:$C$16;2) Je cherche donc dans la feuille 2 la ligne qui contient la même chose que A2 dans la feuille 2 et j'affiche la donnée correspondante. Si on tri la feuille 1 par ordre décroissant sur la colonne A, la formule devient B2=RECHERCHEV(A16;Feuille2.$A$2:$C$16;2) J'abrège : pour que le tri fonctionne même avec OOo 3.1, il suffit de remplacer la référence à la cellule A2 par une expression qui signifie "prendre le contenu de la colonne A sur la même ligne". Dans ce cas même si les formules sont mélangées elles donneront quand même le bon résultat car en fait elles sont toutes identiques. La formule que j'ai utilisée est (colonne F du fichier joint) : B2=RECHERCHEV(INDEX($A$1:$A$16;LIGNE();1);Feuille2.$A$2:$C$16;2;0) Par ailleurs je crois qu'il peut être utile aussi d'ajouter des calculs de vérification sur certaines feuilles comme je l'ai fait avec la cellule "contrôle" du fichier joint. Celle-ci utilise le formatage conditionnel. Voila, si ça peut être utile. Bonne journée JBF -- Seuls des formats ouverts peuvent assurer la pérennité de vos documents.
test_101690.ods
Description: application/vnd.oasis.opendocument.spreadsheet
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
