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

Comparaison 2 listes 2 colonnes

  • Initiateur de la discussion Initiateur de la discussion fritik89
  • 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 !

F

fritik89

Guest
Bonjour,

J'ai 2 listes de produits dans lesquelles on retrouve des produits identiques avec parfois des quantités différentes.

Pour relever la difficulté, les produits ne sont pas sur les mêmes lignes dans les deux listes.

De plus, il existe des produits dans la liste A qui ne sont pas dans la liste B et vice vers ca. Et bien sur je dois comparer les deux listes entre-elle.

merci de votre aide.

Je joins un fichier ci-joint.
 

Pièces jointes

Re : Comparaison 2 listes 2 colonnes

Ah j'oubliais c'est les deux quantités que je souhaite comparer des mêmes codes produits. Et s'il y a des produits qui n'existe pas dans une liste ou dans une autre, je souhaite les identifier.
 
Re : Comparaison 2 listes 2 colonnes

Salut,
si j'ai bien compris je t'ai mis un fichier où ceux qui n'existe pas sur la liste B sont colorés en Orange.
@+
Rachid
 

Pièces jointes

Re : Comparaison 2 listes 2 colonnes

Bonsoir, fritik89, Rachid_0661

il est tard, voici le code dans le fichier excel ci-joint : a vérifier pour voir ce cela tiens la route, je pense que c'est pas mauvais pour ma part, si je peux en avoir un retour se serais agréable.

VB:
Option Base 1
 Sub test()
 Dim tabA() As Variant
 
Set listeA = ThisWorkbook.Worksheets("liste A")
Set listeB = ThisWorkbook.Worksheets("liste B")
 
' Nettoyage
derLa = listeA.Range("F2").End(xlDown).Row 'utiliser xldown car xlup te comptabilise la cellule A19
listeA.Range(listeA.Cells(1, 6), listeA.Cells(derLa, 10)).Clear
derLa = Empty

derLa = listeA.Range("a2").End(xlDown).Row 'utiliser xldown car xlup te comptabilise la cellule A19
derLb = listeB.Range("a2").End(xlDown).Row 'utiliser xldown car xlup te comptabilise la cellule A19
 
' Nettoyage format
listeA.Range(listeA.Cells(1, 1), listeA.Cells(derLa, 2)) = Application.Trim(listeA.Range(listeA.Cells(1, 1), listeA.Cells(derLa, 2))) ' 'Supprime tous les espaces en trop exemple : 3 espaces entre "un   et" = "un et"
listeB.Range(listeB.Cells(1, 1), listeB.Cells(derLb, 2)) = Application.Trim(listeB.Range(listeB.Cells(1, 1), listeB.Cells(derLb, 2))) ' 'Supprime tous les espaces en trop exemple : 3 espaces entre "un   et" = "un et"
 
' Tableau
a = listeA.Range(listeA.Cells(1, 1), listeA.Cells(derLa, 2)) ' Liste A
B = listeB.Range(listeB.Cells(1, 1), listeB.Cells(derLb, 2)) ' liste B
 
' compteur nombe de ligne tableau a + b
n = (UBound(a, 1) + UBound(B, 1))

' demension nouveau tableau
ReDim tabA(1 To n, 1 To 5)

For i = 1 To UBound(a, 1)
tabA(i, 1) = a(i, 1)
tabA(i, 2) = a(i, 2)
tabA(i, 3) = "Liste A"
Next i
 
a = UBound(a, 1)
 
For j = 1 To UBound(B, 1)
a = a + 1
tabA(a, 1) = B(j, 1)
tabA(a, 2) = B(j, 2)
tabA(a, 3) = "Liste B"
Next j
 
' Doublon
 For i = 1 To n
 d = i + 1
     For j = d To n
         If tabA(i, 1) & tabA(i, 2) = tabA(j, 1) & tabA(j, 2) Then
             tabA(j, 4) = tabA(j, 4) + 1
             tabA(i, 5) = "Existe tableau B"
             tabA(j, 5) = "Existe tableau A"
         End If
     Next j
 Next i
 
' Unique !
 For i = 1 To n
         If tabA(i, 5) = Empty Then
             tabA(i, 5) = "unique !"
         End If
 Next i

tabA(1, 3) = "Liste"
tabA(1, 5) = "Existe Ou Unique !"

For i = 1 To 3
     listeA.Cells(1, 6).Offset(0, k).Resize(UBound(tabA, 1)) = Application.Index(tabA, , i)
     k = k + 1
 Next i
     listeA.Cells(1, 9).Resize(UBound(tabA, 1)) = Application.Index(tabA, , 5)
 
' Trie
    derLa = listeA.Range("F2").End(xlDown).Row 'utiliser xldown car xlup te comptabilise la cellule A19

    listeA.Range(listeA.Cells(1, 6), listeA.Cells(derLa, 10)).Select

    Selection.Sort Key1:=Range("F2"), Order1:=xlAscending, Key2:=Range("G2") _
        , Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _
        , Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
        xlSortNormal
End Sub

laurent
 

Pièces jointes

Dernière édition:
- 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
5
Affichages
481
Réponses
0
Affichages
430
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…