Đặt thời gian tắt Form

Liên hệ QC

Hoacomay96

Thành viên chính thức
Tham gia
18/3/08
Bài viết
96
Được thích
8
Các bác cho em hỏi . ở trên form1 em có tạo nút lệnh để mở form2 và tắt form1 đi. nhưng form2 mở ra rồi mà form1 vẫn còn hiện không tắt. em có thêm đoạn mã của bác Voda cho như sau:
Private Sub UserForm_Activate()
Application.Wait Now + TimeValue("00:00:05")
UserForm1.Hide
End Sub
nhưng khi thực thi thì trên form2 không cho mhập liệu hoặc làm thao tác gì cả.
Vậy các bác xem cách nào mở form2 và đóng form1 mà nẫn sử dụng fom2 bình thường. Đặt thời gian của form hiện hành như thế nào ạ mà form đó vẫn hoạt động bình thường trong thời gian đó.
 
Các bác cho em hỏi . ở trên form1 em có tạo nút lệnh để mở form2 và tắt form1 đi. nhưng form2 mở ra rồi mà form1 vẫn còn hiện không tắt. em có thêm đoạn mã của bác Voda cho như sau:
Private Sub UserForm_Activate()
Application.Wait Now + TimeValue("00:00:05")
UserForm1.Hide
End Sub
nhưng khi thực thi thì trên form2 không cho mhập liệu hoặc làm thao tác gì cả.
Vậy các bác xem cách nào mở form2 và đóng form1 mà nẫn sử dụng fom2 bình thường. Đặt thời gian của form hiện hành như thế nào ạ mà form đó vẫn hoạt động bình thường trong thời gian đó.

Bạn nên sửa lại như sau:
PHP:
Private Sub UserForm_Activate()
Application.Wait Now + TimeValue("00:00:05")
Unload UserForm1
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
-Bạn vào Properties của 2 form chỉnh ShowModal = False.
-Và bỏ luôn dòng lệnh Application.Wait Now + TimeValue("00:00:05") để form tắt nhanh hơn.
 

File đính kèm

Upvote 0
Món Này Dễ Mà. Từ Fỏm Ba Trở đi Bạn Có Thể Nhập Liệu Dễ Dàng
 
Lần chỉnh sửa cuối:
Upvote 0
Món Này Dễ Mà. Từ Fỏm Ba Trở đi Bạn Có Thể Nhập Liệu Dễ Dàng

Vấn đề là khi mở nhiều form bạn có thể chọn qua lại để nhập liệu trên các form đó. Làm như bạn thì chỉ chọn được form cuối để nhập, quay lại form 1 hoặc form 2 thì không được.


Làm theo cách của bạn voda là hay nhất.
 
Upvote 0
Vậy thì chỉ có cách đóng fom này mở cái fỏm kia thôi. Trên excle, chỉ có một fỏm duy nhất thuôc dạng "Tiêu chuẩn" cua Mrosoft đã quy định, không giống như Viuâlbsic thuần tuý.
 
Upvote 0
Vậy thì chỉ có cách đóng fom này mở cái fỏm kia thôi. Trên excle, chỉ có một fỏm duy nhất thuôc dạng "Tiêu chuẩn" cua Mrosoft đã quy định, không giống như Viuâlbsic thuần tuý.

Bạn đã thử làm theo cách của bạn voda chưa? Nếu chưa thì thử xem
 
Upvote 0
em đã làm theo cách của bác voda là chọn chế độ ShowModal = False. thì được rồi (mở form 2 và tắ form 1 luôn). còn trường hợp để chế độ chờ nhập liệu của form thì chưa được (form đang kích hoạt chờ nhập liệu, nếu trong khoảng 30 s mà không nhập thì tắt form). các bác tìm giúp em nhé.
 
Upvote 0
PHP:
Private Sub UserForm_Activate()
 If TextBox1.Value = "" Then
     Application.OnTime Now + TimeValue("00:00:05"), "dong_form"
 Else
     Application.OnTime Now + TimeValue("00:00:05"), "dong_form", , False
 End If
End Sub
PHP:
Public Sub dong_form()
 Unload UserForm1
End Sub
Các bác chỉ giúp hộ em sao sau 5 giây form không tự đóng lại với.
Em tạo một userform và 1 textbox, điều kiện là khi mở form ra, nếu textbox.value = " " thì sau 5 giây gọi thủ tục đóng form nhưng (học) lực bất tòng tâm &&&%$R
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Đoạn code trên chạy tốt. Có thể chỉnh lại một chút như sau:
Mã:
Private Sub UserForm_Activate()
If TextBox1.Value = "" Then
Application.OnTime Now + TimeValue("00:00:05"), "dong_form"
End If
End Sub

Mã:
Public Sub dong_form()
Unload UserForm1
End Sub
Đoạn code sau đặt ở module
 
Upvote 0
Nếu dùng trong chế độ chờ nhập liệu thì code như sau:
Mã:
Private Sub UserForm_Activate()
Dim Start
Start = Timer
Do While Timer < Start + 30
  DoEvents
Loop
If TextBox1.Text = "" Then End
End Sub
 
Upvote 0
Bác voda ơi, có cách nào đặt thời gian in tự động không. Vd như em muốn đến 8h30 ngày chủ nhật hàng tuần máy in sẽ tự động in một file nào đó.
 
Upvote 0
-Muốn đặt thời gian chạy macro trong giờ nào đó trong ngày, ta dùng sự kiện: Application.OnTime TimeValue. Ví dụ:
Application.OnTime TimeValue("22:49:20"), "ChayMacro"
-Muốn đặt thời gian chạy macro trong giờ nào đó trong ngày nào đó, ta dùng:Application.OnTime Now + DateValue. Ví dụ:
Application.OnTime Now + DateValue("5/20/2008 23:11:20"), "ChayMacro"
-Ở đây bạn muốn chạy macro vào 8:30 mỗi sáng chủ nhật, ta kết hợp thêm hàm weekday.
-Bạn chép dòng lệnh sau vào Thisworkbook:
Mã:
Private Sub Workbook_Open()
Application.OnTime TimeValue("8:30:00"), "ChayMacro"
End Sub
Đặt vào module thủ tục sau:
Mã:
Sub ChayMacro()
Dim ttngay As Integer
ttngay = Weekday(Date)
If ttngay = 1 Then
    ........
    ........(những câu lệnh bạn muốn macro làm)
End If 
End Sub
 
Upvote 0
Em chạy đoanh mã trên bị báo lỗi ở chữ "dong_form" của dòng:
Application.OnTime Now + TimeValue("00:00:05"), "dong_form"
 
Upvote 0
Nguyên văn bởi Hoacomay96
Em chạy đoanh mã trên bị báo lỗi ở chữ "dong_form" của dòng:
Application.OnTime Now + TimeValue("00:00:05"), "dong_form"
Bạn bị báo lỗi ở dòng đó, có lẽ do chương trình không tìm được thủ tục dong_form. Thủ tục này phải được đặt trong module:
Mã:
Public Sub dong_form()
  Unload UserForm1
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom