Cách tính vị trí của Form

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

namvu230397

Thành viên hoạt động
Tham gia
12/10/21
Bài viết
173
Được thích
77
Nghề nghiệp
Kỹ sư công trình giao thông
Chào các anh/chị của GPE, em có một vấn đề muốn hỏi là vị trí của một form được tính như thế nào, mục đích em muốn biết cánh tính để form xuất hiện bên cạnh cell được chọn, khi cell được chọn thay đổi thì form cũng di chuyển theo
Capture.PNG
(hình ảnh minh họa)
 
Chào các anh/chị của GPE, em có một vấn đề muốn hỏi là vị trí của một form được tính như thế nào, mục đích em muốn biết cánh tính để form xuất hiện bên cạnh cell được chọn, khi cell được chọn thay đổi thì form cũng di chuyển theo
View attachment 288703
(hình ảnh minh họa)
Bạn tham khảo :
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:Z100")) Is Nothing Then
        UserForm1.Left = Target.Left + Target.Width
        UserForm1.Top = Target.Top + Target.Height
        UserForm1.StartUpPosition = 0
        UserForm1.Show
    Else
        UserForm1.Hide
    End If
End Sub
 
Upvote 0
Bạn tham khảo :
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:Z100")) Is Nothing Then
        UserForm1.Left = Target.Left + Target.Width
        UserForm1.Top = Target.Top + Target.Height
        UserForm1.StartUpPosition = 0
        UserForm1.Show
    Else
        UserForm1.Hide
    End If
End Sub
Em không rõ tại sao nó lại không hiện theo ý muốn được, có thể do form em thiết kế bằng winform không phải bằng userform nên nó tính vị trí của form bằng tọa độ màn hình chứ không phải tọa độ ô Excel. Hiện tại em đã khắc phục bằng cách chuyển hẳn form đấy thành task pane. Dù sao cũng cảm ơn bác rất nhiều vì đã hỗ trợ

Capture.PNG
 
Upvote 0
Chào các anh/chị của GPE, em có một vấn đề muốn hỏi là vị trí của một form được tính như thế nào, mục đích em muốn biết cánh tính để form xuất hiện bên cạnh cell được chọn, khi cell được chọn thay đổi thì form cũng di chuyển theo

Lúc trước tôi có download một file demo vụ popup Userform theo ActiveCell. Bạn tham khảo.
 

File đính kèm

  • Calendar-userform.xlsm
    34.6 KB · Đọc: 22
Upvote 0
Lúc trước tôi có download một file demo vụ popup Userform theo ActiveCell. Bạn tham khảo.
Nói chung là em bỏ cuộc với hướng này rồi bác ạ, code được ra rồi nhưng nó lại không theo kịch bản mong muốn. Em chuyển sang làm task pane, giờ thì ổn rồi, mục đích cuối cùng cũng chỉ là khi bấm ngày xong thì cái form không bị ẩn sau cửa sổ Excel để người khác chọn ngày được tiếp thôi
 
Upvote 0
Em không rõ tại sao nó lại không hiện theo ý muốn được, có thể do form em thiết kế bằng winform không phải bằng userform nên nó tính vị trí của form bằng tọa độ màn hình chứ không phải tọa độ ô Excel. Hiện tại em đã khắc phục bằng cách chuyển hẳn form đấy thành task pane. Dù sao cũng cảm ơn bác rất nhiều vì đã hỗ trợ
Bạn tạo taskpane bằng gì vậy?
 
Upvote 0
Nếu thuần VBA thì bạn chia sẻ được không? còn nếu C thì thôi bạn ạ. Mình một chữ cắn đôi về C cũng không biết.
Nó không phải VBA. Mấy cái giao diện này VBA chắc chịu thua bác ạ, vẫn phải làm trên các ngôn ngữ khác mới được
 
Upvote 0
Upvote 0
Upvote 0
Muốn biết Window ở đâu thì cần biết Class hoặc Title của window, dùng các hàm win api để lấy vị trí.

Muốn biết vị trí ô ở đâu thì sử dụng hàm PointsToScreenPixels của window Application

Bạn tham khảo Date Picker vba 100%:
 
Upvote 0
Muốn biết Window ở đâu thì cần biết Class hoặc Title của window, dùng các hàm win api để lấy vị trí.

Muốn biết vị trí ô ở đâu thì sử dụng hàm PointsToScreenPixels của window Application

Bạn tham khảo Date Picker vba 100%:
Lấy vị trí thì em đã lấy được, cái chính là nó có nhiều bug nhỏ nên bỏ chuyển thành taskpane luôn rồi
 
Upvote 0
Lấy vị trí thì em đã lấy được, cái chính là nó có nhiều bug nhỏ nên bỏ chuyển thành taskpane luôn rồi
TaskPane nó chỉ là ứng dụng một phần nào đó thôi.
Nó chiếm dụng không gian. Chưa chắc đã tối ưu cho nhiều công việc.
Chỉ một cái form bé xíu để chọn ngày thôi phải mở cả taskPane cồng kềnh.

Nếu tối ưu thì Microsoft đã tạo ra Date Picker kiểu như vậy từ lâu rồi.
 
Upvote 0
Upvote 0
Thế thì bạn dựa vào gì để nói cái này:
Tôi sống hơn 10 năm với C mà cũng chưa dám tuyên bố vậy.
Em không có kiến thức về mảng này, search Google thì có ở đây liên quan đến từ khóa DNA. Mà em cũng ko tuyên bố, do không biết nên em chỉ nói "có vẻ như"
 
Upvote 0
Web KT

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

Back
Top Bottom