Userform vừa khít các loại màn hình và luôn nằm dưới thanh Menu Ribbon

Liên hệ QC

NguyenthiH

Thành viên mới đăng ký
Tham gia
11/12/16
Bài viết
946
Được thích
172
Giới tính
Nữ
Chào các anh chị!!!
Em có bắt chước làm Menu Ribbon, em muốn khi mở file lên là hiện FormMain luôn vừa khít với mọi loại màn hình nhưng luôn nằm dưới thanh Menu Ribbon. Và khi chọn các nút thì cũng hiện form vừa khít các loại màn hình và nằm dưới thanh Menu Ribbon.
Trong file là em tự làm thủ công cho 3 form: frmMain, Userform1, Userform2 vừa khít với màn hình 15.6 inch của máy em. Nhưng mang file sang các máy khác thì không vừa khít và không nằm sát dưới thanh Menu Ribbon.
Mong các anh chị giúp đỡ.
 

File đính kèm

  • ThucTap.xlsm
    28 KB · Đọc: 28
Chào các anh chị!!!
Em có bắt chước làm Menu Ribbon, em muốn khi mở file lên là hiện FormMain luôn vừa khít với mọi loại màn hình nhưng luôn nằm dưới thanh Menu Ribbon. Và khi chọn các nút thì cũng hiện form vừa khít các loại màn hình và nằm dưới thanh Menu Ribbon.
Trong file là em tự làm thủ công cho 3 form: frmMain, Userform1, Userform2 vừa khít với màn hình 15.6 inch của máy em. Nhưng mang file sang các máy khác thì không vừa khít và không nằm sát dưới thanh Menu Ribbon.
Mong các anh chị giúp đỡ.
Để chắc chắn 100% và tránh hiểu lầm hãy đính kèm ảnh chụp màn hình để người khác biết, thế nào là nằm sát dưới thanh Menu Ribbon. Như trong ảnh của tôi là không đạt? Phải che cả thanh công thức?

form.JPG
 
Upvote 0
Bởi vậy nên nhờ Thầy batman1 giúp cho code để khi hiện form ở các máy khác đều vừa khít và luôn nằm dưới thanh Menu Ribbon, ảnh ở máy em như vầy ạ:
frmMain.png
Userform1.png
Userform2.png
 
Upvote 0
Bạn tự kiểm tra xem tôi đã thêm gì, sửa gì.
Về nội dung XML thì tôi thêm customUI.xml để có menu khi mở bằng Excel 2007.
 

File đính kèm

  • ThucTap_1.xlsm
    32.6 KB · Đọc: 44
Upvote 0
Bạn có thể tham khảo File dưới đây.

Tuy nhiên tôi không viết sẵn cho bạn trường hợp Khi Window Resize thì các Control trong Userform Resize theo. Vì vấn đề này phải bỏ thêm "chất xám".


-----------------------
 

File đính kèm

  • UserformFullScreen.xlsm
    51.2 KB · Đọc: 62
Upvote 0
Thầy batman1 ơi, nếu đem file qua máy tính có màn hình 14 inch thì các userform không vừa khít với màn hình vì form có kích thước lơn quá.
Ở file này mình có thể kết hợp với code làm form vừa khít với các loại màn hình mà Thầy đã làm cho em được không Thầy.
 
Upvote 0
Thầy batman1 ơi, nếu đem file qua máy tính có màn hình 14 inch thì các userform không vừa khít với màn hình vì form có kích thước lơn quá.
Ở file này mình có thể kết hợp với code làm form vừa khít với các loại màn hình mà Thầy đã làm cho em được không Thầy.
Code chỉ định vị Form dưới ribbon thôi.
Khi bạn có sẵn Form với kích thước đã định thì:
- khi hiển thị trên máy có độ phân giải nhỏ hơn thì nó sẽ ra khỏi màn hình một đoạn.
- khi hiển thị trên máy có độ phân giải lớn hơn thì nó sẽ không che hết màn hình.

Bạn có các lựa chọn:
1. Tôi thấy HeSanbi trả lời. Vậy nếu giải pháp đó hài lòng bạn thì cứ bám lấy người ta thôi.

2. Thiết kế Form cho độ phân giải nhỏ nhất mà vẫn chấp nhận được. Vd. tôi dùng 1152 x 864 (với tôi 800 x 600 hay 1024 x 768 hơi thấp). Code sẽ tăng/giảm Width và Height để luôn khít màn hình. Như thế khi mở ở độ phân giải lớn hơn thì Form bị kéo dài thêm, tức thừa khoảng trống, chứ không phải là bị cắt cụt (khi mở ở độ phân giải thấp hơn).

3. Nếu Form dài rộng quá thì bạn dùng chuột đưa lên, đưa xuống, sang phải, sang trái thôi.

4. Bạn thử dùng code phóng to/ thu nhỏ Form cho khít màn hình. Tôi biết bạn thích chơi trò này, và biết là bạn đã có code làm trò này.

Dù chọn cách nào thì bạn nên chờ HeSanbi, xem anh ta biểu diễn thế nào. Nói chung cũng chỉ là định vị dưới ribbon, các code khác không cần thiết cho bạn. Bạn đọc vào chỉ tổ tẩu hỏa nhập ma mà thôi. Nhưng nếu làm được cho bạn, thì bạn cứ dùng thôi.
---------------------
Mà tôi cũng hơi tò mò. Bạn muốn gửi tập tin cho đồng nghiệp và bạn muốn khoe, hoặc muốn cấm người ta thao tác trên sheet, trên ribbon, trong thanh công thức ...?

Tôi có nguyên tắc của tôi. Nếu bạn có khó khăn về công việc mà tôi biết và muốn giúp thì tôi sẽ giúp đến cùng. Vì đã là công việc thì phải giải quyết. Không làm được thì sẽ bị khiển trách, sa thải. Còn những hoa hòe hoa sói, những cái chỉ để khoe thì không làm được cũng chả ảnh hưởng tới việc thực hiện công việc. Lúc đó nếu có hứng, có thời gian thì tôi tham gia. Nhưng sẽ không có chuyện làm từ A tới Z. Người khác người ta đâu có những "thủ thuật" như bạn nhưng người ta vẫn hoàn thành công việc. Bạn nghĩ ra nhiều trò nhưng toàn muốn người khác thực hiện hộ. Những cái chỉ để phục vụ cho một mình bạn thì ít ai bỏ công ra làm cho bạn từ A tới Z. Làm những gì có ích cho nhiều người thôi.
 
Lần chỉnh sửa cuối:
Upvote 0
.
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ em cám ơn Thầy batman1.
 
Upvote 0
Thầy @batman1 ơi!
Em có chỉnh Module modPodform như thế này:
Mã:
Sub PosForm(ByVal form As Object)
#If VBA7 Then
    Dim hWnd As LongPtr
#Else
    Dim hWnd As Long
#End If
Dim rc As RECT
    hWnd = FindWindow("XLMAIN", vbNullString)
    hWnd = FindWindowEx(hWnd, 0, "EXCEL<", vbNullString)
    GetWindowRect hWnd, rc
    form.Top = 3 * rc.Top / 4
    form.Left = 3 * rc.Top / 200  ''--------them cho nay
End Sub
để cho Form nằm ở góc trái dưới thanh Ribbon, Thầy xem có được không ạ.
Untitled.png
 
Upvote 0
Cái này hay, nhưng vô bổ - kiểu như hoa cắm bình A rát đẹp vừa vặn - giờ chuyển sang bình B sao cho vẫn đẹp và vừa vặn ..... không (trong khi hoa đã cho trước, bình cũng do người khác thiết kế rồi) - Nên khó khả thi

Nếu vẫn muốn ý tưởng thế, thì nên dùng dạng TaskPanel sẽ hợp lý hơn
 
Upvote 0
Thầy @batman1 ơi!
Em có chỉnh Module modPodform như thế này:
Mã:
Sub PosForm(ByVal form As Object)
#If VBA7 Then
    Dim hWnd As LongPtr
#Else
    Dim hWnd As Long
#End If
Dim rc As RECT
    hWnd = FindWindow("XLMAIN", vbNullString)
    hWnd = FindWindowEx(hWnd, 0, "EXCEL<", vbNullString)
    GetWindowRect hWnd, rc
    form.Top = 3 * rc.Top / 4
    form.Left = 3 * rc.Top / 200  ''--------them cho nay
End Sub
để cho Form nằm ở góc trái dưới thanh Ribbon, Thầy xem có được không ạ.
View attachment 235136
File quản lý kho, bạn thiết kế form DN nhỏ,lượng xuất hàng mã hàng ít có thể dùng form,số lượng mã hàng lớn dùng form k ổn rồi.
 
Upvote 0
Web KT
Back
Top Bottom