Tạo thông báo nhắc nhở công việc (Excel + PowerShell + Task scheduler) (1 người xem)

Người dùng đang xem chủ đề này

ongke0711

Thành viên gắn bó
Tham gia
7/9/06
Bài viết
2,467
Được thích
3,376
Giới tính
Nam
Lấy ý tưởng từ bài của bác @huuthang_bd (link), tôi làm cái ứng dụng nhỏ này để hiển thị thông báo khi công việc đến hạn, cần xử lý.
Ứng dụng này không dùng file VBS nữa mà đổi sang PowerShell để tương tác tạo bảng thông báo (Form của .NET).
Microsoft đã không còn hỗ trợ VBS nên các phiên bản Windows 11 sau này (24H2) phải tự cài VBS chứ không mặc định cài sẵn. Do vậy một số máy sẽ không còn chạy được các file VBS.
Vì code để hiển thị thông báo đơn giản nên vẫn sẽ có một số hạn chế, lỗi như:
- Vẫn hiện màn hình console. Để từ từ ngâm cứu tiếp rồi sửa.
- Người dùng phải mở file excel để bấm cập nhật công việc thì hệ thống thông báo mới đúng và đủ.
- File PowerShell (PS) có thể trực tiếp mở file Excel để lấy thông tin đưa vào bảng nhưng tôi không dùng code này để tránh đụng khi người dùng đang thao tác trên file Excel này. Hơn nữa để PS làm việc với Excel thì sẽ phải nạp thêm thư việc "Import-Excel" nhưng đối với máy không có quyền Administrator sẽ phải thêm mấy bước cài đặt -> cũng hơi phiền nên dùng cách đọc CSV.

Screenshot 2026-03-30 at 10.55.12 PM.png


Screenshot at Mar 31 11-48-33 PM.png


*** Đã cập nhật sửa lỗi dữ liệu chỉ có 1 dòng.
*** Cập nhật hiển thị icon lịch để chọn ngày nhanh.
 

File đính kèm

Lần chỉnh sửa cuối:
e thử thấy nếu để 1 dòng thì xem thông báo lại không hiện bác nhỉ
 
Bạn tải lại file ở bài #1 nhé. Tôi đã sửa lỗi.

Do lỗi file PowerShell. Khi dữ liệu chỉ có 1 dòng, PS tự động chuyển $Data thành Object nên chỉ đếm trả về 0. Tôi ép kiểu thành mảng hết.

Bash:
function Read-CSV { param([string]$Path)
    if (-not (Test-Path $Path)) { return @() }
    try   { return @(Import-Csv -Path $Path -Encoding Unicode) }
    catch { return @(Import-Csv -Path $Path -Encoding UTF8)    }
}
$data = @(Read-CSV $CsvPath)
 
Lấy ý tưởng từ bài của bác @huuthang_bd (link), tôi làm cái ứng dụng nhỏ này để hiển thị thông báo khi công việc đến hạn, cần xử lý.
Ứng dụng này không dùng file VBS nữa mà đổi sang PowerShell để tương tác tạo bảng thông báo (Form của .NET).
Microsoft đã không còn hỗ trợ VBS nên các phiên bản Windows 11 sau này (24H2) phải tự cài VBS chứ không mặc định cài sẵn. Do vậy một số máy sẽ không còn chạy được các file VBS.
Vì code để hiển thị thông báo đơn giản nên vẫn sẽ có một số hạn chế, lỗi như:
- Vẫn hiện màn hình console. Để từ từ ngâm cứu tiếp rồi sửa.
- Người dùng phải mở file excel để bấm cập nhật công việc thì hệ thống thông báo mới đúng và đủ.
- File PowerShell (PS) có thể trực tiếp mở file Excel để lấy thông tin đưa vào bảng nhưng tôi không dùng code này để tránh đụng khi người dùng đang thao tác trên file Excel này. Hơn nữa để PS làm việc với Excel thì sẽ phải nạp thêm thư việc "Import-Excel" nhưng đối với máy không có quyền Administrator sẽ phải thêm mấy bước cài đặt -> cũng hơi phiền nên dùng cách đọc CSV.

View attachment 311356


*** Đã cập nhật sửa lỗi dữ liệu chỉ có 1 dòng.
anh ơi cho em hỏi nội dung tên công việc nhiều mà hiện có 4 thông báo à (vậy có thể cài thêm nhiều thông báo tên công việc thì làm sao à). Với lại sheet cài đặt mình có thể cài trên 7 ngày được không à. Nút xem thông báo em bấm vô thấy báo lỗi á anh.
 
Em thử nhưng đang lỗi thế này ạ.

Lỗi khi chọn cài đặt


View attachment 311364
Bạn muốn lưu ở đâu thì copy nguyên thư mục [NHACNHOCONGVIEC] rồi lưu, không được tách các file trong đó ra lưu riêng.
Bài đã được tự động gộp:

anh ơi cho em hỏi nội dung tên công việc nhiều mà hiện có 4 thông báo à (vậy có thể cài thêm nhiều thông báo tên công việc thì làm sao à). Với lại sheet cài đặt mình có thể cài trên 7 ngày được không à. Nút xem thông báo em bấm vô thấy báo lỗi á anh.
Sheet [CaiDat] là để bạn nhập số ngày muốn hiển thị. Code sẽ lọc danh sách công việc ứng với điều kiện rồi xuất thông báo thôi.
 
Anh cho em hỏi thêm là hiện thông báo được vài phút tự tắt thông báo, vậy có cách nào hiện thông báo được lâu không anh.
Bạn muốn lưu ở đâu thì copy nguyên thư mục [NHACNHOCONGVIEC] rồi lưu, không được tách các file trong đó ra lưu riêng.
Bài đã được tự động gộp:


Sheet [CaiDat] là để bạn nhập số ngày muốn hiển thị. Code sẽ lọc danh sách công việc ứng với điều kiện rồi xuất thông báo thôi.
 
Anh cho em hỏi thêm là hiện thông báo được vài phút tự tắt thông báo, vậy có cách nào hiện thông báo được lâu không anh.
Cửa sổ thông báo không có tự tắt đâu bạn, do nó không ở chế độ Modal nên sẽ bị nằm sau các ứng dụng khác khi có tương tác.
 
cám ơn bác, ứng dụng rất hữu ích. bản nâng cấp sau nếu tiện thì ngày tháng bác chèn lịch vào đó để dễ nhìn nữa thì tuyệt.
Đã cập nhật có chèn icon lịch để chọn ngày cho nhanh.

WYc357L.png
 
Đã cập nhật có chèn icon lịch để chọn ngày cho nhanh.

Rất cám ơn bản cập nhật của bác. e chia sẻ thêm, nếu được bác cho chọn thêm tần suất thông báo nữa (mỗi ngày, mỗi tuần, mỗi tháng). giống như chọn tháng thì ngày 19 mỗi tháng sẽ nhắc nhở nộp báo cáo thuế chẳn hạn. vì có 1 số công việc lặp đi lặp lại hàng tuần/hàng tháng.
Một lần nữa xin cám ơn vì ứng dụng rất hữu ích của bác.
 
Rất cám ơn bản cập nhật của bác. e chia sẻ thêm, nếu được bác cho chọn thêm tần suất thông báo nữa (mỗi ngày, mỗi tuần, mỗi tháng). giống như chọn tháng thì ngày 19 mỗi tháng sẽ nhắc nhở nộp báo cáo thuế chẳn hạn. vì có 1 số công việc lặp đi lặp lại hàng tuần/hàng tháng.

Muốn nhiều chức năng thì tôi chỉ biết làm trên Access thôi """:::":\ .

xbYwdI8.png
 

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

Back
Top Bottom