jason > 31-12-16, 11:10 AM
ongke0711 > 31-12-16, 12:18 PM
Private Sub Worksheet_Activate()
Call FindDublicate
End Sub
Sub FindDublicate()
Dim rng1, rng2, cell1, cell2 As Range
Set rng1 = Worksheets("Sheet1").Range("I2:I100")
Set rng2 = Worksheets("Sheet2").Range("I2:I100")
For Each cell1 In rng1
For Each cell2 In rng2
If IsEmpty(cell2) Then Exit For
If cell1.Value = cell2.Value Then
cell1.Font.Bold = True
cell1.Interior.ColorIndex = 3
cell1.Interior.Pattern = xlSolid
cell2.Font.Bold = True
cell2.Interior.ColorIndex = 3
cell2.Interior.Pattern = xlSolid
MsgBox "Duplicate StyleNo " & cell1 & " , Please check again !", vbCritical
End If
Next cell2
Next cell1
End Sub
jason > 31-12-16, 03:18 PM
jason > 05-01-17, 03:24 PM
hieuvn > 05-01-17, 04:13 PM
(05-01-17, 03:24 PM)jason Đã viết: 1.code của bạn mình đã xem và áp dụng thử thì chỉ được 2 sheet và chưa tìm được cách so sánh nhiều sheet ngẫu nhiên có dữ liệu trùng. ví dụ mình có 20sheet thì việc so sánh như thế nào .haha đã theo cách này thì theo ngu ý của mình cứ đổ data của tất cả các sheet vào sheet 1 rồi filter 1 lần trước khi update lên server. Mình tò mò xíu server dùng SQL server hay là loại khác?
2.với mình muốn tô màu nguyên dòng khi tìm được dữ liều trùng thì có thể được không (cái này tìm đến chóng mặt mắc ói luôn mà cũng không thấy )?
thanks !
jason > 05-01-17, 04:59 PM
(05-01-17, 04:13 PM)hieuvn Đã viết: haha đã theo cách này thì theo ngu ý của mình cứ đổ data của tất cả các sheet vào sheet 1 rồi filter 1 lần trước khi update lên server. Mình tò mò xíu server dùng SQL server hay là loại khác?
Private Sub Worksheet_Activate()
Call FindDuplicate
End Sub
Sub FindDuplicate()
Dim ws As Worksheet
Dim cell As Range
Dim myrng As Range
Dim clr As Long
Dim lastcell As Range
Dim i As Long
Dim lastrow As Long
Set ws = ThisWorkbook.ActiveSheet
Set myrng = ws.Range("i2:i" & Range("i" & ws.Rows.Count).End(xlUp).Row)
With myrng
Set lastcell = .Cells(.Cells.Count)
End With
myrng.Interior.ColorIndex = xlNone
clr = 3
For Each cell In myrng
If Application.WorksheetFunction.CountIf(myrng, cell) > 1 Then
If myrng.Find(what:=cell, lookat:=xlWhole, MatchCase:=False, after:=lastcell).Address = cell.Address Then
cell.Interior.ColorIndex = clr
clr = clr + 1
i = i + 1
Else
cell.Interior.ColorIndex = myrng.Find(what:=cell, lookat:=xlWhole, MatchCase:=False, after:=lastcell).Interior.ColorIndex
End If
End If
Next
If i > 0 Then
MsgBox "Found " & i & " STYLE NO had duplicate. Please check again !", vbCritical
Else
Exit Sub
End If
End Sub
ongke0711 > 05-01-17, 05:17 PM
jason > 05-01-17, 05:51 PM
ongke0711 > 06-01-17, 12:09 AM