Đổi màu các ô khi so sánh giữa các Sheet trong File (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

phạm văn trình

Thành viên chính thức
Tham gia
24/10/07
Bài viết
89
Được thích
0
Chào các bạn, tôi xin được hỏi một chút về đổi mầu giữa các sheet có chứa số liệu với nhau. Trong file đính kèm, ví dụ: Sheet BANG LUONG, cột "hệ số" so với cột "hệ số" của sheet THONG TIN khi: 2 cột của 2 sheet này giống nhau(bằng nhau) thì không có màu; khi nó khác nhau thì cả hai bên cột này đều báo màu lên(tức là không bằng nhau). Tuy nhiên đang sử dụng Conditional Formatting. Trân trọng cảm ơn !
 

File đính kèm

Chào các bạn, tôi xin được hỏi một chút về đổi mầu giữa các sheet có chứa số liệu với nhau. Trong file đính kèm, ví dụ: Sheet BANG LUONG, cột "hệ số" so với cột "hệ số" của sheet THONG TIN khi: 2 cột của 2 sheet này giống nhau(bằng nhau) thì không có màu; khi nó khác nhau thì cả hai bên cột này đều báo màu lên(tức là không bằng nhau). Tuy nhiên đang sử dụng Conditional Formatting. Trân trọng cảm ơn !
Tóm lại ý bạn muốn gì: Là đổi màu cho Sheet tab hay đổi màu các cell trong sheet
Đổi thế nào bạn cứ làm bằng tay vào sheet cho mọi người xem thử
(Đọc xong mà chẳng hiểu bạn đang yêu cầu cái gì nữa)
 
Upvote 0
Chào các bạn, tôi xin được hỏi một chút về đổi mầu giữa các sheet có chứa số liệu với nhau. Trong file đính kèm, ví dụ: Sheet BANG LUONG, cột "hệ số" so với cột "hệ số" của sheet THONG TIN khi: 2 cột của 2 sheet này giống nhau(bằng nhau) thì không có màu; khi nó khác nhau thì cả hai bên cột này đều báo màu lên(tức là không bằng nhau). Tuy nhiên đang sử dụng Conditional Formatting. Trân trọng cảm ơn !

Mình dùng code. Bạn thử xem có đúng ý bạn chưa nha!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Xin cảm ơn, tôi xin làm lại ro hơn.
Vẫn phải hỏi lại lần nữa: Tôi nghĩ là đâu chỉ so cột Hệ Số không thôi ---> Lý ra phải tính luôn cột TÊN chứ ---> Với tên ấy, hệ số ấy nhưng nếu sang sheet khác mà cố khác biệt thì sẽ tô màu, đúng không?
 
Upvote 0
Xin cảm ơn, tôi xin làm lại ro hơn.
Nếu trong file của bạn chỉ có 2 sheet như trong bài và bạn chắc cú là danh sách ở 2 sheet hoàn toàn trùng khớp với nhau ở cột B thì bạn thử làm thế này
Bấm Alt+ F11 ==> This Workbook ==> chép cái này vào
Mã:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.ScreenUpdating = False
    Dim VungTT, VungBL, I
        Set VungTT = Sheets("thong tin").Range(Sheets("thong tin").[d4], Sheets("thong tin").[d1000].End(xlUp))
        Set VungBL = Sheets("bang luong").Range(Sheets("bang luong").[d4], Sheets("bang luong").[d1000].End(xlUp))
            VungTT.Interior.ColorIndex = xlNone:  VungBL.Interior.ColorIndex = xlNone
                For I = 1 To VungTT.Rows.Count - 1
                    If VungTT(I) <> VungBL(I) Then
                        VungTT(I).Interior.ColorIndex = 3
                        VungBL(I).Interior.ColorIndex = 3
                    End If
                Next
Application.ScreenUpdating = True
End Sub
Chép xong rồi ...là xong, chọn sheet nào thì code sẽ đổi màu những cell ở cột D không trùng của sheet đó
Thân
 
Upvote 0
Cảm ơn anh ndu 96081631, câu hỏi của anh đúng như vậy. Thông cảm tôi ko giỏi nhiều về Excel. Kính mong các anh giup đỡ.
 
Upvote 0
Cam ơn anh concogia, tôi đã thư code cua anh rồi. Đã đúng theo ý của tôi. Nhưng thực tế trên các sheet không khớp và không trùng nhau, mà thông tin của từng cá nhân là đúng. Xin các anh giup đỡ. Trân trọng cảm ơn.
 

File đính kèm

Upvote 0
Cam ơn anh concogia, tôi đã thư code cua anh rồi. Đã đúng theo ý của tôi. Nhưng thực tế trên các sheet không khớp và không trùng nhau, mà thông tin của từng cá nhân là đúng. Xin các anh giup đỡ. Trân trọng cảm ơn.

Mình hỏi bạn nha: Bạn chỉ muốn tô màu ở cột hệ sổ của Sheet BANG LUONG khi các hệ số này không bằng bên Sheet THONG TIN đúng không?
 
Upvote 0
Cam ơn anh concogia, tôi đã thư code cua anh rồi. Đã đúng theo ý của tôi. Nhưng thực tế trên các sheet không khớp và không trùng nhau, mà thông tin của từng cá nhân là đúng. Xin các anh giup đỡ. Trân trọng cảm ơn.
Để khỏi phải sửa nhiều lần, theo mình, bạn phải cho biết mình phải lấy cột nào làm chuẩn để dò, nếu trong file của bạn có dữ liệu duy nhất ( thí dụ Mã Nhân viên chẳng hạn) mình sẽ tóm cột đó làm chuẩn để dò, nếu trùng Mã mà khác hệ số thì tô màu, dùng tên cũng được (nếu bạn muốn) nhưng nếu trong danh sách của bạn có 2 hoặc nhiều hơn 2 người trùng tên là code mình bị "tèo" ngay. Híc
Chờ ý kiến của bạn
Thân
 
Upvote 0
Cảm ơn anh concogia, cảm ơn các anh !, tôi xin lỗi và đã hiểu ra vấn đề. Tôi gửi lên diễn đàn File này để mong các anh giúp đỡ. Tôi lấy cột Mã NV(bên sheet THONG TIN) làm chuẩn để đối chiếu bên sheet BANG LUONG và có thể thêm 1 đến 2 sheet nữa; Với Mã NV ấy, tên ấy, hệ số ấy nhưng nếu sang sheet khác mà có khác biệt thì sẽ tô màu cho cả hai hoặc nhiều sheet. Kính mong các anh làm hộ.
 

File đính kèm

Upvote 0
Cảm ơn anh concogia, cảm ơn các anh !, tôi xin lỗi và đã hiểu ra vấn đề. Tôi gửi lên diễn đàn File này để mong các anh giúp đỡ. Tôi lấy cột Mã NV(bên sheet THONG TIN) làm chuẩn để đối chiếu bên sheet BANG LUONG và có thể thêm 1 đến 2 sheet nữa; Với Mã NV ấy, tên ấy, hệ số ấy nhưng nếu sang sheet khác mà có khác biệt thì sẽ tô màu cho cả hai hoặc nhiều sheet. Kính mong các anh làm hộ.
Bạn thử cái này xem sao
Chọn sheet có tên "BANG LUONG" hay "THONG TIN" code sẽ làm việc
Có gì chưa đúng ý bạn, mình bàn sau nhé
Thân
 

File đính kèm

Upvote 0
Cảm ơn anh concogia, Tôi đã làm được rồi theo code của anh. Giả sử tôi lấy cột Mã NV(bên sheet THONG TIN) làm chuẩn để đối chiếu bên sheet BANG LUONG, nếu 1 trong 2 sheet này thay đổi thông tin của 1 dòng nào đó thì có đổi màu ko ạ. cảm ơn anh, mong anh thông cảm giup đỡ.
 
Upvote 0
Cảm ơn anh concogia, Tôi đã làm được rồi theo code của anh. Giả sử tôi lấy cột Mã NV(bên sheet THONG TIN) làm chuẩn để đối chiếu bên sheet BANG LUONG, nếu 1 trong 2 sheet này thay đổi thông tin của 1 dòng nào đó thì có đổi màu ko ạ. cảm ơn anh, mong anh thông cảm giup đỡ.
Thì bạn......cứ đổi dữ liệu "búa xua" đi xem sao, thí dụ bạn đổi lung tung ở sheet "THONG TIN" xong bạn chọn sheet "BANG LUONG" xem sao, sau đó bạn chọn lại sheet "THONG TIN" xem có gì xảy ra ( bạn làm ngược lại cũng được). code không quan tâm về vị trí và nội dung của dỏng, cứ tìm mã ở 2 sheet trùng nhau thì so sánh hệ số, nếu hệ số khác nhau thì tô màu còn giống thì chẳng làm gì cả
Thân
 
Upvote 0
Cảm ơn anh concogia, Tôi đã làm nhưng ko được, kính mong các anh giup đỡ.
Híc, hình như cái này khác một trời một vực với câu hỏi lúc đầu á
Có phải bạn muốn: nếu mã số trùng và cứ 1 trong 4 cell đó mà khác nhau dữ liệu là tô màu cả 4 cell ở cả 2 sheet
Nếu đúng thế thì bạn thử chép cái này đè lên cái cũ giúp mình nhé
Mã:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim Ws, VungTT, VungBL, I, Wf, iHang, DoTT, DoBL
    Set Wf = Application.WorksheetFunction
    Set VungTT = Sheets("THONG TIN").Range(Sheets("THONG TIN").[b3], Sheets("THONG TIN").[b1000].End(xlUp))
    Set VungBL = Sheets("BANG LUONG").Range(Sheets("BANG LUONG").[b4], Sheets("BANG LUONG").[b1000].End(xlUp))
            If ActiveSheet.Name = "THONG TIN" Or ActiveSheet.Name = "BANG LUONG" Then
                VungTT.Offset(, 2).Resize(, 4).Interior.ColorIndex = xlNone
               Union(VungBL.Offset(, 3), VungBL.Offset(, 6), VungBL.Offset(, 16), VungBL.Offset(, 17)).Interior.ColorIndex = xlNone
                On Error Resume Next
                    For I = 1 To VungTT.Rows.Count
                        iHang = Wf.Match(VungTT(I), VungBL, 0)
                        DoTT = VungTT(I).Offset(, 2) & VungTT(I).Offset(, 3) & VungTT(I).Offset(, 4) & VungTT(I).Offset(, 5)
                        DoBL = VungBL(iHang).Offset(, 3) & VungBL(iHang).Offset(, 6) & VungBL(iHang).Offset(, 16) & VungBL(iHang).Offset(, 17)
                        If DoTT <> DoBL Then
                            VungTT(I).Offset(, 2).Resize(, 4).Interior.ColorIndex = 3
                            VungBL(iHang).Offset(, 3).Interior.ColorIndex = 3
                            VungBL(iHang).Offset(, 6).Interior.ColorIndex = 3
                            VungBL(iHang).Offset(, 16).Resize(, 2).Interior.ColorIndex = 3
                        End If
                    Next I
            End If
End Sub
Hy vọng trúng
Thân
 
Upvote 0
Chào các bạn! Mình có ví dụ như thế này mong cac ban giúp, khi minh đánh dấu đổi màu chữ và màu ô ở sheet 1 thì sheet2 và sheet3 tự động đổi màu tương ứng.
 
Upvote 0
Cảm ơn anh concogia, tôi xin lỗi để các anh chờ ý kiến, mặc dù là rất cần các anh giúp đỡ. Đúng như hướng dẫn của anh, tôi xin gửi file nhờ các anh giúp nhé. Cảm ơn nhiều
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Cảm ơn anh concogia, tôi xin lỗi để các anh chờ ý kiến, mặc dù là rất cần các anh giúp đỡ. Đúng như hướng dẫn của anh, tôi xin gửi file nhờ các anh giúp nhé. Cảm ơn nhiều
Có 2 vấn đề
1- Thứ tự các Mã của 2 sheet có giống nhau ??? Mình đề phòng trường hợp khác nhau nhé
2- Nếu bạn biết chắc số khác nhau dưới 54, mình làm thử cho bạn cứ "em" nào mà sửa thì ở 2 sheet nó cùng một màu cho dễ tìm
Mã số ở sheet2 phải luôn luôn có trong sheet1 (vì sheet1 là bảng chuẩn)
Mã:
Public Sub Tim()
Dim d, Ws, MaChuan, MaDo, I, J, M, K
Set Ws = Sheets("THONG TIN CHUAN")
Set MaChuan = Ws.Range(Ws.[b4], Ws.[b10000].End(xlUp)): Set MaDo = Range([b4], [b10000].End(xlUp))
Set d = CreateObject("scripting.dictionary"):  K = 2
    For I = 1 To MaChuan.Rows.Count
        If Not d.exists(MaChuan(I).Value) Then d.Add MaChuan(I).Value, I
    Next I
        For I = 1 To MaDo.Rows.Count
            M = d.Item(MaDo(I).Value)
            For J = 2 To 5
                If MaChuan(M).Offset(, J) <> MaDo(I).Offset(, J) Then
                    K = K + 1
                    MaChuan(M).Offset(, J).Interior.ColorIndex = K
                    MaDo(I).Offset(, J).Interior.ColorIndex = K
                End If
            Next J
        Next I
End Sub
Tạm thời mình tạo nút ở sheet2, muốn kiểm tra thì thò anh tý vào "chơi" nó một phát ( lúc nào cũng được)
Có gì bàn tiếp
Thân
 

File đính kèm

Upvote 0
Cảm ơn anh concogia rất nhiều, đúng ý tôi rồi đó. Ở đây mã NV có thể là rất nhiều, nhưng tuyệt đối không trùng nhau trên Sheet, thứ tự mã NV ở hai sheet ko giống nhau. Tuy nhiên anh có thể làm giúp tiếp hộ nhé: Sau khi sửa đúng các thông tin, màu của 2 Sheet lại không mất đi (tôi muốn nó sửa xong - giống nhau; là không còn màu nữa) và thứ tự các cột của sheet "BANG LUONG" không theo bên Sheet 1, do thêm cột ?. Cảm anh nhiều. Chờ ý kiến của anh
 
Upvote 0
Cảm ơn anh concogia rất nhiều, đúng ý tôi rồi đó. Ở đây mã NV có thể là rất nhiều, nhưng tuyệt đối không trùng nhau trên Sheet, thứ tự mã NV ở hai sheet ko giống nhau. Tuy nhiên anh có thể làm giúp tiếp hộ nhé: Sau khi sửa đúng các thông tin, màu của 2 Sheet lại không mất đi (tôi muốn nó sửa xong - giống nhau; là không còn màu nữa) và thứ tự các cột của sheet "BANG LUONG" không theo bên Sheet 1, do thêm cột ?. Cảm anh nhiều. Chờ ý kiến của anh
Trả về không màu sau khi sửa không có vấn đề gì, thêm tý tẹo code
và thứ tự các cột của sheet "BANG LUONG" không theo bên Sheet 1, do thêm cột
Cái này sao bạn không đưa dữ liệu có cấu trúc đúng như file dữ liệu của bạn, thêm cột là sao??? bạn thường xuyên thêm cột và không biết thêm bao nhiệu cột ( do công việc) hay cấu trúc dữ liệu của bạn khác với bài này ???
Phải hiểu mới hy vọng làm trúng được
Thân
 
Upvote 0
Cảm ơn anh concogia. Thấy anh nói như vậy tôi ngại quá. Đây chính là bảng lương của tôi. để tránh khi nhập số liệu ở "BANG LUONG" sai so với "THONG TIN CHUAN" do vậy nhờ các anh giúp đỡ như đã đề nghị ở phía trên. Cảm ơn nhiều.
 

File đính kèm

Upvote 0
Cảm ơn anh concogia. Thấy anh nói như vậy tôi ngại quá. Đây chính là bảng lương của tôi. để tránh khi nhập số liệu ở "BANG LUONG" sai so với "THONG TIN CHUAN" do vậy nhờ các anh giúp đỡ như đã đề nghị ở phía trên. Cảm ơn nhiều.
Híc, có gì đâu mà ngại, giúp được nhau cái gì là giúp thôi mà
Trong sheet "BANG LUONG" của bạn hình như sẽ nhập rất nhiều bộ phận hay nhiều tháng gì đó ( mình hông biết) nên mình đề nghị cách làm thế này
Ở sheet "BANG LUONG", khi bạn bấm nút sẽ hiện lên một bảng, bạn chọn vùng dữ liệu để so sánh
Thí dụ bảng trên cùng bạn chọn $B$4:$B$21 ==> Enter ==> sau khi sửa xong bạn thao tác lại một lần nữa coi như kiểm tra lần cuối
Ở phía dưới bạn chọn $B$28:$B$42 ....
Có gì chưa Ok cứ nói, đừng ngại
Thân
 

File đính kèm

Upvote 0
Cảm ơn anh concogia. Có thể gần trúng rồi đó. Nếu để nút "KIEM TRA" ở gần chỗ đó thì bất tiện quá nhất là khi in ra bảng lương. Anh có thể dùng chuột tự di chuyển hoặc hướng dẫn giúp cách di chuyển ra chỗ khác nhé. Cảm ơn anh nhiều
 
Upvote 0
Cảm ơn anh concogia. Có thể gần trúng rồi đó. Nếu để nút "KIEM TRA" ở gần chỗ đó thì bất tiện quá nhất là khi in ra bảng lương. Anh có thể dùng chuột tự di chuyển hoặc hướng dẫn giúp cách di chuyển ra chỗ khác nhé. Cảm ơn anh nhiều
- Chọn thanh lệnh "Control ToolBox" ==> chọn cái hình giống cây thước vuông "Design Mode" ==>bấm vào nó 1 phát ==> thò anh tý vào cái nút ==> bấm giữ trái ==> đem tới chỗ mình muốn
- Hoặc là: Thò anh tý vào nút ==> bấm phải ==> chọn Format Control ==> chọn Properties ==> bỏ chọn ô Print Object ==> sẽ không in cái nút
Thân
 
Upvote 0
Cảm ơn anh concogia ! tôi đã làm đươc rồi. Đúng là "Ko Thầy đố mà làm lên". Trên diễn đàn anh xứng danh là thành viên cơ hữu. Trong quá trình làm việc có gì không biết, ko hiểu, rất phiền đến các anh, vì tôi ko giỏi về Excel mà. học ko thể vào được nữa. Kính mong các anh thông cảm. Hẹn trên chuyên mục khác nhé.
Tôi mới chuyển sang làm bộ phận kế toán, do vậy ko hiểu nhiều về sổ sách và kế toán máy chuẩn(Chứng từ ghi sổ). Nếu anh biết nhiều cho tôi xin một ít hoặc hương dẫn để tìm, để mua. Cảm ơn nhiều !Chào thân.
 
Upvote 0
Chào anh concogia ! Tối tôi về tải xuống để làm thì ấn vào nút "Kiểm tra" lại ko được là sao hả anh. Nút Kiểm tra này nó ko ra cái bảng để dò tìm vµ nó lên hình này. Mong anh giup đỡ. Cảm ơn nhiều !
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Chào anh concogia ! Tối tôi về tải xuống để làm thì ấn vào nút "Kiểm tra" lại ko được là sao hả anh. Nút Kiểm tra này nó ko ra cái bảng để dò tìm vµ nó lên hình này. Mong anh giup đỡ. Cảm ơn nhiều !
Trong file Word chẳng có gì
Mình thử lại vẫn chạy Ok mà
Bạn thử xem lại
Thân
 
Upvote 0
Chào anh concogia. Anh nói đúng, nó chạy rất tốt. Trong quá trình làm ứng dụng lại phát sinh ra những điều để phiền đến các anh. Cho người khác có thể chỉ xem bên trong nội dung và ko bị xoá sheet"THONG TIN CHUAN", tôi đã vào Tool =>Protection => đặt password: Protect Sheet.... và protect and Share Workbook, thì không thực hiện đuợc nút " Kiem tra" nó báo lỗi. Mong các anh giúp đỡ " thương cho chót ..." Cảm ơn nhiều.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Chào anh concogia. Anh nói đúng, nó chạy rất tốt. Trong quá trình làm ứng dụng lại phát sinh ra những điều để phiền đến các anh. Cho người khác có thể chỉ xem bên trong nội dung và ko bị xoá sheet"THONG TIN CHUAN", tôi đã vào Tool =>Protection => đặt password: Protect Sheet.... và protect and Share Workbook, thì không thực hiện đuợc nút " Kiem tra" nó báo lỗi. Mong các anh giúp đỡ " thương cho chót ..." Cảm ơn nhiều.
Muốn vậy thì phải mở và khóa sheet bằng VBA
Bạn bấm phím Alt + F11 ==> chèn 2 đoạn màu đỏ vào code
Public Sub Tim()
Dim d, Ws, MaChuan, MaDo, I, J, M, K
With Sheets("THONG TIN CHUAN")
.Unprotect "123456"
End With
Set Ws = Sheets("THONG TIN CHUAN")
..........................
............................
Next I
With Sheets("THONG TIN CHUAN")
.Protect "123456"
End With
End Sub
Bạn thay "123456" bằng Pass của bạn
Thân
 
Upvote 0
Cảm ơn anh concogia, code chạy rất tốt. tôi vẫn đề nghị anh giúp đỡ: Trong trường hợp tôi ko muốn người khác họ xoá (Delete)Sheet "THONG TIN CHUAN" và các Sheet khác của tôi đi thì làm thế nào. Kính nhờ anh giúp đỡ. Rất phiền phải không ạ. Cảm ơn rất nhiều. Thân
 
Upvote 0
Cảm ơn anh concogia, code chạy rất tốt. tôi vẫn đề nghị anh giúp đỡ: Trong trường hợp tôi ko muốn người khác họ xoá (Delete)Sheet "THONG TIN CHUAN" và các Sheet khác của tôi đi thì làm thế nào. Kính nhờ anh giúp đỡ. Rất phiền phải không ạ. Cảm ơn rất nhiều. Thân
Muốn
tôi ko muốn người khác họ xoá (Delete)Sheet "THONG TIN
CHUAN" và các Sheet khác của tôi đi thì làm thế nào



thì bạn .......đừng cho người ta sử dụng file của mình. Híc
Nói đùa chứ bảo mật trong Excel là vui thôi chứ chẳng ngăn được nếu người khác đã cố ý + trình độ Excel của họ giỏi ( cỡ Thầy ndu thì khóa cỡ nào cũng vô dụng. Híc)
Khóa Sheet hoặc khóa vùng là mình sợ "quánh tầm bậy tầm bạ" mắc công sửa chứ không khóa được người cố ý phá hoại
Vấn đề này anh em trên diễn đàn đề cập rất nhiều, bạn tìm đọc sẽ nắm rõ hơn
Thân
 
Upvote 0
Híc, có gì đâu mà ngại, giúp được nhau cái gì là giúp thôi mà
Trong sheet "BANG LUONG" của bạn hình như sẽ nhập rất nhiều bộ phận hay nhiều tháng gì đó ( mình hông biết) nên mình đề nghị cách làm thế này
Ở sheet "BANG LUONG", khi bạn bấm nút sẽ hiện lên một bảng, bạn chọn vùng dữ liệu để so sánh
Thí dụ bảng trên cùng bạn chọn $B$4:$B$21 ==> Enter ==> sau khi sửa xong bạn thao tác lại một lần nữa coi như kiểm tra lần cuối
Ở phía dưới bạn chọn $B$28:$B$42 ....
Có gì chưa Ok cứ nói, đừng ngại
Thân

Hi bạn concogia,
Mình đã đọc bài của bạn ở trên. Mình cũng có 1 vấn đề gần tương tự như bạn Phạm Văn Trịnh nhưng phức tạp hơn.
Bạn có thể giải thích ý nghĩa từng dòng trong đoạn code trên để mình tìm hiểu được không, mình chỉ mới làm quen với VB trong excel thui. Mình muốn vận dụng hướng dẫn của bạn để làm thử. Có gì mình sẽ gửi lên diễn đàn nhờ mọi người giúp đỡ.
Cám ơn bạn!
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom