Je souhaite comparer les valeurs du jour en cours avec celles du jour précédent et mettre en évidence les valeurs en double pour chaque élément par ligne, mes données ont plusieurs lignes et j'ai des macros qui importent des données à partir d'un fichier texte tous les jours. Données de test:

enter image description here

Voici le code que j'essaie:

Sous-doublons ()

Dim refRng As Range, cell As Range
Application.ScreenUpdating = False
With Worksheets("Sheet1")
    Set refRng = .Range("B2", .Cells(.Rows.Count, "F").End(xlUp)).SpecialCells(XlCellType.xlCellTypeConstants)
    For Each cell In .Range("C2", .Cells(.Rows.Count, "D").End(xlUp)).SpecialCells(XlCellType.xlCellTypeConstants)
        If cell.value <> 0 Then
            If Not refRng.Find(what:=cell.value, LookIn:=xlFormulas, lookat:=xlWhole, MatchCase:=False) Is Nothing Then cell.Interior.color = RGB(255, 255, 0)
        End If
    Next cell
End With
Application.ScreenUpdating = True

End Sub

0
sumit 1 août 2017 à 14:11

2 réponses

Meilleure réponse

J'ai modifié votre code pour obtenir le résultat. Le code suivant commencera de la colonne B à la colonne D. Modifiez vos colonnes de plage en conséquence.

Dim cell As Range

Application.ScreenUpdating = False

With Worksheets("Sheet1")
    'starts with Column C and matches C with B, D with C and so on..
    For Each cell In .Range("C2", .Cells(.Rows.Count, "D").End(xlUp)).SpecialCells(XlCellType.xlCellTypeConstants)
        'cell.Cells(1, 0) will refer previous cell
        If cell.Value = cell.Cells(1, 0) Then
            cell.Interior.Color = RGB(255, 255, 0)
            cell.Cells(1, 0).Interior.Color = RGB(255, 255, 0)
        End If
    Next cell
End With
0
Kundan Bhati 2 août 2017 à 03:55

Pour chaque paire count les occurrences de chaque valeur. Si cela se produit plus d'une fois, color il.

Modifier: comparez deux valeurs adjacentes, si elles correspondent, coloriez-les.

0
David G 1 août 2017 à 11:40