Bắt sự kiện khi User bấm vào menu tự tạo

Liên hệ QC

chipvang

Thành viên mới
Tham gia
29/11/08
Bài viết
37
Được thích
11
Tôi tạo một loạt các menu bằng VBA theo mảng dữ liệu truyền vào (ví dụ danh mục kho). Làm thế nào để biết người dùng click vào menu nào để mình xử lý tiếp các bác nhỉ.

Trong VB thì sự kiện menu click dễ dàng nhưng trong VBA Excel tôi chưa làm được. Xin chỉ giáo.
 
nó có mục ".OnAction = tên của macro cần chạy".

Cám ơn bạn, cái này mình biết, có điều khi nạp động một lúc nhiều menu ví dụ từ menu 1 tới Menu 10, số lượng menu là động thì không thể gán tên hàm cần gọi vào sự kiện onAction được mà cần gọi một hàm chung rồi kiểm tra xem menu nào vừa được click rồi mới xử lý các hàm tiếp theo
 
Upvote 0
nó có mục ".OnAction = tên của macro cần chạy".

Cám ơn bạn, cái này mình biết, có điều khi nạp động một lúc nhiều menu ví dụ từ menu 1 tới Menu 10, số lượng menu là động thì không thể gán tên hàm cần gọi vào sự kiện onAction được mà cần gọi một hàm chung rồi kiểm tra xem menu nào vừa được click rồi mới xử lý các hàm tiếp theo
bạn đưa ví dụ củ bạn lên đi (mà bạn tìm trong diễn đàn mình nghĩ có cái bạn cần đó)

Bạn tham khảo trang cua anh Levanduyet xem

http://my.opera.com/levanduyet/blog/tao-menu-trong-excelo-menu-nguoi-dung-trong-excel
 
Lần chỉnh sửa cuối:
Upvote 0
MÌnh đã tìm rồi, toàn gọi hàm đơn thôi, tức là menu nào được tạo thì xác định luôn hàm đi kèm trong sự kiện OnAction. Còn đây tạo một mảng các menu sau đó cần xác định người dùng sẽ click vào menu nào để mình ứng xử tiếp theo

trong Bài của bác duyệt gán SubMenuItem.OnAction = PositionOrMacro sau đó bấm bào thì nó gọi một hàm khác và thông báo là do nothing macro

bài này mình cũng đã đọc rồi.

Mã:
[SIZE=3][COLOR=blue]
Set[/COLOR] SubMenuItem =   MenuItem.Controls.ADD(Type:=msoControlButton) 
SubMenuItem.Caption = Caption 
            SubMenuItem.OnAction = PositionOrMacro 
            [COLOR=blue]If[/COLOR] FaceId <> "" [COLOR=blue]Then[/COLOR] SubMenuItem.FaceId = FaceId 
            [COLOR=blue]If[/COLOR] Divider [COLOR=blue]Then[/COLOR] SubMenuItem.BeginGroup = [COLOR=blue]True[/COLOR] 

[/SIZE]
 
Lần chỉnh sửa cuối:
Upvote 0
Có cách rất đơn giản.

Tất cả các menu bạn đêù gán OnAction = "OnCommands"

Sub OnCommands
Msgbox CommandBars.ActiveControl.....
En Sub
 
Upvote 0
Thanks bác, quả đúng là... cái gì tưởng phức tạp thì ở ngay trước mắt

Thanks,
 
Upvote 0
Web KT

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

Back
Top Bottom