Giúp đỡ code đổi màu dòng chọn?

Liên hệ QC

haikimcuong

Thành viên hoạt động
Tham gia
6/7/10
Bài viết
169
Được thích
36
Như tiêu đề Anh chị trong diễn đàn giúp đỡ e đoạn códe khi kích chọn 1 ô nào đó ở 1 dòng nào đó thì cả dòng đó sẽ đổi màu ạ? sau khi chuyển sang ô dòng khác thì ô trước sẽ về màu cũ và ô mới sẽ lại chuyển màu ạ!
E xin cảm ơn
 
Như tiêu đề Anh chị trong diễn đàn giúp đỡ e đoạn códe khi kích chọn 1 ô nào đó ở 1 dòng nào đó thì cả dòng đó sẽ đổi màu ạ? sau khi chuyển sang ô dòng khác thì ô trước sẽ về màu cũ và ô mới sẽ lại chuyển màu ạ!
E xin cảm ơn
Thử:
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    Cells.Interior.ColorIndex = 0
    With Target
        .EntireRow.Interior.ColorIndex = 44
    End With
    Application.ScreenUpdating = True
End Sub
 
Upvote 0
Thử:
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    Cells.Interior.ColorIndex = 0
    With Target
        .EntireRow.Interior.ColorIndex = 44
    End With
    Application.ScreenUpdating = True
End Sub
Người ta nói rằng:
Như tiêu đề Anh chị trong diễn đàn giúp đỡ e đoạn códe khi kích chọn 1 ô nào đó ở 1 dòng nào đó thì cả dòng đó sẽ đổi màu ạ? sau khi chuyển sang ô dòng khác thì ô trước sẽ về màu cũ và ô mới sẽ lại chuyển màu ạ!
E xin cảm ơn
Tức giữ nguyên màu trước đó. Vậy thì cách của bạn không được rồi (vì nó xóa sạch màu)
 
Upvote 0
Như tiêu đề Anh chị trong diễn đàn giúp đỡ e đoạn códe khi kích chọn 1 ô nào đó ở 1 dòng nào đó thì cả dòng đó sẽ đổi màu ạ? sau khi chuyển sang ô dòng khác thì ô trước sẽ về màu cũ và ô mới sẽ lại chuyển màu ạ!
E xin cảm ơn
Muốn Cell trước trở về màu cũ thì Phải dựa vào cái gì đó làm tiêu chí để định dạng lại cho nó.
Hỏi mà không cụ thể vấn đề và cũng không đính kèm File thì chẳng ai biết cái tiêu chí màu cũ là cái gì? Ở đâu? Thì xin chào thua.
 
Upvote 0
Vậy thì em bỏ dòng dưới đi:
PHP:
' Cells.Interior.ColorIndex = 0
Thật ra yêu cầu này có nhiều trên diễn đàn rồi. Người ta dùng các cách sau:
- Code conditional formating: Ưu điểm là đơn giản nhưng nhược điểm là có khả năng xóa luôn các định dạng có điều kiện hiện có
- Code dùng shape để "lát" 1 dãy màu: Ưu điểm là không thay đổi bất cứ định dạng nào trên bảng tính nhưng nhược điểm khó chọn cell. Nhiều khi chọn nhầm vào shape rồi vô tình nhấn delete luôn cũng không chừng
- Code tô màu dùng fill color cho cell: Ưu điểm là không làm mất CF nhưng nhược điểm là rất khó trả lại màu cũ cho cell. Nếu cố gắng làm được việc restore màu thì cũng sẽ khiển cho file bị "cà giật" (nếu như bảng tính đã tô màu quá nhiều trước đó)
Nói chung mỗi cách có cái hay cái dở riêng và việc xây dựng một công cụ thật hoàn chỉnh để highlight là chuyện không hề đơn giản
 
Upvote 0
Thử cái này:
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    Me.Cells.FormatConditions.Delete
    With Target.EntireRow.FormatConditions.Add(Type:=xlExpression, _
                                               Formula1:="=TRUE")
        .SetFirstPriority
        .Interior.Color = 65535
    End With

    Application.ScreenUpdating = True

End Sub
 

File đính kèm

Upvote 0
Người ta nói rằng:

Tức giữ nguyên màu trước đó. Vậy thì cách của bạn không được rồi (vì nó xóa sạch màu)
Ok rồi thầy ạ e cảm ơn thầy
Bài đã được tự động gộp:

Muốn Cell trước trở về màu cũ thì Phải dựa vào cái gì đó làm tiêu chí để định dạng lại cho nó.
Hỏi mà không cụ thể vấn đề và cũng không đính kèm File thì chẳng ai biết cái tiêu chí màu cũ là cái gì? Ở đâu? Thì xin chào thua.
dạ e đưa ra câu hỏi nhưng thú thực là cũng k giải hết nghĩa nhưng e chỉ cần kích vào đổi màu kích vào chỗ khác dòng cũ lại về màu cũ là ok rồi ạ nên code ban đầu của bác @phulien1902 là quá ok rồi ạ. E xin cảm ơn ạ.
 
Upvote 0
Ok rồi thầy ạ e cảm ơn thầy
dạ e đưa ra câu hỏi nhưng thú thực là cũng k giải hết nghĩa nhưng e chỉ cần kích vào đổi màu kích vào chỗ khác dòng cũ lại về màu cũ là ok rồi ạ nên code ban đầu của bác@phulien1902 là quá ok rồi ạ. E xin cảm ơn ạ.
Bài 1 bạn nêu vầy: "Chọn 1 ô nào đó ở 1 dòng nào đó thì cả dòng đó sẽ đổi màu ạ? sau khi chuyển sang ô dòng khác thì ô trước sẽ về màu cũ và ô mới sẽ lại chuyển màu".
Còn nếu bạn nêu khi chọn vào Cell nào hiện màu chỗ Cell chọn, thì tham khảo File này (áp dụng cho tất cả các sheet).
 

File đính kèm

Upvote 0
Bài 1 bạn nêu vầy: "Chọn 1 ô nào đó ở 1 dòng nào đó thì cả dòng đó sẽ đổi màu ạ? sau khi chuyển sang ô dòng khác thì ô trước sẽ về màu cũ và ô mới sẽ lại chuyển màu".
Còn nếu bạn nêu khi chọn vào Cell nào hiện màu chỗ Cell chọn, thì tham khảo File này (áp dụng cho tất cả các sheet).
Cái này chắc để trang trí cho vui thôi đúng không anh, chứ em thấy thêm cái này thao tác hơi đơ đơ. :)
 
Upvote 0
Cái này chắc để trang trí cho vui thôi đúng không anh, chứ em thấy thêm cái này thao tác hơi đơ đơ. :)
Chủ yếu là chọn Cell nào nó hiện màu để nhìn thấy được rõ ràng, cụ thể hơn.
Nó đơ đơ là phải rồi, vì nó áp dụng cho cả bảng tính nên chậm là phải.
 
Upvote 0

File đính kèm

Upvote 0
Đã 14 bài, chiều bạn bằng cách dùng VBA trong vùng 100 dòng 26 cột bắt đầu từ A1.
Nếu là code VBA thì ta chỉ cần điều kiện tô màu là đúng (=True) là được rồi anh à. Tức thay vì:
Mã:
FormatConditions.Add Type:=xlExpression, Formula1:="=ROW(A" & R & ")=ROW()"
Anh cứ viết đại nó thành:
Mã:
FormatConditions.Add Type:=xlExpression, Formula1:=True
cũng xong ngay! Không cần bất cứ công thức tham chiếu nào
(giống bài 9)
 
Upvote 0
Nếu là code VBA thì ta chỉ cần điều kiện tô màu là đúng (=True) là được rồi anh à. Tức thay vì:
Mã:
FormatConditions.Add Type:=xlExpression, Formula1:="=ROW(A" & R & ")=ROW()"
Anh cứ viết đại nó thành:
Mã:
FormatConditions.Add Type:=xlExpression, Formula1:=True
cũng xong ngay! Không cần bất cứ công thức tham chiếu nào
(giống bài 9)
Hồi trước tới giờ đâu có "rớ" đến cái này, thấy sao lâu quá mà chưa xong nên "mò" qua Record Macro làm thí thí.
(Còn "lòi" cái Module Record Macro trong file, Híc!)
Đã thay file bài trên.
 
Upvote 0
Cho E hỏi với. Viết như trên các A đã hướng dẫn thì nó tô màu trên sheet1. Vậy khi E muốn tạo thêm Sheet mới
nó cũng tô tương tự thì phải làm sao ạ. Mong các A chỉ giáo. E cám ơn
 
Upvote 0
Web KT

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

Back
Top Bottom