Comparer les donnees de 2 feuilles excel pour remplir une colonne

jammy17

XLDnaute Occasionnel
Bonjour les XLDnautes,

je viens vers vous aujourd'hui pour m'offrir si possible une solution à un nouveau problème VBA auquel je suis confronté.
Dans le classeur joint, j'ai 2 feuille.
1/ dans la première on trouve une liste d'ID
2/ dans la deuxième on retrouve une autre liste d'ID dans laquelle d'autres ID ont été joint, sur certains ID j'ai des dates en colonne B.

mon problème : je souhaiterais en cliquant sur la "FORME" de la feuille 1, que par le biais d'un code VBA, transposé les bonnes date figurant dans la feuille 2 en face des ID de la feuille1,

du genre If ID feuille1 = ID feuille2 then date de l'ID feuille 1 en colonne B=Date ID (identique) de la feuille 2

j'ai essayé avec la méthode for each cel in plage de la feuille1
if cel.offset(0,0) de la feuille1 = cel.offset(0,0) de la feuille then cel.offset(0,1) de la feuille1=cel.offset(0,1) de la feuille 2


d'avance je remercie celui qui aura la bonne méthode pour faire ce genre de chose,

PS, la methode RECHERCHEV ne m'interesse pas, car sur le fichier de base les donnes evoluent constamment

merci de votre réponse

Jammy
 

Fichiers joints

DoubleZero

XLDnaute Barbatruc
Re : Comparer les donnees de 2 feuilles excel pour remplir une colonne

Bonjour, jammy17, le Forum,

Comme ceci ?

Code:
Option Explicit
Sub Merci_job75()
    Dim d As Object, t, i&, P As Range
    Set d = CreateObject("Scripting.Dictionary")
    t = Feuil2.[A1].CurrentRegion.Resize(, 2)
    For i = 1 To UBound(t)
        d(t(i, 1)) = t(i, 2)
    Next
    Set P = Feuil1.[a:b]
    t = P
    For i = 2 To UBound(t)
        If d.exists(t(i, 1)) Then t(i, 2) = d(t(i, 1)) Else t(i, 2) = ""
    Next
    P.Columns(2) = Application.Index(t, , 2)
   ' Columns("b:b").NumberFormat = "m/d/yyyy": [b1] = "date anniv." ' ligne inutile...
End Sub
A bientôt :)
 
Dernière édition:

Discussions similaires


Haut Bas