Comparer deux fichiers Excel
Bonjour,
Je cherche a comparer deux fichiers excel.
Ils ont tous les deux les mêmes colonnes, dans le même ordre.
Par contre pas les mêmes lignes.
Je m'explique :
> J'ai une base de 1 000 personnes qui comprend une cinquantaines de colonnes, dont un identifiant unique, leur adresse,n° tel etc...
> Je souhaite pouvoir comparer cette base, avec la même base mais datée de l'année dernière
L'objectif est de mettre en lumière les modifications (quelqu'un qui aurait changé d'adresse par ex)
J'ai tenté avec Spreadsheet Compare mais le problème que j'ai c'est que dans mon fichier le plus récent, j'ai des nouvelles lignes.
J'ai aussi des lignes qui sont dans l'ancien, mais pas dans le nouveau.
Spreadsheet compare par rapport au numéro de la ligne.
J'aimerai lui dire de comparer a partir de la première colonne (qui est un identifiant unique)
Est-ce possible ?
Merci beaucoup
Salut
L'objectif ça serait surtout qu'on m'explique car je vais devoir faire ça tous les mois
Je ne peux pas partager le "vrai" fichier car ce sont des données RH mais j'ai créé un exemple que tu peux télécharger ici
C'est hyper simplifié, mais c'est pour imager ma requête en la simplifiant
Comme tu peux le voir, il y a deux onglets (qui représentent mes deux fichiers exdel que je veux comparer)
Ils ont tous les deux exactement les mêmes colonnes mais
- Y'a des lignes qui sont sur les deux onglets, avec aucun changement (toute la ligne est pareille)
- Y'a des lignes qui sont sur les deux onglets, avec des changements (en orange dans l'exemple)
- Il y a des lignes qui sont que sur l'onglet Decembre (je me fiche de ces lignes, j'ai pas besoin de les identifier
- Il y a des lignes qui sont seulement dans l'onglet de janvier (en orange dans l'exemple)
Ce que tu vois en orange dans l'exemple : c'est exactement ce que je souhaite faire.
Ici je l'ai fait manuellement car c'était simple, mais en réalité, j'ai 2 000 lignes et 50 collonnes avec des données qui ne peuvnet pas se comparer d'un coup d'oeil (des numéros de tel, des dates...)
J'ai ce travail a faire chaque mois.
Je suis désolé mais je ne parviens pas à récupérer ton fichier.
Essaie en passant par www.cjoint.com
Bye !
Bonsoir à tous,
Vois ceci :
Option Explicit
Sub Comparaison()
Dim i As Long, j As Long, x As Range, dico As Object
Application.ScreenUpdating = False
Set dico = CreateObject("Scripting.Dictionary")
dico.CompareMode = 1
With Sheets(1).Cells(1).CurrentRegion
For i = 2 To .Rows.Count
dico(.Cells(i, 1).Value) = .Rows(i).Value
Next
End With
With Sheets(2).Cells(1).CurrentRegion
.Interior.ColorIndex = xlNone
For i = 2 To .Rows.Count
If dico.exists(.Cells(i, 1).Value) Then
For j = 2 To .Columns.Count
If .Cells(i, j).Value <> dico(.Cells(i, 1).Value)(1, j) Then
If x Is Nothing Then
Set x = .Cells(i, j)
Else
Set x = Union(x, .Cells(i, j))
End If
End If
Next
Else
.Rows(i).Interior.ColorIndex = 43
End If
Next
If Not x Is Nothing Then x.Interior.ColorIndex = 6
End With
Application.ScreenUpdating = True
End Subklin89