Recherche V en boucle

Bonjour,

Après plusieurs recherches je bute sur une recherche V en boucle. Si quelqu'un arrive à trouver une solution j'en serais très reconnaissant.

Je cherche à trouver selon la référence de mon produit (feuille "suivi", colonne 1) les prochaines dates de livraison du produit ainsi que la quantité livrée à cette date.

Les informations ("BBD") sont alimentées par une connexion vers ERP, la requête me sort pour chaque référence (ART_NUM) :

  • Les quantités en Bon de commande (DL_QteBC)
  • l'année en cours (A_DOCAN)
  • le n° du bon de commande (DO_Piece)
  • la date de livraison (DO_DateLivr)

Comme je peux avoir plusieurs bons de commandes en avance, il y a naturellement une répétition de ma référence recherchée.

Existe-t-il une méthode pour rapatrier dans les colonnes 6 - 5 - 4 - 3 - etc., de la feuille suivi les différents bon de commande + date de livraison + quantités commandées par référence.

Idéalement j'aimerais que la 1ère recherche V rapatrie ces données dans les 3 colonnes, une seconde recherche V pour trouver les autres infos des possibles autres commandes, etc. Puis passer à la référence suivante.

Je vous joins un fichier.

Merci,

Bonne journée,

Jb

Bonjour,

Il suffit d'utiliser la fonction personnalisée : RECHERCHEVM ci-dessous que j'ai développée.

1- l'insérer dans un module via l'éditeur VBA

2- utiliser une formule matricielle sur la plage de restitution ( sélectionner la plage et appuyer sur Ctrl + Shift + Entrée)

3- sans formule matricielle, seule la première valeur trouvée est restituée.

Elle s'utilise comme la fonction : RECHERCHEV sans le paramètre "FAUX" du fait qu'elle recherche une correspondance exacte.

ci-joint exemple

NB : J'ai intégré cette fonction dans un module VBA et dans les options avancées, supprimé l'affichage des zéros quand la cellule a une valeur nulle.

Bonjour Thev

Merci pour cette réponse rapide.

Je ne réussi pas à voir la fonction personnalisée, j'ouvre le fichier, mais il y a rien dans la fenêtre des macros enregistrées. Est-ce normal ? Ou est-ce que j'ai raté quelque chose ?

Merci

Bonjour,

C'est normal car ce n'est pas une macro mais une fonction. Tu la trouveras en cliquant sur le bouton "fx" de la barre de formule.

Bonjour,

Je n'y arrive toujours pas. Est-ce gênant si la BDD est sous format de tableau ?

Merci,

Bonjour,

une tentative (si j'ai compris)

P.

Bonjour,

Helldouard a écrit :

Je n'y arrive toujours pas. Est-ce gênant si la BDD est sous format de tableau ?

Non

Pour entrer la formule sous forme matricielle :

1- sélectionner la plage désirée : I2 à L2 ou I3 à L3 ou I4 à L4 ou I5 à L5

2- valider en maintenant appuyées les touches Ctrl et Shift(Maj) et appuyer sur la touche Entrée.

Bonjour,

Oui Patrick1957 c'est ce que je souhaite faire

Après plusieurs recherche j'ai compris comment fonctionne la formule. Le problème quand je sélectionne ma plage et que j'entre ma formule, le résultat affiché est #NOM? sur toute les cellules.

J'ai sélectionné toutes les lignes et colonnes en destination de la formule, qu'est-ce qui cloche ?

Merci,

Re,

je n'ai écrit aucune formule , il s'agit simplement d'un tcd...

P.

Oui mais dans l'esprit c'est ce que je recherche. Pour chaque référence je souhaite connaître la date de livraison correspondante (il peut en avoir plusieurs).

Je cherche donc a faire une formule RechercheVM mais je bute sur quelque chose car aucun résultat ne s'affiche.

Merci,

Bonjour,

Helldouard a écrit :

Après plusieurs recherche j'ai compris comment fonctionne la formule. Le problème quand je sélectionne ma plage et que j'entre ma formule, le résultat affiché est #NOM? sur toute les cellules.

Cela veut dire qu'il ne trouve pas la fonction personnalisée.

Avez-vous bien recopié le module fonction_recherche dans l'éditeur VBA ?

D'autre part, il ne faut sélectionner au début qu'une plage d'une seule ligne (I2 à L2) et puis procéder par copie.

bonjour

que manque-t-il au TCD de Patrick ?

je l'ai joint, avec une modif pour voir par mois

Bonjour,

En effet l'erreur doit venir de la.

J'ai un fichier Test (que j'ai fourni) et un fichier Pro dans lequel j'essaye de refaire la formule.

Je pense que le code que tu as fourni dans le fichier de test ne fonctionne pas avec le fichier Pro car les plage/colonnes ne sont pas pareille.

Est-ce que tu peut m'expliquer comment fonctionne le code dans son module afin que je transpose avec mon fichier pro ?

Merci,

Bonjour,

Je viens de plancher sur le dossier ce matin pendant une bonne heure, et je ne comprend pas quand tu dis "Insérer la fonction dans un module VBA".

Car en téléchargeant le fichier avec la solution, j'ai rien trouvé dans les modules VBA.

Je rate quoi ?

Merci,

Bonjour,

Voir l'image ci-jointe.

picture0001

Ok, j'ai bien réussi à placer le module dans mon classeur excel.

Merci !

Par contre pour la recopie de la formule il faut sélectionner ligne par ligne la zone de destination de la formule ? Car la recopie en glissant la formule ne fonctionne pas.

Merci,

Re, J'ai trouvé comment faire, c'est top.

Par contre quand la fonction vient rapatrier les dates de livraison (format de cellule = date courte), les valeurs nulles sont affichées sous le format 00/01/90.

Une astuce pour ne rien avoir à la place ?

Merci,

Helldouard a écrit :

Par contre quand la fonction vient rapatrier les dates de livraison (format de cellule = date courte), les valeurs nulles sont affichées sous le format 00/01/90.

Il suffit de décocher l'option "Afficher un zéro dans les cellules qui ont une valeur nulle"

Options --> Options Avancées --> Options d'affichage de la feuille de calcul

Bonjour,

Merci pour cette astuce, ca fonctionne parfaitement.

Merci pour cette formule et le temps consacré.

Bonne journée,

Bonjour,

J'ai essayé de faire la même manip sur une autre feuille du classeur mais cela ne fonctionne pas. Il y a quelque chose à changer dans le VBA ?

Merci,

Bonne journée,

Rechercher des sujets similaires à "recherche boucle"