Fonction rechercheV trop lourde, alternative VBA

Bonjour à tous,

Je viens de créer mon compte à l'instant car après avoir passé plusieurs semaines à lire les articles du forum j'ai beaucoup fait progresser mon fichier excel, mais aujourd'hui il est un peut fatigué.

Comme le titre l'explique, dans mon fichier il y a une fonction rechercheV qui va parcourir 24 feuilles différentes pour rechercher un code d'identification et donner un prix associé dans un seul et unique tableau. La plage de recherche est identique sur toutes les feuilles.

Voilà à quoi ressemble la dite fonction que j'ai écrite dans pas moins de 500 cellules .. :

{=SI(ESTNA(RECHERCHEV(STXT(B20;5;9);INDIRECT(INDEX("'"&selecom;EQUIV(VRAI;(NB.SI(INDIRECT("'"&selecom&"'!B7:F450");STXT(B20;5;9))>0);0))&"'!B7:F450");5;FAUX));"";RECHERCHEV(STXT(B20;5;9);INDIRECT(INDEX("'"&selecom;EQUIV(VRAI;(NB.SI(INDIRECT("'"&selecom&"'!B7:F450");STXT(B20;5;9))>0);0))&"'!B7:F450");5;FAUX))}

Les 24 feuilles sont nommé comme cela: selecom1 , selecom2 , ... , selecom24

la feuille dans la quelle ma fonction est écrite plusieurs fois est nommé "Demande d'appro ER"

j'aurai aimé réussir a constituer une macro qui irait faire la recherche SEULEMENT lorsque l'on clique sur un bouton associé.

De cette manière j'imagine que mon fichier excel pourra à nouveau tourner au quart de tour (je ne sais pas si vous voyez ce que je veux dire ^^).

Il y a des données confidentielles dans ce fichier je n'ai pas l'autorisation de le partager :/ mais je reste bien-sur attentif pour fournir les renseignements nécessaire pour résoudre ce problème.

Et en passant en calcul manuel ?

Bonjour @ tous,

avec un fichier exemple on pourrait peut-etre t'aider

Bonjour,

tu peux rendre ton fichier anonyme avec 2 ou 3 onglets et 30 lignes par onglets, ça faciliterait les choses :-

P.

la fonction ne marche que quand je la valide en faisant Ctrl+Maj+Entrée.

En mode manuel la fonction renvoie #VALEUR!

Je ne sais pas si c'est de ça que tu parlais?.

Je suis au travail encore mais dans une heure je ferai cette opération pour le rendre annonyme et je le poste alors depuis mon domicile.

Re,

ce dont tu parles c'est le type de formule Matricielle ou Classique.

par contre l'ami Steelson parle du mode de calcul du classeur Manuel ou Automatique.

en mode Manuel tu dois taper la touche F9 pour calculer le classeur.

bartolome

Bonjour,

Faire une recherche Google Fonction perso Rechv() matricielle plus rapide que Recherchev() classique

Ceuzin

Alors ceuzin, j'ai fait la recherche que tu as indiqué dans google et le premier lien trouvé est une vraie mine d'information. Si j'ai bien compris il faudrait faire une recherche 3D C'est bien ça ?

J'ai même lu qu'il était possible de faire une recherche de valeur proche. Je découvre ce principe mais je me rend compte qu'il me serait très utile pour cette même recherche justement. Je ne sais pas si cependant ce serait applicable.

J'ai tenté de joindre mon fichier excel mais je n'y arrive pas encore.

Re,

ne joins pas tout le fichier, tu peux supprimer des onglets et ne laisser que 3 ou 4 avec des trentaines de lignes comme il a dit Patrick.

Salut tout le monde, j'ai réduit mon fichier excel a un stricte minimum, il ne ressemble pas du tout a ce qu'il est réellement dans son enssemble.

Il faut savoir que normalement les feuilles du fournisseur selecom vont de 1 à 24.

J'ai aussi essaié de mettre le classeur en calcul manuel et mon fichier est fluide en effet. Mais il est plus simple de devoir executer une fois une macro que de devoir appuyer souvent sur f9. En tout cas ça me permet de pouvoir continuer à travailler en attendant d'avoir une autre solution, merci beaucoup.

36anonyme.xlsm (243.21 Ko)

Re,

en O13 :

=SIERREUR(RECHERCHEV(STXT(B13;5;9);INDIRECT("'selecom"&EQUIV(VRAI;NB.SI(INDIRECT("'selecom"&LIGNE($1:$24)&"'!B7:B350");STXT(B13;5;9))>0;0)&"'!B7:F350");5;FAUX);"")

@ valider par Ctrl+Shift+Enter

@ tirer vers le bas

c'est pas plus rapide mais plus courte.

Si les codes ne sont pas en double sur plusieurs onglets on peut faire avec SOMMEPROD(SOMME.SI()) en 3D.

avec des basses de données énormes une fonction personnalisé sera plus rapide et plus pertinente.

@ + +

Rechercher des sujets similaires à "fonction recherchev trop lourde alternative vba"