Le 30/11/2014 09:21, claude a écrit :
> 
> =SI(ESTERREUR(RECHERCHEV(A1;$destinataires.$A$1:$D$10;2;0));"non
> trouvé";RECHERCHEV(A1;$destinataires.$A$1:$D$10;2;0)&"
> "&RECHERCHEV(A1;$destinataires.$A$1:$D$10;3;0))
> 

Oui, bien entendu ça fonctionne. L'ennui -- si tant est qu'on puisse
parler d'ennui -- c'est que RECHERCHEV() est appelée *quatre* fois, ce
qui, à mon goût, en fait trois de trop.
Il faut savoir que la fonction RECHERCHEV() est gourmande en ressources.
Si le fichier (où elle est présente) est volumineux, cela peut induire
de forts ralentissements de l'interface à l'ouverture du fichier. Ceci a
été bien amélioré depuis plusieurs versions (4.2 si ma mémoire est
bonne). Il n'en reste pas moins que j'essaie toujours d'optimiser de ce
côté-là et d'éviter les redondances.

Pour revenir au cas soumis par Catof, je créerais dans la feuille cible
une colonne avec la seule fonction RECHERCHEV(), dans laquelle bien sûr
on trouverait soit des valeurs trouvées soit des erreurs. Pas grave, on
peut masquer cette colonne. Dans une seconde colonne, je ferais
l'analyse d'erreur :
[note : la colonne où se trouve RECHERCHEV() est B]
En C1, on aurait
=SI(ESTERREUR(B1);"mon message d'erreur";B1)

Propre, simple, de bon goût ;-)


Accessoirement, je préférerais concaténer dans la feuille source. Mais
c'est un autre débat.
-- 
Jean-Francois Nifenecker, Bordeaux

-- 
Envoyez un mail à [email protected] pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à