Comparer deux colonnes et copier la valeur a coté

josejuan87 Messages postés 1 Statut Membre -  
ThauTheme Messages postés 1564 Statut Membre -
Bonjour les amis,
J'aurais besoin d'un programme que suite a une colonne dans un excel avec des numeros (ex 123456789) vient chercher les memes numeros dans une autre colonne placé dans un autre fichier excel mais qui n'a pas les 9 numeros (c'est à dire, ca s'arrete a 6 donc 123456) et puis que ca copie a coté de ce numero la colonne qu'il a juste a coté.
Merci d'avance et désolé si je me suis pas super bien exprimé ^^
José

1 réponse

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonjour José, bonjour le forum,

    D'habitude je propose des codes "full comment" mais comme tu n'as même pas daigné fournir des explications précises, je te propose le code ci-dessous à adapter à ton cas :

    Sub Macro1()
    Dim CD As Workbook
    Dim OD As Worksheet
    Dim CS As Workbook
    Dim OS As Worksheet
    Dim CLS As Integer
    Dim CLD As Integer
    Dim DLS As Integer
    Dim DLD As Integer
    Dim TVD As Variant
    Dim TVS As Variant
    Dim I As Integer
    Dim J As Integer
    
    Set CD = ThisWorkbook
    Set OD = CD.Worksheets("Feuil1") 'à adapter à ton cas
    Set CS = wokbooks("ICI_le Nom_du_Classeur_Source.xlsx") 'à adapter à ton cas
    Set OS = CS.Worksheets("Feuil1") 'à adapter à ton cas
    CLD = 1 'à adapter à ton cas (Colonne des données à 9 chiffres)
    CLS = 1 'à adapter à ton cas (Colonne des données à 6 chiffres)
    DLD = OD.Cells(Application.Rows.Count, CLD).End(xlUp).Row
    DLS = OS.Cells(Application.Rows.Count, CLS).End(xlUp).Row
    TVD = OD.Range(OD.Cells(1, CLD), OS.Cells(DLD, CLD))
    TVS = OS.Range(OS.Cells(1, CLS), OS.Cells(DLS, CLS + 1))
    For I = 1 To UBound(TVD, 1)
        For J = 1 To UBound(TVS, 1)
            If CStr(Left(TVD(I, 1), 6)) = CStr(TVS(J, 1)) Then
                OD.Cells(I, CD + 1).Value = TVS(J, 2)
                Exit For
            End If
        Next J
    Next I
    End Sub
    

    Les deux classeurs doivent être ouverts et le code est à placer dans le classeur qui contient 9 chiffres...
    0