PDA

View Full Version : Cấu hình tô màu cho Sheet trong Excel



www.sanyo.com.vn
31-03-07, 09:51 PM
Thân gửi chào toàn thể các bạn!
Tôi muốn làm một vấn đề trong Excel, nhưng vẫn chưa biết cách nào. Tôi sẽ mô tả ra cho các bạn biết và hướng dẫn dùm tôi.

Tôi có 1 sheet Excel tôi muốn cấu hình sao cho Sheet excel đó tô màu một cách tuần tự: dòng lẻ màu trắng, dòng chẳn màu xanh nhạt.
Vậy để cấu hình được như vậy chẳng lẻ tôi phải chọn từng dòng một trong 65365 dòng của Excel để tô màu hay sao?
Nếu các bạn có cách thức nào khác thì chỉ cho tôi với.
Thanks.

We love people and the earth! (http://www.sanyo.com.vn)

SA_DQ
31-03-07, 11:08 PM
Sub ToMau()
Const lHang As Long = 135 ' Bạn có thể gán nó là 65536
Dim Rng As Range, iJ As Long, lMau As Long
Set Rng = Range("1:1")
For iJ = 3 To lHang Step 2
Set Rng = Union(Rng, Range(CStr(iJ) & ":" & CStr(iJ)))
Next iJ
Randomize: lMau = 34 + Int(Rnd() * 5)
Rng.Select
With Selection.Interior
.ColorIndex = lMau: .Pattern = xlSolid
End With

End Sub

PhanTuHuong
31-03-07, 11:48 PM
Bạn có thể sử dụng phương thức hợp nhất vùng để tô như bác SA_DQ hay là tô từng dòng như thủ tục dưới đây:


Sub To_mau_nen()
Dim i As Double

For i = 1 To 65536
Rows(i).Select
With Selection.Interior
.Pattern = xlSolid
If (i Mod 2) = 0 Then
.ColorIndex = 8
Else
.ColorIndex = 2
End If
End With
Next
End Sub

SA_DQ
01-04-07, 06:40 AM
Hay tô từng dòng như thủ tục dưới đây:

Sub To_mau_nen()
Dim i As Double
For i = 1 To 65536
Rows(i).Select
With Selection.Interior
.Pattern = xlSolid
If (i Mod 2) = 0 Then .ColorIndex = 8

End With
Next
End Sub
Đừng nghe mà hư mắt í! Người ta tô ~ màu nhạt thôi chứ lị!!
/(hông thấy
dòng lẻ màu trắng, dòng chẳn màu xanh nhạt.
đó sao?!
Tất cả ~ màu mình liệt kê khả năng đều nhạt fèo í chứ!

(húc &ui &ẽ!

nvson
01-04-07, 08:53 AM
....
Tôi có 1 sheet Excel tôi muốn cấu hình sao cho Sheet excel đó tô màu một cách tuần tự: dòng lẻ màu trắng, dòng chẳn màu xanh nhạt.
....

Còn 1 cách này nữa:
Tại sheet ma bạn muốn tô màu, di chuyển đến ô A1 rồi nhân Ctrl+A để chọn toàn bộ bảng tính. (hoặc nhấn chuột vào ô trống trên thanh tiêu đề, trên số 1, bên trái chữ A)
Nhấn Format/ Conditional Formatting:
Condition 1: Chọn Formula is ở hộp ComboBox và đánh vào công thức sau:


=MOD(ROW(A1),2)=0

Nhấn tiếp vào nút Format, chọn màu nền trong Tab Pattern (là màu xanh nhạt). Nhấn OK để đóng hộp thoại Format Cells.
Nhấn tiếp nút Add để thêm Condition 2: Chọn Formula is ở hộp ComboBox và đánh vào công thức sau:


=MOD(ROW(A1),2)<>0

Nhấn tiếp vào nút Format, chọn màu nền trong Tab Pattern (là màu trắng). Nhấn OK để đóng hộp thoại Format Cells.
Cuối cùng là nhấn OK để đóng hộp thoại Conditional Formatting

Đào Việt Cường
01-04-07, 03:30 PM
Dear all,
--------
Theo em, nếu là "công cụ nâng cao" chúng ta có thể sử dụng công cụ chuyên dụng là AutoFormat (Alt+O+A): Hãy chọn biểu mẫu (Table Style) List 1 và mở rộng Option để chỉ áp dụng Patterns. Mặc dù với cách này (áp dụng trên Office 2003), chúng ta chỉ áp dụng được một hoặc một vài thuộc tính của biểu mẫu và không có khả năng thay đổi chúng nhưng bù lại bảng tính sẽ nhanh hơn rất nhiều vì không phải tính toán do sử dụng hàm hay biến cố Change trong VBA. Đặc biệt, các định dạng sẽ tự động mở rộng theo vùng dữ liệu nhập vào cũng chẳng kém gì Conditional Formatting.
Với phiên bản Office 2007, người dùng có thể tự tạo và cất trữ các Table Style này và sử dụng lại chúng dễ dàng hơn: New Table Style, chọn Second Row Stripe rồi thiết lập màu Pattern mà chúng ta muốn.
Lợi ích thiết thực hơn cả của công cụ này là giúp các bạn khai thác tối đa công cụ sẵn có của Excel trước khi nghĩ tới lập trình!

www.sanyo.com.vn
05-04-07, 09:39 PM
Trong Excel 2007 có sẳn tính năng này và chọn màu tùy ý theo định dạng Format as Table.
Rất cảm ơn tất cả các bạn đã giúp và hướng dẫn tôi.
---------------------------------
Welcome to www.sanyo.com.vn (http://www.sanyo.com.vn)

Hamvui
09-04-07, 10:27 PM
Dùng cái của anh nvson là rất ổn vì Excel sẽ tự cập nhật khi bạn thêm hay xoá dòng.
Khi đó mấy cái macro của các bác ... tịt!!I

SA_DQ
10-04-07, 06:07 AM
To Ham&ui:
/)/hớ rằng VBA làm được tất tần tật;
Trong trw2 hợp ni:


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then ManCaiNi
End Sub

thanhtri
12-05-07, 09:18 AM
Chỉ có mỗi việc tô màu như thế mà lại dùng đến VBA thì có phí phạm lắm ko? Em nghĩ tùy trường hợp mà vận dụng, miễn sao chọn dc phương pháp tối ưu nhất cho một trường hợp cụ thể.
Riêng đối với trường hợp tô màu này em vẫn thấy cách của anh nvson là tối ưu nhất. Ít ra là dung lượng file sẽ nhỏ đi rất nhiều (khi tô màu xong rồi lưu, file chỉ chiếm dung lượng có 13.5KB) lại khỏi phiền phức Disable Macro, Enable Macro.
Miss TT

vungoc
12-05-07, 09:45 AM
Tôi cũng hòan tòan ủng hộ cách của bạn nvson, vừa nhẹ files, vừa tự động giữ được cấu hình (màu) khi ta thêm hay bớt dòng (hoặc cột). Cách tạo lập đơn giản, dễ hiểu dễ thực hiện với mọi cấp độ.

glassflower_snow
09-04-11, 08:30 AM
Cách thứ 2 để làm cho nhanh thì các bạn có thể làm như sau:
Bôi đen dòng mà các bạn chọn màu rồi vào format chọn cell vào patterns chọn màu xanh.
sau đó bôi đen 2 dòng: một dòng màu xanh, một dòng màu trắng. Sau đó giữ và di chuột trái và kéo xuống.
lưu ý: chỉ thích hợp làm với cột ít dữ liệu

M@trixs
13-09-11, 09:23 PM
Còn 1 cách này nữa:
Tại sheet ma bạn muốn tô màu, di chuyển đến ô A1 rồi nhân Ctrl+A để chọn toàn bộ bảng tính. (hoặc nhấn chuột vào ô trống trên thanh tiêu đề, trên số 1, bên trái chữ A)
Nhấn Format/ Conditional Formatting:
Condition 1: Chọn Formula is ở hộp ComboBox và đánh vào công thức sau:


=MOD(ROW(A1),2)=0

Nhấn tiếp vào nút Format, chọn màu nền trong Tab Pattern (là màu xanh nhạt). Nhấn OK để đóng hộp thoại Format Cells.
Nhấn tiếp nút Add để thêm Condition 2: Chọn Formula is ở hộp ComboBox và đánh vào công thức sau:


=MOD(ROW(A1),2)<>0

Nhấn tiếp vào nút Format, chọn màu nền trong Tab Pattern (là màu trắng). Nhấn OK để đóng hộp thoại Format Cells.
Cuối cùng là nhấn OK để đóng hộp thoại Conditional Formatting

ACE nào đi ngang biết cái này chỉ M@trixs với vì M@trixs đã có tìm trên GG òi, nhưng các bài viết này diễn đạt trên Office 2003, còn hiện tại M@trixs đang dùng Office 2007 nên mò hoài vẫn chưa ra cho dù vấn đề khá là nhỏ nhặt (với ACE).... Vậy ai biết cách làm cho các dòng xen kẻ nhau trong Office 2007 và chỉ dùng Conditional Formatting (không dùng VBA) thì chỉ M@trixs với nhé. Xin chân thành cảm ơn !!

nvson
15-09-11, 12:54 PM
Trong Excel 2007:
Bạn chọn "Use a formula to determine which cells to format" (Home/ Styles/ Conditional formatting/ New Rule...), rồi làm tương tự như trên.