VBA: RechercheV selon etiquettes de données et pas selon N

Bonjour à tous

J'ai besoin de votre aide svp.

Ma problématique se situe au niveau d'une recherche verticale spécifique par rapport à la donnée "VC..." qui est dans les 2 onglets.

Dans Lignes de commande, elle se trouve dans la colonne Commande client et dans l'onglet Stocks Disponibles, elle se trouve dans la colonne numéro du lot.

Je souhaiterai reporter la valeur du physique disponible qui est dans l'onglet Stocks Disponibles et la mettre en colonne F dans mon onglet Lignes de commandes.

La problématique est que ma colonne numéro de lot peut être en colonne B, C, D mais toujours avant le physique Disponible. Ce qui signifie que la colonne de Recherche peut varier.

Est il donc possible de faire une recherche par rapport à l'etiquette "Physique disponible" qui se trouve en ligne 2 et non par rapport à un numéro de colonne.

Pour info, les tableurs sont beaucoup ,plus longs donc la recherche doit je pense faire une boucle avec un While activecell.offset <> "" on continue la recherche

De plus, toutes les VC n'ont pas forcement un physique disponible

Si ce n'est pas possible, est ce qu'on a pas interet à passer par un TCD sur le numero de lot et le physique disponible?

N'hésitez pas si vous avez des questions

Merci d'avance pour votre aide

13classeur1.xlsx (11.46 Ko)
Lecoc a écrit :

La problématique est que ma colonne numéro de lot peut être en colonne B, C, D mais toujours avant le physique Disponible. Ce qui signifie que la colonne de Recherche peut varier.

Bonjour,

Ce qui n'est pas le cas dans le fichier joint. Tu doit nous produire un fichier avec les données à rechercher dans les colonnes B,C ou D.

Bonjour Raja

Je n'ai pas compris ta reponse. En fait, le fichier que je t'ai donné est issue d'un ERP et chacun peut configurer l'ecran comme il le souhaite.

Ce que je voulais dire c'est qu'on peut avoir la colonne numéro de lot en colonne B, en colonne C ou en colonne D, selon la facon dont la personne a arrangé son ERP.

Trouves les exemples en piece jointe, ce sera peut etre plus clair.

J'ai une solution intermédiarie qui serait de mettre la colonne "numéro du lot" dans la 1ere colonne de la feuille. Ce qui permet de figer cette colonne.

Cependant, comment faire la recherche V si la personne a placé la colonne "physique disponible" en colonne E ou F ou I ou autre que G comme dans le classeur 1?

En clair, comment faire une recherche verticale par rapport à une etiquette de données et pas par rapport à un numéro de colonne? En l'occurence, par rapport à la colonne repéré par une variable qu'on pourrait appelé "Physique disponible"?

J'ai fait une petite macro dans le classeur 1

Comment remplacer la 6eme colonne dans ma recherchev ci dessous par la colonne dans laquelle se trouve "Physique disponible")?

Est ce plus clair?

Sheets("Lignes de commandes").Select

Range("F2").Select

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],'Stocks Disponibles'!C[-5]:C[6],6,0)"

Selection.AutoFill Destination:=Range("F2:F11"), Type:=xlFillDefault

Range("F2:F11").Select

Ci joint des exemples qu'on peut retrouver: La colonne physique disponible peut ne pas être à la même place.

Merci et bonne journée

16classeur2.xlsm (17.38 Ko)
22classeur1.xlsx (11.89 Ko)

Re,

Formule suivante en F2 et à copier vers le bas :

=SIERREUR(RECHERCHEV(A2;'Stocks Disponibles'!A:L;EQUIV("Physique disponible";'Stocks Disponibles'!$A$1:$L$1;0);0);"")

Merci Raja

Ca marche super bien et ca correspond bien à ce que je voulais.

En revanche, si je voulais aller un tout petit peu plus loin, en remplacant A2, qui correspond à la valeur qu'on recherche par EQUIV("Commande Client";$A$1:$L$1;0) dans la RECHERCHEV, est ce que ce serait possible?

Ce qui serait utile dans le cas ou la commande client ne serait plus figée?

J'ai essayé et ca ne marche pas?

Merci d'avance pour ton aide

Re,

A essayer en F2 et à copier vers le bas :

=SIERREUR(RECHERCHEV(INDIRECT(ADRESSE(LIGNE();EQUIV("Commande client";$A$1:$E$1;0);4));'Stocks Disponibles'!A:L;EQUIV("Physique disponible";'Stocks Disponibles'!$A$1:$L$1;0);0);"")

NB : Attention !!!! Les entêtes de colonnes doivent être strictement orthographiées comme dans la formule. Sinon ça ne marchera pas sauf si vous les corrigez dans la formule

C'est parfait Raja

Merci beaucoup!

Rechercher des sujets similaires à "vba recherchev etiquettes donnees pas"