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.

Attachment: test_101690.ods
Description: application/vnd.oasis.opendocument.spreadsheet

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Répondre à