Re : RECHERCHEV dans plusieurs feuilles autre classeur
Bonjour à toutes et à tous,
J'ai une petite question concernant rechercheV sous Excel 2003(et oui encore...), ou plutôt sur la manière d'en améliorer le traitement, je m'explique :
- Je cherche à partir du classeur Devis une référence dans les feuilles du classeur Achats (dans les feuilles 1 à 3 et dans la feuille Codes)
- La première valeur cherchée est la désignation
- La seconde et le prix (HT pour l'instant, à calculer ensuite)
La fonction de recherche est la suivante :
=SI(A16<>"";SI(NB.SI([Achats.xls]Feuil1!$1:$65536;A16)>0;RECHERCHEV(A16;[Achats.xls]Feuil1!$1:$65536;2;FAUX);SI(NB.SI([Achats.xls]Feuil2!$1:$65536;A16)>0;RECHERCHEV(A16;[Achats.xls]Feuil2!$1:$65536;2;FAUX);SI(NB.SI([Achats.xls]Codes!$1:$65536;A16)>0;RECHERCHEV(A16;[Achats.xls]Codes!$1:$65536;2;FAUX);"")));"")
La fonction de calcul du prix TTC avec marge éventuelle est la suivante :
=SI(A16<>"";SI(NB.SI([Achats.xls]Feuil1!$1:$65536;A16)>0;ARRONDI.SUP(RECHERCHEV(A16;[Achats.xls]Feuil1!$1:$65536;3;FAUX)*tva*mp;0);SI(NB.SI([Achats.xls]Feuil2!$1:$65536;A16)>0;ARRONDI.SUP(RECHERCHEV(A16;[Achats.xls]Feuil2!$1:$65536;3;FAUX)*tva*mp;0);SI(NB.SI([Achats.xls]Codes!$1:$65536;A16)>0;RECHERCHEV(A16;[Achats.xls]Codes!$1:$65536;3;FAUX);"")));"")
Elles sont longues, mais fonctionnelles, grâce à la réponse de chris, merci
)
Hélas, je dois faire face à de petit problèmes :
- Les temps d'apparitions des résultats est long, environ 1 seconde en saisie manuelle (par ex. 140247 ou m)
- Bien plus long si on copie/colle des valeurs prises dans le classeur Achats (par exemple de la feuille 2).
- Le classeur Achats doit rester ouvert (pas gênant mais je souhaiterais qu'il soit fermé) et doit être ouvert en premier chez moi en tout cas (bizarre
)
- Lors de la modification du classeur Achats avec Devis ouvert, parfois (mais pas toujours) Excel recalcule à chaque modification, ça devient très vite casse-pieds.
- Si vous faites une copie (étirement vers le bas de la première cellule par ex.), le temps est long également.
Je pense que la formule de recherche multiple est la cause de la "lenteur", mais je ne vois pas comment réduire ces délais, je ne comprend pas l'utilisation de INDIRECT.EXT.
Il faut dire que je demande à Excel de rechercher sur la totalité de chaque feuille et non sur une plage stricte.
Les questions sont les suivantes :
Est-il possible de réduire ces délais (si possible sans tout changer sinon tant pis) ?
De garder le classeur Achats fermer ?
The question bête et/ou tarte, comment masquer la formule lors de l'utilisation du classeur Devis ?
Je sais, pour le calcul du prix, je peux ajouter/utiliser une colonne pour un calcul séparé dans les feuilles 1 à 3, mais je voulais me torturer un peu les neurones.
Pour les Feuilles feuill1 à 3 et Codes, je voulais tout simplement limiter le nombre de réf aux nombre de fournisseur (feuill1=fournisseur1, feuill2=fournisseur 2, etc. ...).
Malheuresement, je ne comprend pas grand chose aux macro, mais bon, si il le faut, pourquoi pas ....
Pour les pièces pièces jointes, les deux classeurs sont trop volumineux pour être joints, même compressés, ou alors, indiquez moi un une autre solution de mise à disposition.
Je vous remercie d'avance et bon été !!
P.S. : Ce forum es génial, nombreuses réponses et pédagogie, que demander de plus ?