comparaison et enrichissement de liste

loic29

XLDnaute Nouveau
bonsoir
j'ai 2 listes a trier regulierement. je dois trouver les elements commun de ces 2 listes (qui sont sur 2 pages differentes)
puis copier les lignes communes dans une autre page.
comment faire?
merci
 

groussel

XLDnaute Nouveau
Bonsoir Loic,

je pense que cela devrait d'aider... ;)


Tes 2 tableaux doivent être de même dimension (ligne et colonne)
Chacun des 2 tableaux (rg1 et rg2 ) peut être situé n'importe où dans
leur feuille respective, en autant qu'il soit de mêmes dimensions.

Il ne te reste plus qu'à renseigner dans la procédure les noms des
feuilles et plage de cellules des 2 tableaux comparatifs et ceux du
tableau des résultat :

Tableau des résultats est construit de cette manière :
En colonne A1 : Adresse du premier tableau
B1 : Valeur du premier tableau à l'adresse de A1
En colonne C1 : Valeur du tableau 2
D1 : Valeur du tableau 2 en C1

-------------------------------
Sub ComparaisonTableau()

Dim RG1 As Range, RG2 As Range
Dim Tblo1, Tblo2, Rg3 As Range
Dim A As Long, B As Integer, C As Long, D As Integer

Set RG1 = Sheets('Feuil1').Range('A1:A10') 'Tabeau 1
Set RG2 = Sheets('Feuil2').Range('A1:A10') 'Tableau 2
Set Rg3 = Sheets('Feuil3').Range('A1') 'Tableau des résultats

If RG1.Rows.Count <> RG2.Rows.Count Then
MsgBox 'Le tableau n'a pas le même nombre de lignes'
Exit Sub
End If
If RG1.Columns.Count <> RG2.Columns.Count Then
MsgBox 'Le tableau n'a pas le même nombre de colonnes'
Exit Sub
End If

Tblo1 = RG1: Tblo2 = RG2: D = 1
Application.ScreenUpdating = False
For A = 1 To UBound(Tblo1, 1)
For B = 1 To UBound(Tblo1, 2)
If Tblo1(A, B) <> Tblo2(A, B) Then
C = C + 1
Rg3(C, D) = RG1(A, B).Address(0, 0)
Rg3(C, D).Offset(, 1) = Tblo1(A, B)
Rg3(C, D).Offset(, 2) = RG2(A, B).Address(0, 0)
Rg3(C, D).Offset(, 3) = Tblo2(A, B)
End If
Next
Next

Set RG1 = Nothing: Set RG2 = Nothing: Set Rg3 = Nothing
Erase Tblo1: Erase Tblo2
End Sub


Il faut un peu l'adapter à ton besoin mais c'est ça l'entraide :p

A plus,
 

loic29

XLDnaute Nouveau
merci, mais ca resoud pas tout:
j'ai une liste A avec une vingtaine de noms
une liste B d'une centaine environ
normalement, ceux de la liste A sont egalement dans B.
par contre ceux qui sont dans A doivent etre copies dans un fichier qui depend d'un indiceassocie au nom de la liste B
par ex feuille A: durand, dupond...
feuille B: albert - 123, durand - 234, dupond - 13, francois 1
et il faudrait que la ligne durand de la fueille A aille dans les fichiers 2, 3 et 4
et que la ligne dupond aille dans le fichier 1 et 3...
je sais, c'est tordu, mais bon, c'est le boulot
merci d'avance
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal