Hiển thị, đổi màu theo điều kiện

Liên hệ QC

vungoc

Thành viên tiêu biểu
Tham gia
2/8/06
Bài viết
633
Được thích
2,603
Nghề nghiệp
Quản lý
Chào các anh chị trên diễn đàn giaiphapexcel !
Mình có files này muốn post lên nhờ anh chị giúp đỡ (nội dung mình ghi chi tiết trong files excel).
Chúc các anh, chị luôn vui, khỏe !
Mr. Vũ Ngọc (0903744734)
ngocv-hr@mykolor.com
ngocv_hr@yahoo.com
 

File đính kèm

  • Hien thi mau cua tung dong du lieu theo dieu kien.xls
    49.5 KB · Đọc: 172
Bạn thử dùng macro sau:

Mã:
Option Explicit
[b]Sub Color3C() [/b]
 Dim SChu As String:    Dim Ij As Long
 Dim Rng As Range:       Ij = 7
 Do
    Ij = 1 + Ij:                            SChu = "B" & CStr(Ij)
    Set Rng = Range(SChu):                  Rng.Select
    With Selection
        If Len(.Value) < 1 Then Exit Do
        If .Offset(0, 18).Value = "Nghi viec" Then ToMau Range("A" & CStr(.Row) & ":V" & CStr(.Row)), 34
        If .Offset(0, 19).Value = "Thu viec" Then ToMau Range("A" & CStr(.Row) & ":V" & CStr(.Row)), 36
        If .Offset(0, 20).Value > 12 Then ToMau Range("A" & CStr(.Row) & ":V" & CStr(.Row)), 38
    End With
 Loop
 Range("B7").Select [b]
End Sub
[COLOR="Blue"]'     *    *        *    *        *    *[/COLOR]
Sub ToMau(Rng1 As Range, bColor As Byte) [/b]
    Rng1.Interior.ColorIndex = bColor:              Rng1.Interior.Pattern = xlSolid
[b]End Sub[/b]
 
Chào bạn SA_DQ !
Mình rất mừng khi nhận được sự giúp đỡ của bạn, tuy nhiên về kiến thức VB mình cũng chưa được hiểu nhiều - bạn cho mình hỏi thêm một số vấn đề:
- Làm thế nào để khi các cột 19, 20, 21 khi xuất hiện các điều kiện "Nghi viec"; "Thu viec"; ">12 ngày" thì các dòng tương ứng sẽ tự động hiển thị màu. & cũng trên các dòng đã được tô màu này nếu các điều kiện trên mất đi thì những dòng đó sẽ tự động mất đi chế độ tô màu.
Rất mong nhận được sự giúp đỡ của bạn cùng các bạn khác trên diễn đàn này.
Xin chân thành cảm ơn / Chúc bạn luôn mạnh khỏe - thành đạt trong cuộc sống !
Mr. Vũ Ngọc (0903744734)
 
(/ấn đề của bạn còn lại là:

(ó vài fương án:
* Tạo tổ hợp fím nóng cho macro này; /(hi đó lúc nào cần thì bạn ấn cho nó cập nhật màu cho bạn;
* Tạo nút lệnh trên trang tính; (--- như trên---)
* Có thể gắn macro này trong Code của SheetName; Khi đó vùng nào được chỉ định trong code được bạn cập nhật sẽ tô màu theo iêu cầu của bạn;
* . . . .
. . . . . .

/)/hững vấn đề này bạn tìm trên diễn đàn trước đi nha!
Vấn đề muốn mất màu dòng đã tô thì fải viết lại macro 1 chút!
 
Lần chỉnh sửa cuối:
Chào bạn SA_DQ !
Cảm ơn bạn đã quan tâm & nhiệt tình giúp đỡ ! (mình xin đính chính chút xíu)
Cách tạo nút lệnh trên trang tính và dùng tổ hợp phím nóng để thực hiện lệnh marcro này thì mình đã biết làm (vấn đề mình nêu là muốn lệnh này tự động thực hiện khi tại những cột tương ứng xuất hiện điều kiện, có được không vậy bạn - Thôi vấn đề này giải quyết sau cũng được). Còn bây giờ mình rất mong bạn giải quyết giùm mình vấn đề mất màu dòng đã tô giùm nhé / Thanks !
 
/-(ai trong /)/(ột đây!

Còn bây giờ mình rất mong bạn giải quyết giùm mình vấn đề mất màu dòng đã tô giùm nhé
Mã:
Option Explicit [b]
Sub Color3C()[/b]
 Dim SChu As String:    Dim Ij As Long
 Dim Rng As Range:       Ij = 7
 Do
    Ij = 1 + Ij:                            SChu = "B" & CStr(Ij)
    Set Rng = Range(SChu):                  Rng.Select
    With Selection
        If Len(.Value) < 1 Then Exit Do
        If .Offset(0, 18).Value = "Nghi viec" Then
            ToMau Range("A" & CStr(.Row) & ":V" & CStr(.Row)), 34
        ElseIf .Offset(0, 19).Value = "Thu viec" Then
            ToMau Range("A" & CStr(.Row) & ":V" & CStr(.Row)), 36
        ElseIf .Offset(0, 20).Value > 12 Then
            ToMau Range("A" & CStr(.Row) & ":V" & CStr(.Row)), 38
        Else
            ToMau Range("A" & CStr(.Row) & ":V" & CStr(.Row)), 2
        End If
    End With
 Loop
 Range("B7").Select[b]
End Sub[color="Blue"]
'     *    *        *    *        *    *[/color]
Sub ToMau(Rng1 As Range, bColor As Byte)[/b]
    Rng1.Interior.ColorIndex = bColor:              Rng1.Interior.Pattern = xlSolid
[b]End Sub[/b]

Vấn đề mình nêu là muốn lệnh này tự động thực hiện khi tại những cột tương ứng xuất hiện điều kiện, có được không vậy bạn

Mã:
[b]Private Sub Worksheet_Change(ByVal Target As Range)[/b]
 
 If Not Intersect(Target, Range("T7:V99")) Is Nothing Then
    With Target
    If .Value = "Nghi Viec" Or .Value = "Thu Viec" Or .Value > 12 Then Color3C
    End With
 End If[b]
End Sub[/b]
 
Ban su dung format conditionalde to mau.
Goi file tra loi Tra loi hien thi mau.xls
 

File đính kèm

  • Tra loi hien thi mau.zip
    12.2 KB · Đọc: 233
Lần chỉnh sửa cuối:
Cảm ơn giải pháp của bạn SA_DQ, với giải pháp này mình có thể thực hiện được định dạng màu cho rất nhiều điều kiện.
Còn nếu chỉ thực hiện tô màu cho các dòng với từ 3 điều kiện trở xuống thì không gì hay bằng giải pháp của ban phamduylong.
Trân trọng đón nhận và cảm ơn trí tuệ, kiến thức, kinh nghiệm và sự sẻ chia của mọi người tham gia trên diễn đàn này. Cảm ơn các anh chị Ban quản trị giaiphapexcel đã tạo ra trang web và diễn đàn này giúp cho mình học được rất nhiều điều cần thiết phục vụ cho công việc (những điều này bấy lâu mình phải làm thủ công mất thời gian, kém hiệu quả và không pro...). Chúc mọi người ngày nghỉ cuối tuần thật vui vẻ - hạnh phúc (Mr. Vũ Ngọc - 0903744734)
 
vungoc đã viết:
Cảm ơn giải pháp của bạn SA_DQ, với giải pháp này mình có thể thực hiện được định dạng màu cho rất nhiều điều kiện.
Còn nếu chỉ thực hiện tô màu cho các dòng với từ 3 điều kiện trở xuống thì không gì hay bằng giải pháp của ban phamduylong.
Trân trọng đón nhận và cảm ơn trí tuệ, kiến thức, kinh nghiệm và sự sẻ chia của mọi người tham gia trên diễn đàn này. Cảm ơn các anh chị Ban quản trị giaiphapexcel đã tạo ra trang web và diễn đàn này giúp cho mình học được rất nhiều điều cần thiết phục vụ cho công việc (những điều này bấy lâu mình phải làm thủ công mất thời gian, kém hiệu quả và không pro...). Chúc mọi người ngày nghỉ cuối tuần thật vui vẻ - hạnh phúc (Mr. Vũ Ngọc - 0903744734)

Cũng không hẳn chỉ 3 ĐK đâu bạn ạ. Nếu được tạo cột phụ thì ta có thể tạo được rất nhiều điều kiện đấy.
Thân!
 
Theo mình đoạn mã của Bác SA_DQ thì không cần thêm câu lệnh Private Sub Worksheet_Change(ByVal Target As Range) mà có thể đặt Sub Color3C() = Worksheet_Change. Không biêt đúng không.
 
Web KT
Back
Top Bottom