Bonjour a tous,
Je travaille actuellement sur excel, et j'aimerai comparer 2 tableaux de composants de 2 feuilles différentes (d'un même classeur) et importer des données du tableau 2 au tableau 1.
Mes 2 tableaux ont les des colonnes en commun notamment la colonne "G" qui me sert pour faire la comparaison des composants, cependant les composants présents dans cette colonne ne sont pas tous communs aux 2 tableaux.
Je cherche donc a trouver depuis mon tableau 1, des valeurs (nomenclatures) présentes dans mon tableau 2 puis importer le contenu de certaines cellules(pas toutes) présentes sur la ligne de chaque valeur trouvée de mon tableau 2.
Je tiens a préciser que toutes les lignes et toutes les colonnes ne sont pas communes aux 2 tableaux (certaines sont présentes dans le 1 d'autres dans le 2 uniquement) et que je ne souhaite pas rapatrier les valeurs non présentes dans le tableau 1.
Pour répondre a ce problème j'ai élaboré plusieurs codes VBA cependant, ceux-ci ne me donnent pas les résultats attendus. En effet, ils laissent certaines lignes vides malgré des nomenclatures identiques dans la colonne G(c1 et c2 sur le code) et laissent il me semble certaines colonnes vides.
Lorsque je passe par la fonction rechercher de excel (ctrl+f) et que j'y copie-colle des nomenclatures apparemment non trouvées dans le tableau 2 il me les trouve parfois, donc il y a un problème.
J'ai regardé au niveau des incrémentations de mes variables mais je ne pense pas que ce soit ça..
Voici le code dernier code que j'ai tapé :
______________________________ ________
____________________________Code:Sub I_1LIST2() Dim wb As Workbook Dim ws As Worksheet Dim ws2 As Worksheet Dim l1 As Integer 'l1 est la ligne de la cellule en cours de traitement dans ws Dim l2 As Integer 'l2 est la ligne de la cellule en cours de traitement dans ws2 Dim c1 As Integer 'c1 est la colonne de la cellule en cours de traitement dans ws(colonne G) Dim c2 As Integer 'c2 est la colonne de la cellule en cours de traitement dans ws2(colonne G) Dim c3 As Integer 'c3 est la colonne dans laquelle sont copié les valeurs Set wb = Workbooks("ListeArticles2_4") Set ws = wb.Worksheets("Feuil1") 'ws contient le tableau 1 Set ws2 = wb.Worksheets("Nom2") 'ws2 contient le tableau 2 l1 = 2 l2 = 2 c1 = 7 c2 = 7 c3 = 13 While ws.Cells(l1, 3).Value <> "" 'tant que la cells l1,c1 de ws n'est pas vide While ws2.Cells(l2, 1) <> "" And ws2.Cells(l2, c2).Value <> ws.Cells(l1, c1).Value 'tant que la cellule (l2,1) de ws2 n'est pas vide et que la case (l1,c1) de ws = ws2 l2 = l2 + 1 'incrementer la ligne l2 Wend If ws2.Cells(l2, c2).Value = ws.Cells(l1, c1).Value Then For c3 = 13 To 37 Step 1 'remplir les cases allant de M(=13) a AJ(=36) de la ligne l1 de ws ws.Cells(l1, c3).Value = ws2.Cells(l2, c3 - 4).Value Next c3 c3 = 13 End If l1 = l1 + 1 'incrementer la ligne l1 l2 = 2 'remettre la ligne l2 a 2 Wend End Sub
Voilà, je ne sais plus du tout comment résoudre mon problème.
J'ai également entendu parler de recherchev (partie tableur) que j'ai essayé mais qui m'a donné un résultat similaire, on m'a aussi parlé d'utiliser des fonctions en utilisant "Byval" mais je n'ai pas tout compris
Quelqu'un pourrait-il m'aider a trouver l'origine de mon problème svp ?
Merci d'avance
-----