Mettre en evidence les données qui ne sont pas des doublons

Comment comparer 2 colonnes pour mettre en évidence les données qui ne sont pas des doublons (deux colonnes ds deux feuilles differentes d'un meme fichier)

voir l'exemple ci-joint : 2 colonnes (feuille 1 et feuille 2) comment mettre en evidence les données qui ne sont pas des doublons et donc ds l'exemple la cellule "peut-être"

Ce n'est pas grave s'ils ne sont pas vis à vis les mêmes lignes, je veux seulement que tout ce qui n'est pas un doublon, soit mis en évidence.

15exemple.zip (4.69 Ko)

Salut,

Avec la fonction NB.SI, moi j'aime bien cette solution je pense qu'il t'en serra PRESCRITE des différentes mais celle la marche bien.

Ton fichier :

26exemple.zip (4.79 Ko)

Cdlt,

Bonjour,

j'arrive trop tard NB.SI peut aider , tu as déjà une solution

Mais s'il y a des milliers de données, il faudra passer par du vba

P.

En effet, j'ai des milliers de données. Est-ce que c'est compliqué à faire en VBA?

Merci!

pamy66 a écrit :

En effet, j'ai des milliers de données. Est-ce que c'est compliqué à faire en VBA?

Merci!

Si personne n'intervient entretemps, je te ferai un exemple au plus vite

P.

Merci beaucoup!!!!!

Bonjour,

Tiens, voilà une proposition de solution. A coller dans un module standard. La macro regardera tout tes doublons, et colorera les cellules en doublons en rouge. Je t'ai mis les commentaires au cas ou tu veuilles adapter ça!

Option Explicit

Sub Doublons()

Dim tabdata As Variant
Dim tabdata2 As Variant
Dim tabdoublon() 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

'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

'on compare pour chaque ligne non vide
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) = 1: Exit For
        Next j

   End If
Next i

'On colore les cellules contenant un doublon
Application.ScreenUpdating = False
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
Application.ScreenUpdating = False

End Sub

Dit moi si c'est bon pour toi!

Yann

wow merci! Je l'essaye et je t'en reparle!

re,

tu ne précises pas si la valeur ou la donnée doit être unique par rapport à la feuille1 ou à la feuille 2 ou pour toutes donnes confondues , feuille1 et feuille2 ...

P.

Pour toute les données.

Chaque feuille à des données uniques qui doivent se retrouver dans les autres feuilles (donc des doublons, et c'est ce que je veux).

Je veux identifier celles qui apparaissent seulement 1 fois.

Dis-le moi si ce n'est pas clair

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

pamy66 a écrit :

Pour toute les données.

Chaque feuille à des données uniques qui doivent se retrouver dans les autres feuilles (donc des doublons, et c'est ce que je veux).

Je veux identifier celles qui apparaissent seulement 1 fois.

Dis-le moi si ce n'est pas clair

Donc d'éventuels doublons dans le même onglet...

mais si unique , ça peut néanmoins se retrouver en SOLO ou plus dans les autres onglets, c'est bien cela ?

P.

Rechercher des sujets similaires à "mettre evidence donnees qui pas doublons"