Conditional Formatting

Liên hệ QC

Duong gia

Thành viên thường trực
Tham gia
15/1/07
Bài viết
352
Được thích
118
Chào các bác, trong bảng tính Excel tôi muốn định dạng màu chữ trong bảng tính như sau: VD: ở cột B Nếu 2 chữ đầu tiên là PT (tức là phiếu thu PT01) thì toàn bộ dòng đó có chữ màu xanh. Nếu 2 chữ đầu tiên là PC (PC01) thì toàn bộ dòng đó có chữ màu đỏ . Nếu 2 chữ đầu tiên là PX (PX01) thì toàn bộ dòng đó có chữ màu cam . Nếu 2 chữ đầu tiên là PN (PN01) thì toàn bộ dòng đó có chữ màu tím ......... thì làm thế nào mong các bác giúp đỡ. Thanks
 
Lần chỉnh sửa cuối:
Chào các bác, trong bảng tính Excel tôi muốn định dạng màu chữ trong bảng tính như sau:
VD: ở cột B
Nếu 2 chữ đầu tiên là PT (tức là phiếu thu PT01) thì toàn bộ dòng đó có chữ màu xanh.
Nếu 2 chữ đầu tiên là PC (PC01) thì toàn bộ dòng đó có chữ màu đỏ .
Nếu 2 chữ đầu tiên là PX (PX01) thì toàn bộ dòng đó có chữ màu cam .
Nếu 2 chữ đầu tiên là PN (PN01) thì toàn bộ dòng đó có chữ màu tím .........
thì làm thế nào mong các bác giúp đỡ. Thanks

Vì là hơn 3 điều kiện nên bạn phải dùng VBA thôi, chứ CF không làm được bạn ạ (Nếu dùng O2003)

Thân!
 
Chào các bác, trong bảng tính Excel tôi muốn định dạng màu chữ trong bảng tính như sau:
VD: ở cột B
Nếu 2 chữ đầu tiên là PT (tức là phiếu thu PT01) thì toàn bộ dòng đó có chữ màu xanh.
Nếu 2 chữ đầu tiên là PC (PC01) thì toàn bộ dòng đó có chữ màu đỏ .
Nếu 2 chữ đầu tiên là PX (PX01) thì toàn bộ dòng đó có chữ màu cam .
Nếu 2 chữ đầu tiên là PN (PN01) thì toàn bộ dòng đó có chữ màu tím .........
thì làm thế nào mong các bác giúp đỡ. Thanks
Ctr A, cho toàn bộ chữ là màu xanh. Còn lại 3 điều kiện.
 
Bác Okebab giúp em với. Thanks
Tôi làm được không. Bạn xem chỉnh lại thông sô màu nhé.
PHP:
Sub ToMau()
Dim eR As Long, SoPh As String
Sheet1.Select
Cells.Interior.ColorIndex = xlNone
eR = [A65000].End(xlUp).Row
For i = 1 To eR
    SoPh = Left(Range("A" & i), 2)
    Select Case SoPh
        Case "PT"
            With Rows(i).Interior
                .ColorIndex = 6
            End With
        Case "PC"
            With Rows(i).Interior
                .ColorIndex = 3
            End With
        Case "PN"
            With Rows(i).Interior
                .ColorIndex = 4
            End With
        Case "PX"
            With Rows(i).Interior
                .ColorIndex = 5
            End With
    End Select
Next
End Sub
 
Tôi làm được không. Bạn xem chỉnh lại thông sô màu nhé.
PHP:
Sub ToMau() Dim eR As Long, SoPh As String Sheet1.Select Cells.Interior.ColorIndex = xlNone eR = [A65000].End(xlUp).Row For i = 1 To eR     SoPh = Left(Range("A" & i), 2)     Select Case SoPh         Case "PT"             With Rows(i).Interior                 .ColorIndex = 6             End With         Case "PC"             With Rows(i).Interior                 .ColorIndex = 3             End With         Case "PN"             With Rows(i).Interior                 .ColorIndex = 4             End With         Case "PX"             With Rows(i).Interior                 .ColorIndex = 5             End With     End Select Next End Sub
Cám ơn Bác ThuNghi, mình muốn tô chữ (chữ hay số) màu chứ không phải tô màu nền (background). Cám ơn bác nhiều.
 
Lần chỉnh sửa cuối:
Mr Okebab
Vì là hơn 3 điều kiện nên bạn phải dùng VBA thôi, chứ CF không làm được bạn ạ (Nếu dùng O2003)

Thân!
Conditional Formatting vẫn làm được với yêu cầu số màu <= 4 (Office 2003)

Ctr A, cho toàn bộ chữ là màu xanh. Còn lại 3 điều kiện.

Chính xác
Với 4 màu thì Conditional Formatting dư sức làm (Office 2003) nhưng nếu yêu cầu số màu nhiều hơn 4 (>= 4) thì phải cần đến VBA
 
Nếu của tác giả Topic nhiều Records, nên xài cái này!

Tôi làm được không. Bạn xem chỉnh lại thông sô màu nhé.
PHP:
Option Explicit:           Option Base 1
Sub Color4()
ReDim rRng(4, 2) As Range
Dim bBb As Byte
Dim StrC As String, GPE_Address As String
 With Worksheets(1).Range("B2:B" & [b65432].End(xlUp).Row)
   For bBb = 1 To 4
      StrC = Choose(bBb, "PT", "PC", "PN", "PX")
      Set rRng(bBb, 1) = .Find(StrC, LookIn:=xlValues)
      If Not rRng(bBb, 1) Is Nothing Then
         GPE_Address = rRng(bBb, 1).Address
         Do
               If rRng(bBb, 2) Is Nothing Then
                  Set rRng(bBb, 2) = rRng(bBb, 1).Offset(, -1).Resize(, 9)
               Else
                  Set rRng(bBb, 2) = Union(rRng(bBb, 2), _
                     rRng(bBb, 1).Offset(, -1).Resize(, 9))
               End If
               Set rRng(bBb, 1) = .FindNext(rRng(bBb, 1))
         Loop While Not rRng(bBb, 1) Is Nothing And rRng(bBb, 1).Address <> GPE_Address
      End If
   Next bBb
End With
For bBb = 1 To 4
   rRng(bBb, 2).Font.ColorIndex = bBb + 2
Next bBb
End Sub
Trông có vẻ dài, nhưng có thể đua tốc độ với ThuNghi được, một khi số Records của bạn là đồ sộ.
 

File đính kèm

  • GPE.COM.rar
    9.8 KB · Đọc: 45
Conditional Formatting vẫn làm được với yêu cầu số màu <= 4 (Office 2003)



Chính xác
Với 4 màu thì Conditional Formatting dư sức làm (Office 2003) nhưng nếu yêu cầu số màu nhiều hơn 4 (>= 4) thì phải cần đến VBA
Với 4 điều kiện trở xuống tôi ũng hộ việc dùng CF (nhẹ nhàng và thoải mái vô cùng, ai ai cũng làm đươc)
Nó đây!
 

File đính kèm

  • CF_4DK.xls
    17.5 KB · Đọc: 85
Web KT
Back
Top Bottom