trouver une description figurant dans une liste et la mettre dans une autre

  • Initiateur de la discussion cornaiano
  • Date de début
C

cornaiano

Guest
Bonjour à tous,

J'aimerais créer un code VB pour trouver une description dans une liste et l'ajouter dans une autre.

Voici le cas :

J'ai une feuille excel contenant deux pages...

La premiere (sheet "result") contient une liste comme celle ci :
D10993300 YG37 DistrDemand (Plnd.)
D10385135 YG38 Total Demand
D10387412 YT23 Dependent Demand
D10385167 TE45 Total Demand

Cette liste pourra avoir une taille tres differente selon les cas, de une ligne à plusieurs dizaine de milliers


La seconde,(sheet "Dcode list") contient la description de tous les codes :

D10383164 product A code A Descr A
D10385135 product B code B Descr B
D10383164 product C code C Descr C
D10385167 product D code D Descr D


J'aimerais avoir dans ma premiere liste, les descriptions des codes commencant par D, Cette description je la trouve dans la deuxieme liste...

Comme ceci :

product B code B Descr B D10385135 YG38 Total Demand

Si quelqu'un pouvait me procurer un exemple de code, ce serait fantastique

Je précise qu'il me faut absolument du code, et non pas une simple formule.
En effet, ce fichier sera utilisé par des utilisateurs non experimenté, et la taille pourra parfois etre enorme, je ne peux donc pas me permettre d'integrer des formules.

Ces listes changent en fonction de rafraichissements automatiques provenant d'autres applications

Merci d'avance pour votre aide precieuse
 
C

chris

Guest
Bonjour
La fonction qui permet cela est rechecrchev (vlookup)
Rien ne t'empêche d'insérer les formules en VBA afin que les utilisateurs n'aient pas à le faire.
Tu peux ensuite si tu le souhaites écraser la formule par un copier collage spécial valeur (toujours en VBA).
Chris
 
C

Chris

Guest
Re
Tu dois te baser sur la colonne F ou G de ta feuille Refresh pour trouver la dernière ligne.
Le code suivant te permet de valoriser x selon la dernière lignbe remplie
x = Range("G65000").End(xlUp).Row

Ensuite dans le code on utilise x pour pour faire référence à l palge à traiter
Range("A7:A" & x).Formula = "=VLOOKUP(RC4,'Dcode list'!C1:C4,2,FALSE)"
Range("B7:B" & x).Formula = "=VLOOKUP(RC4,'Dcode list'!C1:C4,3,FALSE)"
Range("C7:C" & x).Formula = "=VLOOKUP(RC4,'Dcode list'!C1:C4,4,FALSE)"
Range("A7:C" & x).Copy
Range("A7:C" & x).PasteSpecial xlPasteValues

Il faut être sûr que tous les codes existent sinon il faut modifier Vlookup avec un test if(na(vlokup....

Quand au déclenchement de la macro, tout dépend comment se fait la mise à jour des données.

Chris
 

Discussions similaires

Statistiques des forums

Discussions
312 503
Messages
2 089 062
Membres
104 014
dernier inscrit
Aurélie MONTEIL