Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

comparaison et enrichissement de liste

  • Initiateur de la discussion Initiateur de la discussion loic29
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

loic29

Guest
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
 
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 😛

A plus,
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
23
Affichages
665
Réponses
38
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…