Tạo chuông báo giờ trong Excel

hoankha

Thành viên mới
Tham gia ngày
17 Tháng sáu 2009
Bài viết
12
Được thích
0
Điểm
0
Tuổi
35
Có cách nào tạo chuông báo giờ trong Excel khong chỉ mình với
Chẳn hạn làm chuông báo cơm. 8g vào 12g ăn cơm nghĩ tới 13 giờ vào và 5g về.
Làm đc đồng hồ chắt các bác làm cái này đc thôi.
 

sealand

Thành viên gạo cội
Tham gia ngày
16 Tháng năm 2008
Bài viết
4,877
Được thích
7,770
Điểm
860
Tuổi
60
Nơi ở
Hải Phòng
Bạn làm thử:
1/Chọn sự kiện Worksheet_Activate của sheet1 bạn nạp code:
Mã:
Private Sub Worksheet_Activate()
Application.OnTime Now + TimeValue("00:00:3"), "tbao"     ' [COLOR=Green]3 giây sau có vấn đề[/COLOR]
End Sub
2/ Bạn Insert 1 Module rồi thêm code:
Mã:
Sub tbao()
Beep
MsgBox "Moi ban an com"
End Sub
Trở về bảng tính chọn sheet bất kỳ, rồi trở về sheet1 (Khởi động sự kiện Worksheet_Activate) đợi 3 giây sau sẽ có kết quả.Lưu ý là file này phải mở liên tục nếu không đến tối mới được ăn cơm đấy.
Để thành 4 giờ sau chắc bạn làm được và bạn chuyển sang sự kiện Workbook_Open.Bạn tìm bài của AnhTuan1066 hướng dẫn phát 1 bản nhạc cho khí thế. Chúc bạn thành công.
 
Lần chỉnh sửa cuối:

rollover79

Thành viên tiêu biểu
Tham gia ngày
10 Tháng chín 2008
Bài viết
764
Được thích
1,302
Điểm
860
Bạn làm thử:
1/Chọn sự kiện Worksheet_Activate của sheet1 bạn nạp code:
Mã:
Private Sub Worksheet_Activate()
Application.OnTime Now + TimeValue("00:00:3"), "tbao"     ' [COLOR=Green]3 giây sau có vấn đề[/COLOR]
End Sub
2/ Bạn Insert 1 Module rồi thêm code:
Mã:
Sub tbao()
Beep
MsgBox "Moi ban an com"
End Sub
Trở về bảng tính chọn sheet bất kỳ, rồi trở về sheet1 (Khởi động sự kiện Worksheet_Activate) đợi 3 giây sau sẽ có kết quả.Lưu ý là file này phải mở liên tục nếu không đến tối mới được ăn cơm đấy.
Để thành 4 giờ sau chắc bạn làm được và bạn chuyển sang sự kiện Workbook_Open.Bạn tìm bài của AnhTuan1066 hướng dẫn phát 1 bản nhạc cho khí thế. Chúc bạn thành công.
Dùng cách này thì trước giờ cơm 3 giây thì phải mở file excel này lên đúng ko nhỉ? Vậy ai sẽ báo cho bạn trước 3 giây để bạn mở file excel này lên?
 

sealand

Thành viên gạo cội
Tham gia ngày
16 Tháng năm 2008
Bài viết
4,877
Được thích
7,770
Điểm
860
Tuổi
60
Nơi ở
Hải Phòng
Sao 1 cao thủ như bạn lại có câu hỏi vậy nhỉ?
Ở đây, mình test 3 giây thực hiện yêu cầu và mình tin bạn ấy dư sức làm 4 giờ sau báo cơm, báo nghỉ. Nói tóm lại, mình chỉ gợi ý chiêu mình biết thôi, bạn ấy mày mò 1 chút hy vọng nhớ dai hơn.
Lẽ nào bạn lại chịu trước 3 giây mở file.

P/s: Hoankha lưu ý bạn đặt như sau:

Application.OnTime TimeValue("12:00:00"), "tbao"
 
Lần chỉnh sửa cuối:

rollover79

Thành viên tiêu biểu
Tham gia ngày
10 Tháng chín 2008
Bài viết
764
Được thích
1,302
Điểm
860
Sao 1 cao thủ như bạn lại có câu hỏi vậy nhỉ?
Ở đây, mình test 3 giây thực hiện yêu cầu và mình tin bạn ấy dư sức làm 4 giờ sau báo cơm, báo nghỉ. Nói tóm lại, mình chỉ gợi ý chiêu mình biết thôi, bạn ấy mày mò 1 chút hy vọng nhớ dai hơn
Lẽ nào bạn lại chịu trước 3 giây mở file.
Tôi lấy 3 giây là muốn ví dụ vậy thôi, cái mà tôi muốn nói đến là dù có 4giờ hay 24 giờ đi nữa, thì trước đó 4 giờ hay 24 giờ (1 khoảng thời gian xác định), bạn phải kích hoạt cái sự kiện này của bạn lên, vậy thì ai sẽ nhắc nhở bạn cái thời điểm để bạn kích hoạt sự kiện này lên? Nếu bạn cứ nhăm nhăm nhớ cái thời điểm để kích hoạt sự kiện này lên thì chẳng thà bạn nhớ luôn đến cái giờ cơm và đứng dậy báo chuông bằng cái máy chạy bằng "CƠM" cho nó xong. Ý nghĩa của cái Reminder là khi tôi tạo ra nó tại bất kỳ 1 thời điểm nào đó và muốn đến 1 thời gian xác định nào đó nó sẽ báo cho tôi biết. Còn cái của bạn là khi tôi muốn đến 1 thời gian xác định nào đó nó sẽ báo cho tôi biết, thì đến trước đó 1 khoảng thời gian xác định, tôi sẽ phải nhớ để tạo ra nó, bạn nghĩ xem nó có ý nghĩa không?
 

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
30,502
Được thích
53,172
Điểm
11,910
Cái vụ báo động này mà dùng Excel thì không đúng lắm (không phải là không được) ---> Chuyên nghiệp, người ta sẽ dùng 1 MÁY BÁO GIỜ, có tiếng nói luôn
Ngày, giờ tự bạn cài đặt vào, đến giờ nó sẽ phát tiếng nói (tiếng nói này cũng do ta tự cài vào)
Nếu đơn giản, tôi nghĩ dùng Scheduled Task (1 công cụ của Windows) là thích hợp nhất
 

hoankha

Thành viên mới
Tham gia ngày
17 Tháng sáu 2009
Bài viết
12
Được thích
0
Điểm
0
Tuổi
35
Ồh!! thế là không được hã!
ý mình muốn tạo chuông báo thức tương tự như ĐT vậy,
khi khởi động file là cứ đến giờ đó là nó báo chứ không cần phải tính sau mấy giờ thì nó báo cả vì không phải lúc nào mình cũng mỡ file vào đúng giờ dó. chẳn hạn như cái đồng hồ trong Excel đó cứ mở lên là nó chạy đúng theo giờ hệ thống Àh!!
 

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia ngày
17 Tháng tám 2008
Bài viết
7,692
Được thích
15,326
Điểm
1,910
Tuổi
43
Nơi ở
TPHCM
Ồh!! thế là không được hã!
ý mình muốn tạo chuông báo thức tương tự như ĐT vậy,
khi khởi động file là cứ đến giờ đó là nó báo chứ không cần phải tính sau mấy giờ thì nó báo cả vì không phải lúc nào mình cũng mỡ file vào đúng giờ dó. chẳn hạn như cái đồng hồ trong Excel đó cứ mở lên là nó chạy đúng theo giờ hệ thống Àh!!
Nếu không có những phần mềm chuyên nghiệp, trong bộ Microsoft Office có phần mềm Microsoft Outlook rất tiện ích cho việc nhắc nhở trong phần Calendar.
 

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
30,502
Được thích
53,172
Điểm
11,910
Ồh!! thế là không được hã!
ý mình muốn tạo chuông báo thức tương tự như ĐT vậy,
khi khởi động file là cứ đến giờ đó là nó báo chứ không cần phải tính sau mấy giờ thì nó báo cả vì không phải lúc nào mình cũng mỡ file vào đúng giờ dó. chẳn hạn như cái đồng hồ trong Excel đó cứ mở lên là nó chạy đúng theo giờ hệ thống Àh!!
Không phải là không được! Có điều dùng Excel để Alarm thì không hợp cho lắm
Nếu bạn muốn, tôi gữi bạn code này
PHP:
Option Explicit
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
Dim CountDown As Double
PHP:
Sub Chay()
  CountDown = Now + TimeValue("00:00:01")
  Application.OnTime CountDown, "Reset"
End Sub
PHP:
Sub Reset()
  Range("J3:R3").Value = Int(Hour(Now) / 10)
  Range("U3:AC3").Value = Hour(Now) Mod 10
  Range("AJ3:AR3").Value = Int(Minute(Now) / 10)
  Range("AU3:BC3").Value = Minute(Now) Mod 10
  Range("BJ3:BR3").Value = Int(Second(Now) / 10)
  Range("BU3:CC3").Value = Second(Now) Mod 10
  Call Chay
  If Format(Now, "hh:mm:ss") = Format([CQ31], "hh:mm:ss") Then Alarm "Play"
  If Format(Now, "hh:mm:ss") = Format([CQ32], "hh:mm:ss") Then Alarm "Stop"
End Sub
PHP:
Sub Dung()
  On Error Resume Next
  Application.OnTime CountDown, "Reset", , False
End Sub
PHP:
Sub Alarm(Check As String)
  mciExecute Check & " C:\WINDOWS\Media\flourish.mid"
End Sub
PHP:
Private Sub Workbook_Open()
  Chay
End Sub
Code dựa vào file đồng hồ tại đây:
http://www.giaiphapexcel.com/forum/showpost.php?p=181332&postcount=17
Lưu ý: Gõ giờ khởi động vào cell CQ31 ---> Đúng giờ này thì âm thanh sẽ phát ra, sau 15 giây, tự nó sẽ dừng (con số 15 giây dựa vào công thức tại cell CQ32, bạn có thể chỉnh lại bao nhiêu tùy ý)
 

File đính kèm

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia ngày
17 Tháng tám 2008
Bài viết
7,692
Được thích
15,326
Điểm
1,910
Tuổi
43
Nơi ở
TPHCM
Không phải là không được! Có điều dùng Excel để Alarm thì không hợp cho lắm
Code dựa vào file đồng hồ tại đây:
http://www.giaiphapexcel.com/forum/showpost.php?p=181332&postcount=17
Lưu ý: Gõ giờ khởi động vào cell CQ31 ---> Đúng giờ này thì âm thanh sẽ phát ra, sau 15 giây, tự nó sẽ dừng (con số 15 giây dựa vào công thức tại cell CQ32, bạn có thể chỉnh lại bao nhiêu tùy ý)
Quá hay! Cái hay ở đây là dùng các Cells thu nhỏ với 2 màu trắng, đen luân phiên nhau tạo ra số!
Xin cảm ơn!
 

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
30,502
Được thích
53,172
Điểm
11,910
Quá hay! Cái hay ở đây là dùng các Cells thu nhỏ với 2 màu trắng, đen luân phiên nhau tạo ra số!
Xin cảm ơn!
Chú ý dòng số 3 trong khu vực đồng hồ và công thức trong Conditional Formating nhé
Code trong VBA sẽ gán số vào khu vực đồng hồ tại dòng số 3 ---> Sau đó dùng Conditional Format tạo ra Led 7 đoạn
Thấy hoành tráng thế chứ cực kỳ đơn giản (bảo đảm bạn thừa sức làm file này)
 

hoankha

Thành viên mới
Tham gia ngày
17 Tháng sáu 2009
Bài viết
12
Được thích
0
Điểm
0
Tuổi
35
Chết rồi mở file báo thức là nó chạy luôn hết những file khác đang mở luôn kiểu này là dl di hết quá
 

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
30,502
Được thích
53,172
Điểm
11,910
Chết rồi mở file báo thức là nó chạy luôn hết những file khác đang mở luôn kiểu này là dl di hết quá
Trời ơi... file gợi ý... bạn chạy nhiều file cùng 1 lúc thì phải biết chỉnh lại code chứ
Chổ nào có chử Range(...) thì sửa lại thành ThisWorkbook.Sheets(1).Range(...)
Cụ thế, tại Sub Reset, bạn sửa lại thành:
PHP:
Sub Reset()
  ThisWorkbook.Sheets(1).Range("J3:R3").Value = Int(Hour(Now) / 10)
  ThisWorkbook.Sheets(1).Range("U3:AC3").Value = Hour(Now) Mod 10
  ThisWorkbook.Sheets(1).Range("AJ3:AR3").Value = Int(Minute(Now) / 10)
  ThisWorkbook.Sheets(1).Range("AU3:BC3").Value = Minute(Now) Mod 10
  ThisWorkbook.Sheets(1).Range("BJ3:BR3").Value = Int(Second(Now) / 10)
  ThisWorkbook.Sheets(1).Range("BU3:CC3").Value = Second(Now) Mod 10
  Call Chay
  If Format(Now, "hh:mm:ss") = Format(ThisWorkbook.Sheets(1).[CQ31], "hh:mm:ss") Then Alarm "Play"
  If Format(Now, "hh:mm:ss") = Format(ThisWorkbook.Sheets(1).[CQ32], "hh:mm:ss") Then Alarm "Stop"
End Sub
Là OK ngay!
Xài của người khác nhưng không biết tí gì về VBA nên không biết tùy biến là khổ thế đấy!
 

File đính kèm

Lần chỉnh sửa cuối:

AnhThu-1976

Thành viên tiêu biểu
Tham gia ngày
17 Tháng mười 2014
Bài viết
786
Được thích
120
Điểm
420
Trời ơi... file gợi ý... bạn chạy nhiều file cùng 1 lúc thì phải biết chỉnh lại code chứ
Chổ nào có chử Range(...) thì sửa lại thành ThisWorkbook.Sheets(1).Range(...)
Cụ thế, tại Sub Reset, bạn sửa lại thành:
PHP:
Sub Reset()
  ThisWorkbook.Sheets(1).Range("J3:R3").Value = Int(Hour(Now) / 10)
  ThisWorkbook.Sheets(1).Range("U3:AC3").Value = Hour(Now) Mod 10
  ThisWorkbook.Sheets(1).Range("AJ3:AR3").Value = Int(Minute(Now) / 10)
  ThisWorkbook.Sheets(1).Range("AU3:BC3").Value = Minute(Now) Mod 10
  ThisWorkbook.Sheets(1).Range("BJ3:BR3").Value = Int(Second(Now) / 10)
  ThisWorkbook.Sheets(1).Range("BU3:CC3").Value = Second(Now) Mod 10
  Call Chay
  If Format(Now, "hh:mm:ss") = Format(ThisWorkbook.Sheets(1).[CQ31], "hh:mm:ss") Then Alarm "Play"
  If Format(Now, "hh:mm:ss") = Format(ThisWorkbook.Sheets(1).[CQ32], "hh:mm:ss") Then Alarm "Stop"
End Sub
Là OK ngay!
Xài của người khác nhưng không biết tí gì về VBA nên không biết tùy biến là khổ thế đấy!
Code của anh, đoạn này
Mã:
Sub Alarm(Check As String)
  mciExecute Check & " C:\WINDOWS\Media\flourish.mid"
End Sub
thay thế bằng
Mã:
Sub Alarm(Check As String)
  mciExecute Check & " E:\My Music\Boney\Little Drummer Boy.mp3"
End Sub
Khi đến giờ phát nhạc thì nó báo lỗi
"the specified device is not open or is not recognized by MCI"
Vậy cho em hỏi cần fải sửa code như thế nào ạ. Em cảm ơn
 

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
30,502
Được thích
53,172
Điểm
11,910
Code của anh, đoạn này
Mã:
Sub Alarm(Check As String)
  mciExecute Check & " C:\WINDOWS\Media\flourish.mid"
End Sub
thay thế bằng
Mã:
Sub Alarm(Check As String)
  mciExecute Check & " E:\My Music\Boney\Little Drummer Boy.mp3"
End Sub
Khi đến giờ phát nhạc thì nó báo lỗi
"the specified device is not open or is not recognized by MCI"
Vậy cho em hỏi cần fải sửa code như thế nào ạ. Em cảm ơn
Đương nhiên lỗi rồi. Bởi code ấy không thiết kế cho việc phát nhạc mp3
 

AnhThu-1976

Thành viên tiêu biểu
Tham gia ngày
17 Tháng mười 2014
Bài viết
786
Được thích
120
Điểm
420
Em thấy file có sẵn ở bài #14 rồi mà anh
 

audex

Thành viên mới
Tham gia ngày
22 Tháng ba 2014
Bài viết
5
Được thích
0
Điểm
163
Tuổi
29
muốn làm nhiều mức chuông báo thì như nào các bác
 
Top Bottom