COMPARAISON entre 2 tableaux des lignes communes (dans le désordre)

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

D

Didier

Guest
Bonjour,

Je dois comparer 2 tableaux

Chaque tableau est composé d’une dizaine de colonnes et de quelques milliers de lignes.

Je dois vérifier que les lignes du tableau 1 sont bien présentes à l’identique dans le tableau 2, même si elles sont dans un ordre différent.

Ainsi je souhaiterais créer un fichier m’indiquant par exemple quelles lignes sont présentes dans le tableau 1 et pas dans le tableau 2, et vice versa.

Quelle serait la syntaxe de la macro s’il vous plaît ? Merci beaucoup.
 
Bonsoir Didier,


Tu trouveras en pièce jointe un petit exemple qui devrait répondre au problème posé.

=====================================================

Private Sub CommandButton2_Click()

'Paramétrage Colonne à considérer comme clé pour éliminer les doubles
Set ColKey = Range("A:A")

'Copy du premier tableau en début de la feuille Fusion
Sheets("Tableau1").UsedRange.Copy _
Destination:=Cells(1)

'Copy du du second tableau à la suite du premier tableau dans la feuille Fusion
Sheets("Tableau2").UsedRange.Copy _
Destination:=Cells(1).Offset(UsedRange.Rows.Count, 0)

'Tri de la feuille fusion sur les clés située dans la colonne donnée en paramètre
UsedRange.Sort Key1:=ColKey, Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
xlSortNormal

'Elimination des doubles rouge/rouge, jaune/jaune, rouge/jaune
'Les éléments uniquement présents dans Tableau 1 restent en Jaune
'Les éléments uniquement présents dans Tableau 2 restent en Rouge
'Les éléments présents dans les deux tableaux sont fusionnés et coloriés en orange
For Each Row In UsedRange.Rows
While Intersect(Row, ColKey) = Intersect(Row, ColKey).Offset(1, 0)
Row.Interior.ColorIndex = 44
Intersect(Row, ColKey).Offset(1, 0).EntireRow.Delete
Wend
Next Row


End Sub

=====================================================

Bon courage pour la suite.

Omicron
 

Pièces jointes

- 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
8
Affichages
1 K
Réponses
1
Affichages
2 K
Retour