Định Dạng Có Điều Kiện Trong Excel

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi luckytranquan, 3 Tháng năm 2005.

5,292 lượt xem

  1. luckytranquan

    luckytranquan Thành viên hoạt động

    Bài viết:
    31
    Đã được thích:
    0
    Nơi ở:
    HCM
    Chào các anh chị em cao thủ!
    Hôm nay mình vừa đăng ký thành viên mới, đã dạo qua một vòng sân chơi của các bạn. Mình rất thích thú.

    Các bạn có thể cho mình hỏi điều này tý nha:
    Mình nhập liệu trên Excel, mình muốn mỗi khi con trỏ tới dòng nào thì hàng chứa con trỏ đó hoặc một số ô chứa hàng đó đổi màu nền để cho dễ nhìn.

    Bạn nào có thể chỉ mình được, mình vui lắm và hậu tạ sau. Mình suy nghĩ nát não nhưng chưa được, muốn hỏi microsoft luôn đó.

    Thank You,
    :1luvu:
     
    #1
  2. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    Chào bạn,
    Đây là vấn đề đã nhiều người đề cập rồi! Tôi cũng nhớ là tôi đã post bài này rồi.
    Có 2 cách, một là dùng VBA, hai là dùng format condition.
    Để tôi xem lại và post cho bạn.
    Lê Văn Duyệt
     
    #2
  3. luckytranquan

    luckytranquan Thành viên hoạt động

    Bài viết:
    31
    Đã được thích:
    0
    Nơi ở:
    HCM
    Nhờ Anh Post lại cho em nha, hậu tạ nhiều.
    Thank U,
     
    #3
  4. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    Bạn tham khảo đường link này nha.
    http://www.echip.com.vn/echiproot/weblh/ctv/2002/lvduyet/ddtdk.htm
    Ở đây chỉ nói về format conditional thôi. Vài hôm nữa tôi sẽ post lên cho bạn.
    Thân,
    Lê Văn Duỵêt
     
    #4
  5. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    1.Bạn thử cái này trước nha.

    Highlight a row without losing background colors
    Sometimes, in order to more easily see where one is on a worksheet, it's convenient to highlight the entire active row. A common way to do this is to use a Worksheet_SelectionChange() event macro, something like:

    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Cells.Interior.ColorIndex = xlColorIndexNone
    ActiveCell.EntireRow.Interior.ColorIndex = 36
    End Sub
    While this is fine for the majority of occasions when one hasn't set the background color, if the background color is set, the above macro will remove the color. The following macro stores the cell background colors in an array and writes them back to the cells when another cell is selected.

    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Const cnNUMCOLS As Long = 256
    Const cnHIGHLIGHTCOLOR As Long = 36 'default lt. yellow
    Static rOld As Range
    Static nColorIndices(1 To cnNUMCOLS) As Long
    Dim i As Long
    If Not rOld Is Nothing Then 'Restore color indices
    With rOld.Cells
    If .Row = ActiveCell.Row Then Exit Sub 'same row, don't restore
    For i = 1 To cnNUMCOLS
    .Item(i).Interior.ColorIndex = nColorIndices(i)
    Next i
    End With
    End If
    Set rOld = Cells(ActiveCell.Row, 1).Resize(1, cnNUMCOLS)
    With rOld
    For i = 1 To cnNUMCOLS
    nColorIndices(i) = .Item(i).Interior.ColorIndex
    Next i
    .Interior.ColorIndex = cnHIGHLIGHTCOLOR
    End With
    End Sub
    The downside here is that it becomes more difficult to set the background color. The macro is also fairly sluggish when highlighting and restoring all 256 columns. Changing NUMCOLS to a smaller number significantly speeds things up.

    2.
    DÙNG CONDITIONAL FORMATTING ĐỂ THAY ĐỔI ĐỊNH DẠNG Ô HIỆN HÀNHCó người đặt trường hợp là làm thế nào để thay đổi màu trong một ô (ô này nằm trong một khoảng nào đó, theo yêu cầu của người sử dụng) khi người dùng di chuyển tơi. Tôi xin giới thiệu một cách là dùng Conditional Formatting
    Đầu tiên để làm được điều này tôi cần có một hàm để trả về hàng hiện tại hay cột hiện tại của ô hiện tại và hàm này được đặt trong module1. Đoạn mã đó như sau:
    Option Explicit
    Function AC(Row As Boolean) As Long
    ' Trả về hàng hay cột của ô hiện hành
    AC = 0
    On Error Resume Next
    If Row Then
    AC = ActiveCell.Row
    Else
    AC = ActiveCell.Column
    End If
    End Function

    Chúng ta cũng cần sự trợ giúp của Worksheet_SelectionChange, với phương thức Calculate của ActiveSheet. Đoạn mã trong module của worksheet như sau:
    Option Explicit
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveSheet.Calculate
    End Sub
    Sau đó bạn chọn khoảng mà bạn muốn định dạng, chọn Format | Conditional Formatting... và điền vào như sau:
    Ở bên combobox bên trái chọn Formula is, bên cột phải bạn nhập vào nội dung sau: =And(Row()=AC(True),Column()=AC(False))
    Sau đó bạn Click vào nút format để chọn màu bạn muốn.

    Sau đó bạn chọn OK. Khi đó nếu bạn di chuyển trong khoảng này thì ô hiện hành sẽ thay đổi màu mỗi khi bạn di chuyển.

    Chúc các bạn thành công.
     
    #5
  6. luckytranquan

    luckytranquan Thành viên hoạt động

    Bài viết:
    31
    Đã được thích:
    0
    Nơi ở:
    HCM
    Cảm ơn bạn rất nhiều, mình chưa nhập vào thử nhưng mình hy vọng sẽ thành công.
    Quân nghĩ đây là một đề tài rất hay.
    Anh có thể cho em biết tên thật của Anh được không? Em tên Quân. Nay 26 tuổi, đang làm trợ lý kiểm toán. Anh có thể cho Quân biết tý về Anh nha?

    Chào Anh, em sẽ thử đoạn code của anh.
    Chúc Anh luôn gặp may mắn.
     
    #6
  7. handung107

    handung107 Thành viên thân thiết

    Bài viết:
    576
    Đã được thích:
    13
    Nơi ở:
    VN
    Các bạn có thể tham khảo thêm các ví dụ về Conditional Format nhé
     
    #7
  8. luckytranquan

    luckytranquan Thành viên hoạt động

    Bài viết:
    31
    Đã được thích:
    0
    Nơi ở:
    HCM
    Cảm ơn bạn, mình sẽ về nhà thử File của bạncó gì học hỏi thêm không, kiến thức là vô tạn mà.
    Mình cũng đã làm được theo cách của Lê Văn Duyệt, cũng hay lắm

    Chúc bạn vui và có nhiều hạnh phúc nhé.
     
    #8

Chia sẻ trang này