Rapport de message :*
 

Re: Faire concorder les données

Titre du sujet : Re: Faire concorder les données
par myDearFriend! le 04/01/2010 17:52:57

Re,

Dans ce cas, le code peut devenir celui-ci :
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
                'Ajoute les non-correspondances en fin de tableau colonne B
                .Cells(Application.Max(.Cells(.Rows.Count, 2).End(xlUp).Row + 1, _
                        UBound(TabA, 1) + 2), 2).Value = TabB(L, 1)

            End If
        Next L
    End With
    MsgBox "Redistribution terminée !", vbOKOnly + vbInformation, _
            "myDearFriend! - www.mdf-xlpages.com"
End Sub
Il rassemblera les non-correspondances en fin de tableau colonne B.

Habituellement, je ne suis pas fan de donner du code VBA à quelqu'un qui ne saura sans doute pas quoi en faire d'ici quelques jours ou qui ne pourra le modifier lui-même lorsqu'une modification du traitement se fera sentir... Je te conseille fortement d'essayer d'en apprendre les rudiments pour la suite si tu comptes en tirer avantage à l'avenir...

Bien cordialement,