Private Sub Worksheet_Activate()
Application.OnTime Now + TimeValue("00:00:3"), "tbao" ' [COLOR=Green]3 giây sau có vấn đề[/COLOR]
End Sub
Sub tbao()
Beep
MsgBox "Moi ban an com"
End Sub
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?Bạn làm thử:
1/Chọn sự kiện Worksheet_Activate của sheet1 bạn nạp code:
2/ Bạn Insert 1 Module rồi thêm 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
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.Mã:Sub tbao() Beep MsgBox "Moi ban an com" End Sub
Để 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.
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?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.
Ồ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Ồ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!!
Option Explicit
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
Dim CountDown As Double
Sub Chay()
CountDown = Now + TimeValue("00:00:01")
Application.OnTime CountDown, "Reset"
End Sub
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
Sub Dung()
On Error Resume Next
Application.OnTime CountDown, "Reset", , False
End Sub
Sub Alarm(Check As String)
mciExecute Check & " C:\WINDOWS\Media\flourish.mid"
End Sub
Private Sub Workbook_Open()
Chay
End Sub
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 ý)
Chú ý dòng số 3 trong khu vực đồng hồ và công thức trong Conditional Formating nhé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!
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ế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á
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
Code của anh, đoạn nàyTrờ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:
Là OK ngay!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
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!
Sub Alarm(Check As String)
mciExecute Check & " C:\WINDOWS\Media\flourish.mid"
End Sub
Sub Alarm(Check As String)
mciExecute Check & " E:\My Music\Boney\Little Drummer Boy.mp3"
End Sub
Code của anh, đoạn này
thay thế bằngMã:Sub Alarm(Check As String) mciExecute Check & " C:\WINDOWS\Media\flourish.mid" End Sub
Khi đến giờ phát nhạc thì nó báo lỗiMã:Sub Alarm(Check As String) mciExecute Check & " E:\My Music\Boney\Little Drummer Boy.mp3" End Sub
"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
Vậy cho em hỏi có cách nào để sử dụng nhạc mp3 không ạĐương nhiên lỗi rồi. Bởi code ấy không thiết kế cho việc phát nhạc mp3
Vậy cho em hỏi có cách nào để sử dụng nhạc mp3 không ạ