Cố định ví trí hiện userform trên bảng tính sau khi đóng mở lại File (1 người xem)

Liên hệ QC

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

Nguyễn Hồng Quang

Thành viên GPE Hà Nội
Tham gia
8/6/07
Bài viết
1,203
Được thích
877
Giới tính
Nam
Nghề nghiệp
Kế toán
Trong bảng tính nhập các hóa đơn và sắp xếp theo tên của nhà cung cấp
Em có tạo 1 user form (Userform2) để ngay sau khi Click chuột vào Nút tìm đến tên của nhà cung cấp
-->Excel sẽ bật lên Userform để lựa chọn thêm dòng hoặc không thêm dòng
Em cũng đã chỉnh Thuộc tính Postion trong màn hình VBE của Userform2 là Manual và đã thao tác (kéo thả chuột) để đưa Userform2 vào vị trí phù hợp trên bảng tính (như trong hình 1 gửi kèm)
mọi chuyện vẫn bình thường nếu tiếp tục sử dụng bảng tính Userform đó vẫn hiện đúng vị trí em đã đặt trước đó (mà không có thao tác đóng bảng tính)

Vấn đề là sau khi đóng bảng tính (Ctrl+W) có Lưu lại (Save)
rồi mở lại bảng tính để sử dụng thì
Userform2 này nó lại xuất hiện góc trên cùng bên phải của bảng tính. Em lại phải (kéo thả chuột) để đưa Userform2 vào vị trí phù hợp trên bảng tính.
Em phải làm sao để giữ được vị trí hiện userform2 này trên bảng tính sau khi đóng mở lại File
Mong các anh chị giúp đỡ
Em xin cảm ơn
 

File đính kèm

Cảm ơn bạn về link
Nhưng cái này không đúng với vấn đề của mình bạn ơi
Userform của mình đã đặt chế độ Manual trong StarupPosition. Khi sử dụng mình đã đưa vào vị trí thích hợp trên bảng tính. Nhưng sau khi đóng bảng tính, rồi mở lại bảng tính thì Userform lại bị đưa về góc màn hình. Cái mình muốn là sau khi đóng bảng tính và mở lại sử dụng thì userform không hiện ở góc màn hình mà hiện ở vị trí trước đó mình đã điều chỉnh
 
Upvote 0
Trong bảng tính nhập các hóa đơn và sắp xếp theo tên của nhà cung cấp
Em có tạo 1 user form (Userform2) để ngay sau khi Click chuột vào Nút tìm đến tên của nhà cung cấp
-->Excel sẽ bật lên Userform để lựa chọn thêm dòng hoặc không thêm dòng
Em cũng đã chỉnh Thuộc tính Postion trong màn hình VBE của Userform2 là Manual và đã thao tác (kéo thả chuột) để đưa Userform2 vào vị trí phù hợp trên bảng tính (như trong hình 1 gửi kèm)
mọi chuyện vẫn bình thường nếu tiếp tục sử dụng bảng tính Userform đó vẫn hiện đúng vị trí em đã đặt trước đó (mà không có thao tác đóng bảng tính)

Vấn đề là sau khi đóng bảng tính (Ctrl+W) có Lưu lại (Save)
rồi mở lại bảng tính để sử dụng thì
Userform2 này nó lại xuất hiện góc trên cùng bên phải của bảng tính. Em lại phải (kéo thả chuột) để đưa Userform2 vào vị trí phù hợp trên bảng tính.
Em phải làm sao để giữ được vị trí hiện userform2 này trên bảng tính sau khi đóng mở lại File
Mong các anh chị giúp đỡ
Em xin cảm ơn
Bạn thử file này.
 

File đính kèm

Upvote 0
Bạn thử code này, căn chỉnh số để được cái bạn muốn!!
PHP:
Private Sub UserForm_Activate()
Me.StartUpPosition = 0

Me.Top = Application.Top + 100
Me.Left = Application.Left + 500
End Sub
 
Upvote 0
Trong bảng tính nhập các hóa đơn và sắp xếp theo tên của nhà cung cấp
Em có tạo 1 user form (Userform2) để ngay sau khi Click chuột vào Nút tìm đến tên của nhà cung cấp
-->Excel sẽ bật lên Userform để lựa chọn thêm dòng hoặc không thêm dòng
Em cũng đã chỉnh Thuộc tính Postion trong màn hình VBE của Userform2 là Manual và đã thao tác (kéo thả chuột) để đưa Userform2 vào vị trí phù hợp trên bảng tính (như trong hình 1 gửi kèm)
mọi chuyện vẫn bình thường nếu tiếp tục sử dụng bảng tính Userform đó vẫn hiện đúng vị trí em đã đặt trước đó (mà không có thao tác đóng bảng tính)

Vấn đề là sau khi đóng bảng tính (Ctrl+W) có Lưu lại (Save)
rồi mở lại bảng tính để sử dụng thì
Userform2 này nó lại xuất hiện góc trên cùng bên phải của bảng tính. Em lại phải (kéo thả chuột) để đưa Userform2 vào vị trí phù hợp trên bảng tính.
Em phải làm sao để giữ được vị trí hiện userform2 này trên bảng tính sau khi đóng mở lại File
Mong các anh chị giúp đỡ
Em xin cảm ơn
Sao bạn không đưa cái Code chèn dòng vào chuột phải thì tiện thao tác hơn. Chứ dùng form như thế này cũng hơi rườm rà ...
 
Upvote 0
Nếu bạn muốn thông số luôn thay đổi theo cách bạn muốn, bạn có thể làm thế này:
1. Trước khi đóng form, lấy thông số của form:
PHP:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Sheet1.Cells(1, 1).Value = Me.Top 'sheet1 là giả định của tôi nhé, bạn đặt thông số này ở đâu tùy bạn, miễn là sau đó lôi nó ra được ở thủ tục 2.
Sheet1.Cells(2, 1).Value = Me.Left
ActiveWorkbook.Save 'form ở file hay ở add-ins thì bạn lưu cái đó, đây là tôi ví dụ form trực tiếp trong file
End Sub

2. Sau đó làm cái này nữa:
PHP:
Private Sub UserForm_Activate()
Me.StartUpPosition = 0

Me.Top = Application.Top + sheet1.cells(1,1).value
Me.Left = Application.Left + sheet1.cells(2,1).value
End Sub
 
Upvote 0
Cảm ơn bạn code xử lý đúng với vấn đề mình gặp phải rồi
Tuy nhiên sau khi chạy code lại phát sinh 1 vấn đề nhỏ, là cái CommandButton2 của Userform2 mình đã đặt trong VBE thuộc tính TakeFocusOnClick là True
Nhưng khi hiện lên trên bảng tính thì Nó cứ mặc định Click vào CommandButton1 (Chi tiết như hình 2 mình gửi kèm)
 

File đính kèm

Upvote 0
Cảm ơn bạn code xử lý đúng với vấn đề mình gặp phải rồi
Tuy nhiên sau khi chạy code lại phát sinh 1 vấn đề nhỏ, là cái CommandButton2 của Userform2 mình đã đặt trong VBE thuộc tính TakeFocusOnClick là True
Nhưng khi hiện lên trên bảng tính thì Nó cứ mặc định Click vào CommandButton1 (Chi tiết như hình 2 mình gửi kèm)
Default của nút = True thử nhé
upload_2017-10-11_10-56-27.png
 
Upvote 0

File đính kèm

Upvote 0
Ý mình là muốn CommandButton2 là mặc định
Mình đã chỉnh CommandButton1 thuộc tính Default là False còn CommandButton2 thuộc tính Default là True nhưng không được bạn à
Bạn đặt TabIndex của nút KHÔNG bằng 0 hoặc TabStop của nút CÓ là False là được.
Thông thường muốn hủy thì nhấn Esc còn chấp nhận thì nhấn Enter chứ sao bạn lại làm ngược đời vậy.
 
Upvote 0
Bạn đặt TabIndex của nút KHÔNG bằng 0 hoặc TabStop của nút CÓ là False là được.
Thông thường muốn hủy thì nhấn Esc còn chấp nhận thì nhấn Enter chứ sao bạn lại làm ngược đời vậy.
Cảm ơn bạn mình làm được rồi
Công nhận là cũng thấy hơi ngược đời thật. Mình sẽ nghiên cứu điều chỉnh lại sau
 
Upvote 0
Web KT

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

Back
Top Bottom