Sử dụng VBA tương tự như conditinal formating?

Liên hệ QC

LikeIt

Thành viên tiêu biểu
Tham gia
16/6/06
Bài viết
415
Được thích
254
Nghề nghiệp
Others
Các anh chị cho hỏi, ngoài chức năng conditinal formating thì chúng ta có thể sử dụng VBA để khi em đánh chứ đỏ vào một cell thì cell đó hiện nên màu đỏ ko? ở đây chỉ đề cập đến màu thôi, sau khi cell đó hiện nên màu rồi thì ta vẫn có thể đánh chứ khác vào cell đó để làm việc.Các anh chị xem vd, nếu làm đc các anh chị thử trên VD luôn nhé. Tks
 

File đính kèm

  • VD VBA voi conditinal formating.xls
    13.5 KB · Đọc: 46
Tại sao ko dùng CF? Có phải là vì nó quá ít điều kiện chăng... Về nguyên tắc anh nghĩ ý tưởng này có thể thực hiện dc... Tạo 1 bảng màu để so sánh với Text... chạy Macro và quét trong mãng đễ tô màu theo bãng màu chuẩn đã cho...
Ý tưởng này có đúng ko nhỉ
ANH TUẤN
 
Về sử dụng CF thì là ổn rồi anh ạ, nhưng em muốn thử trên VBA xem có tiện lợi hơn không?
 
Nguyễn Hương Thơm đã viết:
Về sử dụng CF thì là ổn rồi anh ạ, nhưng em muốn thử trên VBA xem có tiện lợi hơn không?
Nếu bạn không dùng quá 3 điều kiện thì dùng CF của Excel là đỡ mất công,gọn và nhanh nhất (vì nó được tích hợp trong Excel). Nếu bạn sử dụng hơn 3 điều kiện thì khi ấy phải dùng VBA thôi và điều này thực hiện cũng không quá khó.

TDN
 
Nguyễn Hương Thơm đã viết:
Các anh chị cho hỏi, ngoài chức năng conditinal formating thì chúng ta có thể sử dụng VBA để khi em đánh chứ đỏ vào một cell thì cell đó hiện nên màu đỏ ko? ở đây chỉ đề cập đến màu thôi, sau khi cell đó hiện nên màu rồi thì ta vẫn có thể đánh chứ khác vào cell đó để làm việc.Các anh chị xem vd, nếu làm đc các anh chị thử trên VD luôn nhé. Tks

Cái này thì dùng VBA với If hoặc Select Case là ra ngay. Nhưng có điều nếu làm vậy thì . . . buồn cười quá. Để thời gian làm việc khác đi chứ.
 
Thì các bạn cứ thử xem khoãng 4 màu thôi... Gì mà buồn cười chứ... Biết đâu người ta đang có "mưu đồ" áp dụng nó vào 1 trường hợp đặc biệt nào đó... Ai biết dc...
ANH TUẤN
 
Ý mình là làm việc này thì đơn giản thôi, cũng giống như mấy cái TH viết hoa đầu từ, hay gì gì đó (vì thấy tô trực tiếp thì đơn giản hơn)

Cái này chúng ta lợi dụng sự kiện Worksheet_Change.

Vì đánh vào chữ "đỏ" nó sẽ hiện ra mà đỏ nên ta phải có một bảng danh mục các chữ này, vì cùng là chữ đỏ nhưng gõ bằng các Font chữ khác nhau sẽ là các ký tự khác nhau. Mà ta đang xét cả ô theo ký tự chứ không phải là theo hiển thị.

Như vậy khi người khác muốn thay đổi, dù họ là font chữ nào thì chỉ cần thay đổi lại bảng này là lại OK.

Thân!
 
anhtuan1066 đã viết:
Thì các bạn cứ thử xem khoãng 4 màu thôi... Gì mà buồn cười chứ... Biết đâu người ta đang có "mưu đồ" áp dụng nó vào 1 trường hợp đặc biệt nào đó... Ai biết dc...
ANH TUẤN
Thật ra như em đã nói, không khó nhưng cần có trường hợp cụ thể và hữu ích, chứ làm chơi cho vui thì đâu có định hướng được mà làm. Hi hi
 
Lần chỉnh sửa cuối:
Giã sử 1 trường hợp đơn giản nhất trước đi... Font Arial trên toàn Worksheet... Tôi nghĩ làm từ đơn giãn đến nâng cao như thế thì học mới fễ hiểu... Các bạn làm 1 cái có thể chạy trong mọi trường hợp thì hay, nhưng code sẽ dài, và người mới học như chúng tôi nhìn vào sẽ thấy rối...
Đại khái là hiểu đến đâu làm đến đó thôi mà... Giúp dùm đi... 4 màu, 1 font duy nhất
ANH TUẤN
 
anhtuan1066 đã viết:
Giã sử 1 trường hợp đơn giản nhất trước đi... Font Arial trên toàn Worksheet... Tôi nghĩ làm từ đơn giãn đến nâng cao như thế thì học mới fễ hiểu... Các bạn làm 1 cái có thể chạy trong mọi trường hợp thì hay, nhưng code sẽ dài, và người mới học như chúng tôi nhìn vào sẽ thấy rối...
Đại khái là hiểu đến đâu làm đến đó thôi mà... Giúp dùm đi... 4 màu, 1 font duy nhất
ANH TUẤN

Mình dùng Font Unicode, màu sắc và tên gọi các bạn có thể thay đổi. Khi các bạn thay đổi tên thì phải trùng với font các bạn dùng. Khi đó dùng font nào cũng được.
Đại khái là như thế, mong được góp ý.
 

File đính kèm

  • DoiMau.xls
    33 KB · Đọc: 57
Thế là ổn rồi...
Thứ nhất: Dùng font Unicode sẽ ko có vấn đề
Thứ hai: Muốn thêm màu thì mở rông vùng I, J và thêm code...
Tôi xem file và đoán như thế, Đúng ko Bắp?
Còn cái này cần hỏi: Sau khi tô màu rồi... tôi quét chọn vùng ấy và clear hết màu... Vậy làm sao đễ Refresh lại (nghĩa là tô màu trở lại ấy)... Thêm nút REFRESH dùm đi
ANH TUẤN
 
Chào Anh
Mình xin phép mượn file Mr.Hiếu để sửa lại một chút xíu. Mình thêm Refresh như Anh Tuấn yêu cầu và code chỉnh lại tí để khi ô thay đổi màu nền và màu chữ. Đồng thời, nếu thêm nhiều điều kiện (thêm ô màu) thì vẫn giữ nguyên code (không phải thêm Case).
Cám ơn Hiếu nhiều nhé!

Thân!
 

File đính kèm

  • DoiMau_V2.zip
    14.8 KB · Đọc: 25
Lần chỉnh sửa cuối:
Ko phải thầy Phước ơi... Refresh nghĩa là tô lại màu chứ ko phải xóa màu
Chẳng hạn có ai đó vô tình clear hết màu của tôi... giờ dử liệu nhiều quá tôi làm sao nhớ màu nào nằm ở đâu đễ tô lại.. Vậy nên phải có REFRESH để nó chạy marco lại từ đầu.. Nghĩa là tại thời điểm này (tức là thời điễm màu đã bị clear) có thể cell có chử Đỏ ko có màu đỏ... nhưng khi bấm vào REFRESH thì màu nào sẽ vô màu đó theo bảng TEXT&MAU đã cho...
Tôi nói lòng vòng ko biết thầy hiểu ko nhỉ... hi.. hi..
ANH TUẤN
 
anhtuan1066 đã viết:
Ko phải thầy Phước ơi... Refresh nghĩa là tô lại màu chứ ko phải xóa màu
Chẳng hạn có ai đó vô tình clear hết màu của tôi... giờ dử liệu nhiều quá tôi làm sao nhớ màu nào nằm ở đâu đễ tô lại.. Vậy nên phải có REFRESH để nó chạy marco lại từ đầu.. Nghĩa là tại thời điểm này (tức là thời điễm màu đã bị clear) có thể cell có chử Đỏ ko có màu đỏ... nhưng khi bấm vào REFRESH thì màu nào sẽ vô màu đó theo bảng TEXT&MAU đã cho...
Tôi nói lòng vòng ko biết thầy hiểu ko nhỉ... hi.. hi..
ANH TUẤN
hi hi. xin lỗi ! có vậy mà em cũng hiểu sai ý của anh. Để em cố gắng thực hiện không biết có làm nổi hong. Hi hi

Thân !
 
Chào Anh
Mình đã chỉnh lại theo đúng ý của Anh Tuấn rồi. Nhưng "cuội" lắm, mong anh góp ý thêm. Mình đã gởi lại file ở bài #12

Thân !
 
Mặc kệ nó cuội thế nào cũng dc... Miễn đạt dc mục đích... Với tôi nó rất tuyệt chiêu là dc rồi... hi... hi... Cám ơn thầy!
ANH TUẤN
 
anhtuan1066 đã viết:
Ko phải thầy Phước ơi... Refresh nghĩa là tô lại màu chứ ko phải xóa màu
Chẳng hạn có ai đó vô tình clear hết màu của tôi... giờ dử liệu nhiều quá tôi làm sao nhớ màu nào nằm ở đâu đễ tô lại.. Vậy nên phải có REFRESH để nó chạy marco lại từ đầu.. Nghĩa là tại thời điểm này (tức là thời điễm màu đã bị clear) có thể cell có chử Đỏ ko có màu đỏ... nhưng khi bấm vào REFRESH thì màu nào sẽ vô màu đó theo bảng TEXT&MAU đã cho...
Tôi nói lòng vòng ko biết thầy hiểu ko nhỉ... hi.. hi..
ANH TUẤN

Không có đâu bác ạ. Hiện giờ việc Undo macro trên GPE chưa làm được. (có lẽ cũng khó)

Thể hiện màu sắc cũng là dữ liệu như con số. Xóa đi hết rồi thì . . . bó tay. Trừ trường hợp lưu file dự phòng (hoặc chuyển nó qua chế độ read-only như Nho sĩ đã làm), hoặc nếu không phải User thì nó sẽ tự động chuyển thành 1 file khác . . .

Thân!
 
Bắp ơi.. clear màu thôi chứ ko phải là xóa dử liệu... Ai đó clear cell có màu đỏ thành ko màu, nhưng chử "đỏ" thì vẫn còn mà, tôi nghĩ chạy lại Macro là dc chứ gì... thầy Phước vừa làm dc đấy mà... ko biết nó như thế nào, nhưng bấm nút refresh thì nó tô màu lại như củ là ổn rồi
ANH TUẤN
 
anhtuan1066 đã viết:
Bắp ơi.. clear màu thôi chứ ko phải là xóa dử liệu... Ai đó clear cell có màu đỏ thành ko màu, nhưng chử "đỏ" thì vẫn còn mà, tôi nghĩ chạy lại Macro là dc chứ gì... thầy Phước vừa làm dc đấy mà... ko biết nó như thế nào, nhưng bấm nút refresh thì nó tô màu lại như củ là ổn rồi
ANH TUẤN

Nếu nó vẫn còn chữ đỏ thì chẳng nói làm gì, nhưng nếu không còn chữ đỏ mới đáng lo. Em tưởng là undo lại.
Chỉ cần duyệt qua 1 lần toàn bảng tính là được thôi mà. (như Nho sĩ duyệt là còn ít đấy)

Thân!
 
Web KT
Back
Top Bottom