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
Bạn tham khảo :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)
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ợ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
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
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ôiLúc trước tôi có download một file demo vụ popup Userform theo ActiveCell. Bạn tham khảo.
Bạn tạo taskpane bằng gì vậy?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ợ
Em tạo bằng user control kết hợp excel DNA bác ạBạn tạo taskpane bằng gì vậy?
Có vẻ như liên quan đến C à bạn!. Xịn xò quáEm tạo bằng user control kết hợp excel DNA bác ạ
Xịn ở chỗ người tạo ra nó bác ạ, em chỉ tận dụng trên nền của họ thôi. Cái khó người ta làm hết rồiCó vẻ như liên quan đến C à bạn!. Xịn xò quá
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.Xịn ở chỗ người tạo ra nó bác ạ, em chỉ tận dụng trên nền của họ thôi. Cái khó người ta làm hết rồi
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 đượcNế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.
Không chắc. Bạn @Mr.hieudoanxd thử tìm xem. Có thể nó sẽ dài dòng, chậm chạp hơn nhưng cũng vẫn làm được.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
Anh lại trêu em rồi! em biết tầm em tới đâu. Taskpane fake em còn cố gắng tí được chứ taskpane thuần VBA thì em chưa thấy ở đâu có anh ạKhông chắc. Bạn @Mr.hieudoanxd thử tìm xem. Có thể nó sẽ dài dòng, chậm chạp hơn nhưng cũng vẫn làm được.
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ồiMuố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%:
DatePickerXL - Add-in Lịch để chọn ngày cho bảng tính (phiên bản lỗi)
Hôm nay tôi chia sẻ với các bạn Add-in chọn ngày với chức năng linh hoạt, giao diện đẹp mắt và đa dạng màu. Để các bạn nào có đam mê, thì có thể phát triển thêm. Nhưng add-in này tôi chưa thể hoàn thiện nó. Để Icon lịch hiện lên có 2 cách: 1. Gõ vào ô \c hoặc \d hoặc \dp 2. Nếu giá trị trong...www.giaiphapexcel.com
TaskPane nó chỉ là ứng dụng một phần nào đó thôi.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
Thế thì bạn dựa vào gì để nói cái này: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.
Có vẻ như liên quan đến C à bạn!. Xịn xò quá
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ư"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.