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,
|