cách tạo phím tắt cho 1 userform?

Liên hệ QC

haikimcuong

Thành viên hoạt động
Tham gia
6/7/10
Bài viết
169
Được thích
36
Hiện tại mình đang có 1 file excel đã cos code gồm 5 sheet tuy nhiên ở 1 sheet có userform để nhập dữ liệu trên công cụ này có 1 nút thoát nhưng khi thoát rồi phải chuyển sang sheet khác và quay lại nó mới hiện lên giờ e muốn tạo 1 phím tắt (f12) để có thể tắt mở userform này thì phải làm thế nào mong các bạn giúp đỡ mình.
 
Hiện tại mình đang có 1 file excel đã cos code gồm 5 sheet tuy nhiên ở 1 sheet có userform để nhập dữ liệu trên công cụ này có 1 nút thoát nhưng khi thoát rồi phải chuyển sang sheet khác và quay lại nó mới hiện lên giờ e muốn tạo 1 phím tắt (f12) để có thể tắt mở userform này thì phải làm thế nào mong các bạn giúp đỡ mình.

Gán phím tắt cho 1 Sub chắc bạn biết chứ?
Giờ tạo 1 Sub để gọi UserForm, chẳng hạn:
Mã:
Sub ShowForm()
  UserForm1.Show
End Sub
Sub được đặt trong 1 Module
Gán phím tắt cho Sub này là phím nào tùy bạn (bằng cách ở ngoài bảng tính, bấm Alt + F8, chọn tên Sub rồi bấm Options)
 
Upvote 0
Còn nút thoát thì bạn vẽ trên Form rồi đặt thuộc tính Cancel của nó là True. Code của nút lệnh này chỉ cần 1 câu lệnh Unload Me. Mỗi lần muốn thoát khỏi Form, bạn chỉ cần nhấn ESC là được.
 
Upvote 0
Hiện tại mình đang có 1 file excel đã cos code gồm 5 sheet tuy nhiên ở 1 sheet có userform để nhập dữ liệu trên công cụ này có 1 nút thoát nhưng khi thoát rồi phải chuyển sang sheet khác và quay lại nó mới hiện lên giờ e muốn tạo 1 phím tắt (f12) để có thể tắt mở userform này thì phải làm thế nào mong các bạn giúp đỡ mình.

Tạo phím nóng cho F12 để mở form thì theo file đính kèm nhé.
 

File đính kèm

  • F12.xls
    25.5 KB · Đọc: 212
Upvote 0
cảm ơn các bác em đã làm đc, em chuẩn bị làm học trò củ anh Quang hải nhưng không biết ở tuổi 34 còn hấp thụ đc k nữa, thời gian thì ít mong các bác tư vấn

TÌnh hình là nút thoát bằng phím Esc không ổn các anh chị ạ, em thử làm theo anh nghiaphuc nhưng khi ấn vào esc nó không thoát mà nó lại tương ứng với nút thoát kia của em tức là phải kick chuột vào đó nó mới thoát anh ạ, còn vấn đề nữa em xin đc các anh chị chỉ giáo đó là em muốn userform kín màn hình thì làm thế nào ạ. vì giờ nó chỉ có kích thước như trong vẽ thôi ạ (chắc tầm 9inches gì đó ạ)
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
cảm ơn các bác em đã làm đc, em chuẩn bị làm học trò củ anh Quang hải nhưng không biết ở tuổi 34 còn hấp thụ đc k nữa, thời gian thì ít mong các bác tư vấn
Hết việc làm, chém gió chút
muốn làm đệ tự Anh Hải Là phải đạt 2 yêu cầu :
1) biết gọi các em về, chứ đi theo các em La hỏng bét:drive1: VBên Anh Em nhé

2) phải biết tiếng Anh tiếng Em, nếu ko các em về rồi xưng mày mày tao tao cũng tèo luôn +-+-+-+
TÌnh hình là nút thoát bằng phím Esc không ổn các anh chị ạ, em thử làm theo anh nghiaphuc nhưng khi ấn vào esc nó không thoát mà nó lại tương ứng với nút thoát kia của em tức là phải kick chuột vào đó nó mới thoát anh ạ, còn vấn đề nữa em xin đc các anh chị chỉ giáo đó là em muốn userform kín màn hình thì làm thế nào ạ. vì giờ nó chỉ có kích thước như trong vẽ thôi ạ (chắc tầm 9inches gì đó ạ)
phần anhNdu làm Được thì phân Anh nghĩa phục ttương tự
 
Lần chỉnh sửa cuối:
Upvote 0
Để thoát = phím Esc thì cho thêm code sau vào form

Mã:
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 27 Then Unload Me
End Sub

Reset lại phím F12

Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "{F12}"
End Sub

Code max của userform.

Mã:
Private Sub UserForm_Initialize()
   With Me
      .Height = Application.Height
      .Width = Application.Width
   End With
End Sub
 

File đính kèm

  • F12.xls
    31 KB · Đọc: 94
Lần chỉnh sửa cuối:
Upvote 0
Để thoát = phím Esc thì cho thêm code sau vào form

Mã:
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 27 Then Unload Me
End Sub

Reset lại phím F12

Mã:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "{F12}", ""
End Sub

Không thể dùng UserForm_KeyDown được đâu. Vì đâu lý nào trên 1 UserForm lại chẳng có 1 control nào
Đặt trường hợp UserForm có 1 TextBox và con trỏ chuột đang đặt vào TextBox này thì sự kiện UserForm_KeyDown tiêu đời.
Làm như nghiaphuc đã hướng dẫn là hợp lý nhất
 
Upvote 0
Không thể dùng UserForm_KeyDown được đâu. Vì đâu lý nào trên 1 UserForm lại chẳng có 1 control nào
Đặt trường hợp UserForm có 1 TextBox và con trỏ chuột đang đặt vào TextBox này thì sự kiện UserForm_KeyDown tiêu đời.
Làm như nghiaphuc đã hướng dẫn là hợp lý nhất
có gì xin anh goi vao 0968985898 để em xin đc hướng dẫn cụ thể phần của anh nghiaphuc ạ vì em lam mà k thành mong anh chỉ qua teamview giúp em.
cảm ơn anh
 
Upvote 0

File đính kèm

  • Show_Hide_Form.rar
    9.7 KB · Đọc: 205
Upvote 0
có gì xin anh goi vao 0968985898 để em xin đc hướng dẫn cụ thể phần của anh nghiaphuc ạ
Có gì cứ việc nói tại đây là được rồi
vì em lam mà k thành mong anh chỉ qua teamview giúp em.
cảm ơn anh
Bạn đã làm thế nào mà không được?
- Trên UserForm đã thiết kế nút Thoát chưa?
- Đã viết code cho nút Thoát chưa?
- Đã đặt thuộc tính Cancel = True cho nút Thoát chưa?
---------------------
Tóm lại: Làm không được cứ việc đưa file của bạn lên đây (để mọi người biết bạn "không được" chổ nào)
 
Upvote 0
em gui các anh file sạch mong các anh giúp hoàn thiện mấy tiêu chí dưới đây.
1. userform sheet bán hàng, trả lại full màn hình.
2. thoát/hiện userform bằng phím tắt: thoát = Esc, mở = F1.
cảm ơn anh chị.
 
Upvote 0
cảm ơn các bác em đã làm đc,

Bạn tự mâu thuẫn quá. Bạn "đã làm được" thì sao lại viết

TÌnh hình là nút thoát bằng phím Esc không ổn các anh chị ạ, em thử làm theo anh nghiaphuc nhưng khi ấn vào esc nó không thoát

Bạn có làm như nghiaphuc hướng dẫn đâu. Mà có 3 người hướng dẫn nhưng bạn có làm theo ai đâu? Nếu vẫn chưa biết làm thì nói chưa biết làm chứ sao lại nói là "em thử làm theo anh nghiaphuc nhưng khi ấn vào esc nó không thoát"?
1. Đóng Form
Bạn chọn Alt + F11 --> đúp chuột vào UserForm1 --> khi UserForm1 hiện lên thì nhấn (1 lần chứ không phải đúp) vào nút Thoát --> nhìn sang trái ở cửa sổ Properties (nếu chưa thấy hiển thị thì View --> Properties Window hoặc nhấn F4) tìm thuộc tính Cancel và chuyển thành True - đúp chuột để chuyển qua lại TRUE / FALSE)
2. Mở Form: Vẫn trong VBE đúp chuột vào Sheet1 (BAN HANG) --> xóa toàn bộ sub Worksheet_Activate
--> đóng VBE --> Alt + F8 --> trong cửa sổ Macro tìm và nhấn chuột vào dòng Mo_form --> chọn Options ... --> trong cửa sổ Macro Options thường Excel đã đề nghị phím tắt vậy bạn chỉ nhấn OK để đóng cửa sổ này. Nếu Excel chưa đề nghị hoặc bạn muốn chọn phím khác thì chọn. Tiếp theo đóng cửa sổ Macro bằng nút X ở góc trên bên phải. Chú ý không chọn nút Cancel vì đó là hủy lựa chọn vừa làm.
-------------
Những phím tắt thường dùng của system hoặc phần mềm - vd. như F1 - thì bạn không nên đụng vào

em chuẩn bị làm học trò củ anh Quang hải

Nếu người ta hướng dẫn mà bạn không làm theo hoặc không biết làm mà lại không nói ra thì tôi e rằng anh Hải sẽ mệt với bạn đây.

Mà bạn có 2 lựa chọn: hoặc dùng nick hoặc dùng họ tên. Nếu dùng họ tên thì phải viết hoa.
 
Lần chỉnh sửa cuối:
Upvote 0
Xin cảm ơn các anh chị đã giúp đỡ em đã tự hoàn thành đc rồi em quên mất cancel = true xin cảm ơn mọi người đã giúp đỡ em tại em ngoại đạo nên phải học từ từ mong mọi người thông cảm cho em. THANKS
 
Upvote 0
Em xin hỏi, E viết code cho nút thoát là Userform.Hide có được không vậy ạ?
 
Upvote 0
Web KT

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

Back
Top Bottom