Rapport de message :*
 

Re: Faire concorder les données

Titre du sujet : Re: Faire concorder les données
par myDearFriend! le 04/01/2010 16:25:20

Bonjour Slimbad, Guy, le Forum,

Meilleurs voeux pour cette nouvelle année !

Si j'ai bien compris, en pièce jointe, peut-être une réponse à ta question...

J'ai utilisé la procédure VBA suivante :
Option Explicit
' myDearFriend!  -  www.mdf-xlpages.com

Sub Traitement()
Dim TabA As Variant, TabB As Variant
Dim L As Long, L1 As Long
    With Sheets("Feuil1")
        'Mémorise les données en colonne A
        L = .Cells(.Rows.Count, 1).End(xlUp).Row
        TabA = .Range(.Cells(2, 1), .Cells(L, 1)).Value
        'Mémorise les données en colonne B et l'efface
        L = .Cells(.Rows.Count, 2).End(xlUp).Row
        With .Range(.Cells(2, 2), .Cells(L, 2))
            TabB = .Value
            .ClearContents
        End With
        'Pour chaque élément de la colonne B
        On Error Resume Next
        For L = 1 To UBound(TabB, 1)
            'Cherche la correspondance en A
            L1 = Application.Match(TabB(L, 1), TabA, 0)
            If L1 > 0 Then
                'MAJ colonne B
                .Cells(L1 + 1, 2).Value = TabB(L, 1)
                L1 = 0
            Else
                'Archive les non-correspondances en Feuil2
                With Sheets("Feuil2")
                    .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1).Value = TabB(L, 1)
                End With
            End If
        Next L
    End With
    MsgBox "Redistribution terminée !", vbOKOnly + vbInformation, "myDearFriend! - www.mdf-xlpages.com"
End Sub
Dans le doute, ce code archive en Feuil2 les éléments de la colonne B n'ayant pas trouvé correspondance.

Bien cordialement,