Nhờ các thầy sửa giúp code VBA tô mầu theo khung giờ

Liên hệ QC

Tuannguyen11

Thành viên mới
Tham gia
4/12/17
Bài viết
5
Được thích
1
Giới tính
Nam
Kính gửi các thầy
Em có bảng exel có các bước công việc cần phải thực hiện theo khung giờ . và phải thực hiện đúng theo qui định của qui trình
nhưng do có nhiều bước nên rất khó theo dõi và nhớ , gây ra hay quên, sót
vì vậy em cần viết đoạn code tô mầu sao cho các mầu trong các ô tính toán phải chuyển mầu theo giờ cập nhật của hệ thống, sao cho
có 5 trường hợp
1- Giờ hệ thống > giờ của giá trị ô từ 2h30 trở lên: để nghuyên , không tô
2- giờ của giá trị ô từ 2h30 > Giờ hệ thống > giờ của giá trị ô từ 1h00 -> tô mầu vàng
3- giờ của giá trị ô từ 1h00 > Giờ hệ thống > giờ của giá trị ô từ 0H30 -> tô mầu xanh
4- giờ của giá trị ô từ 0h30 > Giờ hệ thống > giờ của giá trị ô từ 0h00 -> tô mầu đỏ
5- Giờ hệ thống > giá trị giờ của ô -> tô mầu blue cho dễ đọc


Dùng cell Fomatting theo mầu thì không cover ddowwjc nhiều khung giờ nên cân viết code VBAcode
code viết VBA nó báo lỗi không chạy được
mong các thầy và các anh xem xét hộ nhé

Cảm ơn các thày/các anh nhiều
 

File đính kèm

  • tô màu bước kiểm tra theo giờ.xlsm
    27.3 KB · Đọc: 21
Kính gửi các thầy
Em có bảng exel có các bước công việc cần phải thực hiện theo khung giờ . và phải thực hiện đúng theo qui định của qui trình
nhưng do có nhiều bước nên rất khó theo dõi và nhớ , gây ra hay quên, sót
vì vậy em cần viết đoạn code tô mầu sao cho các mầu trong các ô tính toán phải chuyển mầu theo giờ cập nhật của hệ thống, sao cho
có 5 trường hợp
1- Giờ hệ thống > giờ của giá trị ô từ 2h30 trở lên: để nghuyên , không tô
2- giờ của giá trị ô từ 2h30 > Giờ hệ thống > giờ của giá trị ô từ 1h00 -> tô mầu vàng
3- giờ của giá trị ô từ 1h00 > Giờ hệ thống > giờ của giá trị ô từ 0H30 -> tô mầu xanh
4- giờ của giá trị ô từ 0h30 > Giờ hệ thống > giờ của giá trị ô từ 0h00 -> tô mầu đỏ
5- Giờ hệ thống > giá trị giờ của ô -> tô mầu blue cho dễ đọc


Dùng cell Fomatting theo mầu thì không cover ddowwjc nhiều khung giờ nên cân viết code VBAcode
code viết VBA nó báo lỗi không chạy được
mong các thầy và các anh xem xét hộ nhé

Cảm ơn các thày/các anh nhiều
Làm đại, không trúng thì trật...
 

File đính kèm

  • tô màu bước kiểm tra theo giờ1111.xlsm
    30.1 KB · Đọc: 25
Upvote 0
Bài này cứ dùng Conditional Formatting thôi. Code chỉ làm nhiệm vụ lên lịch tính toán lại để cập nhật thôi.
 
Upvote 0
Xin cảm ơn bản Tống Văn Đề nhiều . Ban đã giúp hộ code tô mầu các ô theo giờ
kết quả tô mầu gần đạt như ý muốn
Vì giá trị giờ các ô các nhau nêu khoảng thời gian cần phải nhắc thực hiện ( tô mầu) cũng khác nhau- Nhất là các cột cuối bảng
Nếu chỉ so kết quả của 1 cột thì những ô khác giờ thì sẽ không được tô mầu đúng..Hi
CHỗ này cần có vòng lặp từng ô ( có các khoảng giờ báo trước ) cộng thêm - khoảng giờ cảnh báo giống nhau- là 02h30 - 1h - 30 phút và 0 h ,
nhưng giá trị ô khác nhau nên khoảng giờ tô màu cũng sẽ khác nhau

Bản xem giúp thêm hộ nhé
Xin cảm ơn Bạn nhiều . Hi
Bài đã được tự động gộp:

@ bạn Hữu Thắng

Dùng Conditional Formatting không tô màu chính xác cho từng ô được. Do các ô cần nhắc việc có giái trị khác nhau.... Hi
 
Upvote 0
@ bạn Hữu Thắng

Dùng Conditional Formatting không tô màu chính xác cho từng ô được. Do các ô cần nhắc việc có giái trị khác nhau.... Hi
Nhiều người hiểu bạn thì tôi rất phục. Vì tôi không hiểu. Tôi thích kiểu biểu thức hơn là mô tả toàn bằng lời vì nhiều người dùng từ không chính xác, câu cú lủng củng.
Tôi thích kiểu chủ yếu dùng biểu thức:

Tại ô ... ta có giờ hệ thống, gọi tắt là H. Trong mỗi ô của vùng ... có giờ gọi là O. Ta tô mầu như sau:
- nếu H-O > 2:30:00 thì không tô.
- nếu 1:00:00 <= H-O <= 2:30:00 thì tô vàng
...

Ngay như kiểu mô tả chủ yếu bằng lời cũng không chính xác.

Trong điều kiện 1, 2, 3, 4 luôn có H > O, trong khi đó điều kiện 5 là: 5- Giờ hệ thống > giá trị giờ của ô -> tô mầu blue cho dễ đọc. Tức H > O thì tô blue? Thế là thế nào? Trong 1-4 cũng có H > O nhưng có được tô blue đâu?

Khó hiểu quá.

Một khi điều kiện rõ ràng, bao trùm các trường hợp, không có kiểu 2 điều kiện xung đột, loại trừ lẫn nhau thì chả lí gì lại không dùng được CF.

Vài lời thế thôi, chứ nhìn kiểu mô tả là tôi biết không dành cho tôi.
 
Lần chỉnh sửa cuối:
Upvote 0
Xin cảm ơn bản Tống Văn Đề nhiều . Ban đã giúp hộ code tô mầu các ô theo giờ
kết quả tô mầu gần đạt như ý muốn
Vì giá trị giờ các ô các nhau nêu khoảng thời gian cần phải nhắc thực hiện ( tô mầu) cũng khác nhau- Nhất là các cột cuối bảng
Nếu chỉ so kết quả của 1 cột thì những ô khác giờ thì sẽ không được tô mầu đúng..Hi
CHỗ này cần có vòng lặp từng ô ( có các khoảng giờ báo trước ) cộng thêm - khoảng giờ cảnh báo giống nhau- là 02h30 - 1h - 30 phút và 0 h ,
nhưng giá trị ô khác nhau nên khoảng giờ tô màu cũng sẽ khác nhau

Bản xem giúp thêm hộ nhé
Xin cảm ơn Bạn nhiều . Hi
Bài đã được tự động gộp:

@ bạn Hữu Thắng

Dùng Conditional Formatting không tô màu chính xác cho từng ô được. Do các ô cần nhắc việc có giái trị khác nhau.... Hi
Thử giải bài toán theo cách mình hiểu nha...
 

File đính kèm

  • tô màu bước kiểm tra theo giờ2222.xlsm
    36.2 KB · Đọc: 11
Upvote 0
Cảm ơn Anh Đệ nhiều
Rất xin lỗi vì mô tả các mong muốn yêu cầu chưa làm rõ nghĩa do khó mô tả
nhưng Về mặt tô mầu theo giá trị ô thì anh Đệ đã nắm đươc yêu cầu của công việc đặt ra là

- Các ô ( theo bước thực hiệu công việc ) -> Sẽ chuyển mầu theo giá trị giờ của hệ thống theo mầu qui ước để nhắc cho người làm thực hiện

theo luật : giá trị giờ các ô - khi so theo giờ hệ thống sẽ có các mức sau :
trước 03h00 để nguyên còn sớm hơn 03h00

sau đó bước lùi là 30 phút sẽ thay đổi theo mầu xanh lơ- xanh lá- vàng- đỏ . Sau đó là hết giờ khi giờ hệ thống > giờ cần làm của ô -> mầu nâu
để người xem chỉ cần nhìn vào mầu là biết bước đó so với yêu cầu phải kiểm tra là bao nhiêu phút

nếu ko mầu: là trước hạn giờ phải thực hiện là >3h00. còn sớm
Nếu là mầu xanh lơ là biết trước hạn thực hiện 02h30 đến 03h00, cảnh báo 1, trước hạn còn đến 3h00
nếu là màu xanh lá: biết trước hạn 01h00 đến 02h30 cảnh báo 2, trước hạn còn từ 1h00 đến 2h30
nếu là màu xanh vàng: biết trước hạn 0h30 phút đến 01h00 cảnh báo 3, trước hạn còn từ 30phut đến 1h00
nếu là màu xanh đỏ là biết trước hạn còn 0h00 đến 0h30 cảnh báo 4 trước hạn 30 phút đến hết giờ)
nêu là màu nâu hết giờ < giờ hệ thống hết giờ

Cụ thể:
1-Nếu giờ của (mỗi) ô < giờ hệ thống + từ 03h00 phút trở lên: thì để nguyên (không mầu) nền trắng, chữ đen

2 -Nếu giờ của (mỗi) ô < giờ hệ thống - từ 03h00 đến 02h30 -> bắt đầu chuyển mầu xanh lơ : cảnh báo bắt đầu
ví dụ giờ hệ thống 10h00 thì giờ các ô có giá trị từ 12h30 đến ô 13h00 : mầu xanh lơ
3 -Nếu giờ của (mỗi) ô < giờ hệ thống - từ 02h30 đến 01h00 -> bắt đầu chuyển mầu xanh lá : cảnh báo chú ý
ví dụ giờ hệ thống 10h00 thì giờ các ô có giá trị từ 11h00 đến ô 12h30 trở đi : mầu xanh lá
4 -Nếu giờ của (mỗi) ô < giờ hệ thống - từ 1h00 đến 00h30 -> bắt đầu chuyển mầu vàng : cảnh báo chú ý tăng
giờ hệ thống 10h00 thì giờ các ô có giá trị từ 10h30 đến ô 11h00 trở đi : mầu vàng
5 -Nếu giờ của (mỗi) ô < giờ hệ thống - 0h30 đến 0h00 -> chuyển mầu đỏ ( hồng) : cảnh báo báo động : người dùng thực hiện ngay việc
giờ hệ thống 10h00 thì giờ các ô có giá trị từ 10h01 đến ô 10h30 trở đi : mầuđỏ
6 -Nếu giờ của (mỗi) ô < giờ hệ thống -0h00 -> chuyển màu nâu ( ví dụ) : công việc đã hoàn thành

Mỗi việc xếp theo giờ chạy xe có 14 bước kiểm tra như vậy
Ngày có nhiều việc ( theo giờ chạy xe)
Do giờ hệ thống tăng lên theo thời gian nên giờ các ô ( giá trị không đổi) nhưng độ chệnh với giờ hệ thống thay đổi nên khoảng tổ mầu có thay đổi
và được cập nhật lại khi click chuột vào cập nhật giờ ( lấy giờ hệ thống)
Không hiểu mô tả như vậy Anh Đệ thấy rõ ý chưa ah
Xin cảm ơn
 

File đính kèm

  • tô màu bước kiểm tra theo giờz.xlsm
    34.8 KB · Đọc: 8
Upvote 0
Trong lúc chờ đợi thì xài đỡ quả chuối này:
PHP:
Option Explicit
Sub Tomaucell()
Dim hrs, CIndex As Long
Dim cell As Range
Application.ScreenUpdating = False
Range("C7:M32").Interior.ColorIndex = xlNone
For Each cell In Range("C7:M32")
    hrs = (Range("L1").Value - cell) * 24
    Select Case hrs
        Case Is >= 3
            CIndex = xlNone
        Case Is >= 2.5
            CIndex = 20
        Case Is >= 1
            CIndex = 4
        Case Is >= 0.5
            CIndex = 6
        Case Is > 0
            CIndex = 7
        Case Else
            CIndex = 9
    End Select
    cell.Interior.ColorIndex = CIndex
Next
Application.ScreenUpdating = True
End Sub
 

File đính kèm

  • tô màu bước kiểm tra theo giờz.xlsm
    36.2 KB · Đọc: 16
Upvote 0
Cảm ơn anh nhiều nhé . Hi
nhưng code chạy tô màu bị ngược anh ah.
Tks
 
Upvote 0
Cái này chắc không phải dùng Conditional Formatting đâu :D.
Mở lên rồi để đó cả ngày cũng được, không cần phải bấm cái gì cả.
 
Upvote 0
Cảm ơn Anh Đệ nhiều
Rất xin lỗi vì mô tả các mong muốn yêu cầu chưa làm rõ nghĩa do khó mô tả
nhưng Về mặt tô mầu theo giá trị ô thì anh Đệ đã nắm đươc yêu cầu của công việc đặt ra là

- Các ô ( theo bước thực hiệu công việc ) -> Sẽ chuyển mầu theo giá trị giờ của hệ thống theo mầu qui ước để nhắc cho người làm thực hiện

theo luật : giá trị giờ các ô - khi so theo giờ hệ thống sẽ có các mức sau :
trước 03h00 để nguyên còn sớm hơn 03h00

sau đó bước lùi là 30 phút sẽ thay đổi theo mầu xanh lơ- xanh lá- vàng- đỏ . Sau đó là hết giờ khi giờ hệ thống > giờ cần làm của ô -> mầu nâu
để người xem chỉ cần nhìn vào mầu là biết bước đó so với yêu cầu phải kiểm tra là bao nhiêu phút

nếu ko mầu: là trước hạn giờ phải thực hiện là >3h00. còn sớm
Nếu là mầu xanh lơ là biết trước hạn thực hiện 02h30 đến 03h00, cảnh báo 1, trước hạn còn đến 3h00
nếu là màu xanh lá: biết trước hạn 01h00 đến 02h30 cảnh báo 2, trước hạn còn từ 1h00 đến 2h30
nếu là màu xanh vàng: biết trước hạn 0h30 phút đến 01h00 cảnh báo 3, trước hạn còn từ 30phut đến 1h00
nếu là màu xanh đỏ là biết trước hạn còn 0h00 đến 0h30 cảnh báo 4 trước hạn 30 phút đến hết giờ)
nêu là màu nâu hết giờ < giờ hệ thống hết giờ

Cụ thể:
1-Nếu giờ của (mỗi) ô < giờ hệ thống + từ 03h00 phút trở lên: thì để nguyên (không mầu) nền trắng, chữ đen

2 -Nếu giờ của (mỗi) ô < giờ hệ thống - từ 03h00 đến 02h30 -> bắt đầu chuyển mầu xanh lơ : cảnh báo bắt đầu
ví dụ giờ hệ thống 10h00 thì giờ các ô có giá trị từ 12h30 đến ô 13h00 : mầu xanh lơ
3 -Nếu giờ của (mỗi) ô < giờ hệ thống - từ 02h30 đến 01h00 -> bắt đầu chuyển mầu xanh lá : cảnh báo chú ý
ví dụ giờ hệ thống 10h00 thì giờ các ô có giá trị từ 11h00 đến ô 12h30 trở đi : mầu xanh lá
4 -Nếu giờ của (mỗi) ô < giờ hệ thống - từ 1h00 đến 00h30 -> bắt đầu chuyển mầu vàng : cảnh báo chú ý tăng
giờ hệ thống 10h00 thì giờ các ô có giá trị từ 10h30 đến ô 11h00 trở đi : mầu vàng
5 -Nếu giờ của (mỗi) ô < giờ hệ thống - 0h30 đến 0h00 -> chuyển mầu đỏ ( hồng) : cảnh báo báo động : người dùng thực hiện ngay việc
giờ hệ thống 10h00 thì giờ các ô có giá trị từ 10h01 đến ô 10h30 trở đi : mầuđỏ
6 -Nếu giờ của (mỗi) ô < giờ hệ thống -0h00 -> chuyển màu nâu ( ví dụ) : công việc đã hoàn thành

Mỗi việc xếp theo giờ chạy xe có 14 bước kiểm tra như vậy
Ngày có nhiều việc ( theo giờ chạy xe)
Do giờ hệ thống tăng lên theo thời gian nên giờ các ô ( giá trị không đổi) nhưng độ chệnh với giờ hệ thống thay đổi nên khoảng tổ mầu có thay đổi
và được cập nhật lại khi click chuột vào cập nhật giờ ( lấy giờ hệ thống)
Không hiểu mô tả như vậy Anh Đệ thấy rõ ý chưa ah
Xin cảm ơn
Bài toán trở lại đơn giản như ban đầu... không phải cốt kiết gì cả...
Chỉ cần CF vì giá trị của cell không đổi
Bấm F9 --> là update màu thôi...
 

File đính kèm

  • tô màu bước kiểm tra theo giờ 333.xlsm
    34.2 KB · Đọc: 15
Upvote 0
Bài toán trở lại đơn giản như ban đầu... không phải cốt kiết gì cả...
Chỉ cần CF vì giá trị của cell không đổi
Bấm F9 --> là update màu thôi...
Tính ra thời gian cần cập nhật tiếp theo và đặt một lệnh Ontime là không cần phải bấm nút gì cả.
 
Upvote 0
Hi. nó đi một vòng rồi lại về đúng ý luôn
Xin cảm ơn anh Đệ, anh Thắng và các bạn nhiều nhiều
Brgds.Nguyên
 
Upvote 0
Web KT
Back
Top Bottom