làm ô có màu

  • Thread starter Thread starter lamho27
  • Ngày gửi Ngày gửi
Liên hệ QC

lamho27

Thành viên chính thức
Tham gia
25/11/07
Bài viết
96
Được thích
10
chào các bạn trong diển đàn
Em có 1 vấn đề nhờ các bạn giúp giùm; Em muốn ô A1 đánh số 1 thì ở ô B1 có màu ( thí dụ màu xanh chẳng hạn ); nếu ô A1=2 thì B1=màu vàng....
cám ơn các bạn nhiều+-+-+-+
 
Private Sub Worksheet_Change(ByVal Target As Range)
PHP:
On Error GoTo Exits
        If Not Intersect(Target, Range("A:A")) Is Nothing Then
                If Cells(Target.Row, 1).Value <> "" Then
                        Cells(Target.Row, 2).Interior.ColorIndex = "" & Cells(Target.Row, 1) & ""
                End If
        End If
Exits:
End Sub

Bạn copy đoạn code trên, right click vào Sheet nhập liệu, view code, paste vào, sau đó trở về sheet và thử nhập liệu vào cột A xem kết quả.

He he! không phải đánh số này thì ra màu khác đâu nha, màu theo giá trị cột A bạn gõ vào và phải có trong bảng màu của Excel.
 
Chỉnh sửa lần cuối bởi điều hành viên:
uh.minh quên mất. phải là format\conditional formating..
trong link trên có cả CF và Vl luôn.
ở đây mình xin nói thêm.

Bạn chọn vùng cần tô màu. giả sử tôi chọn cột B.vùng nhập liệu là cột A
Bạn vào format\conditional formating\fomula is và gõ công thức sau
=isnumber(a1) công thức này kiểm tra vùng nhập liệu có là số hay không
=A1<>"" kiểm tra ô có dữ liệu không
=COUNTIF($A:$A,A1)>=2 kiểm tra có nhập trùng dữ liệu không
... sau đó vào pattern trong Format..chọn màu và ok.
bạn chọn nút add để thêm mới cho công thức(condition) nha.
bạn nghiên cứu thêm ha
ah. trong câu hỏi của bạn thì
nếu a1=1. thì b1 màu xanh (condition1)
nếu a1=2. thì b1 màu vàng (condition2)
..
bạn cũng làm như cách trên
=a1=1 phần pattern (hay Font) chọn màu xanh
=a1=2 phần patern chọn màu vàng
...
 
Lần chỉnh sửa cuối:
Cho mình sửa chút để đảm bảo luôn có màu

nguyentuhp đã viết:
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Exits

If Not Intersect(Target, Range("B:B")) Is Nothing Then
    If Target <> "" Then _
        Target.Offset(, 1).Interior.ColorIndex = 33 + (Target Mod 7)
End If
Exits:      End Sub
& tham khảo thêm tại đây về colors http://www.giaiphapexcel.com/forum/showthread.php?t=344
Chúc mừng nhân ngày 8/3:
Quynh1.jpg

 
Tô màu theo code trên khá hay nhưng cũng có cái bất tiện là mình ko thể chọn lựa màu dc (làm gì cũng theo thứ tự)
Nếu số màu cần tô nhỏ hơn 4 thì có thể dùng CF, còn ko, nếu dùng code thì nên có 1 bảng tra màu đễ người dùng tùy ý lựa chọn
ANH TUẤN
 
anhtuan1066 đã viết:
Tô màu theo code trên khá hay nhưng cũng có cái bất tiện là mình ko thể chọn lựa màu dc (làm gì cũng theo thứ tự)
Nếu số màu cần tô nhỏ hơn 4 thì có thể dùng CF, còn ko, nếu dùng code thì nên có 1 bảng tra màu đễ người dùng tùy ý lựa chọn
ANH TUẤN
Đồng ý với Anhtuan.
Trong CF của excel 2007 có tới 64 condition. tha hồ mà tô màu
 
Xin cho hỏi , có cách nào không dùng code VBA , mà chỉ dùng hàm được không ?
 
lamho27 đã viết:
Xin cho hỏi , có cách nào không dùng code VBA , mà chỉ dùng hàm được không ?
Thì như tôi đã nói ở trên đấy... có cách với điều kiện bạn chỉ tô dưới 4 màu... khi ấy ta dùng 1 chức năng có sẳn, đó là Conditional Formating (nó nằm trong menu Format\Conditional Formating)
Bạn nghiên cứu xem!
ANH TUẤN
 
lamho27 đã viết:
Xin cho hỏi , có cách nào không dùng code VBA , mà chỉ dùng hàm được không ?
Chỉ dưới 4 đ/k thôi. Bạn tùm trên diễn đàn với từ khóa condition format có rất nhiều bài viết về vấn đề này.
Đây là một bài.
 
Trong cột A = số thứ tự , cột B=màu; ô D10 là số tự chọn theo số ở cột A ( thí dụ A2 chẳng hạn ) , ô D11 sẽ có màu tương ứng với B2; mong các bạn hướng dẩn giùm
 

File đính kèm

Màu bên cột 'B' có chỉ số đúng bên cột 'A' của bạn rồi còn gì!!

Khi đó chỉ cần sửa lại macro đã viết của bạn như sau:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("d10")) Is Nothing Then
        If Target > 0 Or Target < 57 Then _
                 Target.Offset(1).Interior.ColorIndex = Target.Value
    End If
 End Sub

Ghi chú: Mình xài Office03 nên chỉ có 56 màu thôi; không biết sau này cái ông B. có tăng lên chưa nữa! Hình như bạn xài Office07 kiểm xem thử, nha!
 
bài viết của SA_DQ rất đúng ý của em , cám ơn nhiều , nhưng còn 1 chút xíu cần hỏi thêm là khi em bấm số ở ô d10 thì có màu chỉ ở ô d11 ; có cách nào ở ô d11+d12+d13 đều có cùng 1 màu
 
Đang xỉn, thông cảm nha!!

2uá dễ:
Target.Offset(1).Resize(1,3)Interior.ColorIndex = Target.Value
 
Mình xin nói thêm về CF tí
- Để tô màu xen kẻ cho cell trong toàn bộ bảng tính thì ta chọn toàn bộ bảng tính và đặt CT sau :
=MOD(ROW(A1)+COLUMN(A1),2)=0
- Để kiểm tra ngày tháng nhập liệu có đúng không : =iserror(day(a1))
- Để kiểm tra cell có bị khóa không : =cell("protect",a1)
- Để kiểm tra giá trị ô là số lẻ : =mod(a1,2)<>0
- Để kiểm tra ô chứa đựng công thức : ??? bạn nào biết chỉ dùm nha.thanks
Thân
 
Web KT

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

Back
Top Bottom