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

  • Thread starter luckytranquan
  • Ngày gửi
L

luckytranquan

Sơ cấp
3/5/05
31
0
0
38
HCM
#1
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:
 
L

levanduyet

Welcome
16/10/04
535
11
18
HCM
my.opera.com
#2
luckytranquan nói:
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:
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
 
L

luckytranquan

Sơ cấp
3/5/05
31
0
0
38
HCM
#3
Nhờ Anh Post lại cho em nha, hậu tạ nhiều.
Thank U,
 
L

levanduyet

Welcome
16/10/04
535
11
18
HCM
my.opera.com
#5
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.
 
L

luckytranquan

Sơ cấp
3/5/05
31
0
0
38
HCM
#6
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.
 
L

luckytranquan

Sơ cấp
3/5/05
31
0
0
38
HCM
#8
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é.
 

Thành viên trực tuyến

Không có thành viên trực tuyến.



Xem nhiều