Bonjour,
Du coup je m'apperçoit que ma procédure fait exactement le contraire de ce que tu voulais!
Ci-dessous la version corrigée, qui mettra en valeur les cellules qui ne sont pas des doublons !
Option Explicit
Sub Doublons()
Dim tabdata As Variant
Dim tabdata2 As Variant
Dim tabdoublon() As Long
Dim tabdoublon2() as long
Dim i As Long, j As Long
Dim lgSh1 As Long
Dim lgSh2 As Long
'On recupere la taille des colonnes à comparer => Changer le nom de feuille et les lettres de colonnes pour adapter
lgSh1 = ThisWorkbook.Sheets("Sheet1").Range("A65536").End(xlUp).Row
lgSh2 = ThisWorkbook.Sheets("Sheet2").Range("A65536").End(xlUp).Row
'On redimensionne le tableau de sortie
ReDim tabdoublon(lgSh1, 0) As Long
ReDim tabdoublon2(lgSh2, 0) As Long
'On recupere les data => Changer le nom de feuille et les lettres de colonnes pour adapter
tabdata = ThisWorkbook.Sheets("Sheet1").Range("A1:A" & lgSh1).Value
tabdata2 = ThisWorkbook.Sheets("Sheet2").Range("A1:A" & lgSh2).Value
for i = 1 to lgSh2
tabdoublon2(i, 0) = 1
tabdoublon(i, 0) = 1
NExt i
'on compare pour chaque ligne non vide de la feuille 1
For i = 1 To lgSh1
If tabdata(i, 1) <> "" Then
For j = 1 To lgSh2
If tabdata(i, 1) = tabdata2(j, 1) Then tabdoublon(i, 0) = 0: tabdoublon2(j,0) = 0: Exit For
Next j
Else
tabdoublon(i, 0) = 0
End If
Next i
'on compare pour chaque ligne non vide de la feuille 2
For i = 1 To lgSh2
If tabdata2(i, 1) <> "" and tabdoublon2(i, 0) = 1 Then
For j = 1 To lgSh1
If tabdata2(i, 1) = tabdata(j, 1) Then tabdoublon2(i, 0) = 0: tabdoublon(j,0) = 0: Exit For
Next j
Elseif tabdata2(i, 1) = "" then
tabdoublon2(i, 0) = 0
End If
Next i
'On colore les cellules ne contenant de doublon
Application.ScreenUpdating = False
'Sur la feuille 1
For i = 1 To lgSh1
If tabdoublon(i, 0) = 1 Then
'Ici idem, on peux changer le nom de la feuille et la lettre de la colone pour adapter.
'On peux aussi changer le code couleur de remplissage (ici rouge! ;) )
ThisWorkbook.Sheets("Sheet1").Range("A" & i).Interior.Color = RGB(255, 0, 0)
End If
Next i
'Et sur la feuille 2
For i = 1 To lgSh2
If tabdoublon2(i, 0) = 1 Then
'Ici idem, on peux changer le nom de la feuille et la lettre de la colone pour adapter.
'On peux aussi changer le code couleur de remplissage (ici rouge! ;) )
ThisWorkbook.Sheets("Sheet2").Range("A" & i).Interior.Color = RGB(255, 0, 0)
End If
Next i
Application.ScreenUpdating = False
End Sub
Naturellement on pourrai aussi copier directement les valeurs qui ne sont pas en doublon d'une feuille vers l'autre.
Dit moi si c'est bon pour toi,
Yann