Thực thi các macro từ menu tự tạo (1 người xem)

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

Thuyanhanoi

Thành viên thường trực
Tham gia
15/10/12
Bài viết
304
Được thích
154
Nghề nghiệp
Nhân viên
- Em đang thiết kế 1file co cac Menu tự tạo. Khi bấm vào các thẻ trên Menu tự tạo thì macro được gắp sẽ được thực hiện.
- Code trên Custom UI Editor như sau:
HTML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon>  <tabs>   <tab id="MyCustomTab" label="CHUONG TRÌNH CUA TÔI" insertAfterMso="TabHome"><!-- Nhom 2 Cap nhat danh sach -->	<group id="customGroup2" label="Cập nhật danh sách">		<menu id="MyDropdownMenu2" label="Lấy danh sách trên các sheet khác" size="large" imageMso="RegionLayoutMenu" >
			<button id="customButton3" label="Lấy DS sheet phiếu điểm" onAction="Phieu_diem" imageMso="RegionLayoutMenu" />
			<button id="customButton4" label="Lấy DS sheet nhập điểm" onAction="Nhap" imageMso="RegionLayoutMenu" />
		</menu>	</group>
<!-- Nhom 3 Xoa danh sach -->	<group id="customGroup3" label="Xóa danh sách">		<menu id="MyDropdownMenu3" label="Xóa danh sách trên các sheet khác" size="large" imageMso="RegionLayoutMenu" >
			<button id="customButton5" label="Xóa sheet phiếu điểm" onAction="Xoa_sh_Phieu_diem" imageMso="RegionLayoutMenu" />
			<button id="customButton6" label="Xóa sheet nhập điểm" onAction="Xoa_sh_DS_duoc_du_thi" imageMso="RegionLayoutMenu" />
		</menu>	</group>

<!-- Nhom 4 Thuc hien cac macro khac -->	<group id="customGroup4" label="Các nhiệm vụ khác">		<menu id="MyDropdownMenu4" label="Thực hiện nhiệm vụ trên các sheet khác" size="large" imageMso="RegionLayoutMenu" >
			<button id="customButton7" label="???? Se lam khi nghi ra ????" onAction="Macro3" imageMso="RegionLayoutMenu" />
			<button id="customButton8" label="???? Se lam sau????" onAction="Macro4" imageMso="RegionLayoutMenu" />
		</menu>	</group>

<!-- Nhom 5 Nhom dieu khien -->	<group id="customGroup5" label="Về trang chủ">			<button id="customButton9" label="Nhóm điều khiển" size="large" onAction="Trang_chu" imageMso="ReviewPreviousComment" />		</group>	
<!-- Nhom 6 Nhom lenh in -->	<group id="customGroup6" label="Nhóm lệnh in">	
		<button id="customButton10" label="GOI FORM IN 1" size="large" onAction="GOI_FORM_IN1" imageMso="PrintMenu" />			<button id="customButton11" label="GOI FORM IN 2" size="large" onAction="GOI_FORM_IN2" imageMso="PrintMenu" />	</group>	
     </tab>   </tabs> </ribbon></customUI>
- Không biết còn thiếu gì nữa mà khi bấm vào code vba không làm việc.
- Em rất mong được mọi người chỉ giùm em là mình còn thiếu gì mà code VBA không thực hiện.
- Em xin cảm ơn!.
 

File đính kèm

Lần chỉnh sửa cuối:
- Em đang thiết kế 1file co cac Menu tự tạo. Khi bấm vào các thẻ trên Menu tự tạo thì macro được gắp sẽ được thực hiện.
- Code trên Custom UI Editor như sau:
HTML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon>  <tabs>   <tab id="MyCustomTab" label="CHUONG TRÌNH CUA TÔI" insertAfterMso="TabHome"><!-- Nhom 2 Cap nhat danh sach -->    <group id="customGroup2" label="Cập nhật danh sách">        <menu id="MyDropdownMenu2" label="Lấy danh sách trên các sheet khác" size="large" imageMso="RegionLayoutMenu" >
            <button id="customButton3" label="Lấy DS sheet phiếu điểm" onAction="Phieu_diem" imageMso="RegionLayoutMenu" />
            <button id="customButton4" label="Lấy DS sheet nhập điểm" onAction="Nhap" imageMso="RegionLayoutMenu" />
        </menu>    </group>
<!-- Nhom 3 Xoa danh sach -->    <group id="customGroup3" label="Xóa danh sách">        <menu id="MyDropdownMenu3" label="Xóa danh sách trên các sheet khác" size="large" imageMso="RegionLayoutMenu" >
            <button id="customButton5" label="Xóa sheet phiếu điểm" onAction="Xoa_sh_Phieu_diem" imageMso="RegionLayoutMenu" />
            <button id="customButton6" label="Xóa sheet nhập điểm" onAction="Xoa_sh_DS_duoc_du_thi" imageMso="RegionLayoutMenu" />
        </menu>    </group>

<!-- Nhom 4 Thuc hien cac macro khac -->    <group id="customGroup4" label="Các nhiệm vụ khác">        <menu id="MyDropdownMenu4" label="Thực hiện nhiệm vụ trên các sheet khác" size="large" imageMso="RegionLayoutMenu" >
            <button id="customButton7" label="???? Se lam khi nghi ra ????" onAction="Macro3" imageMso="RegionLayoutMenu" />
            <button id="customButton8" label="???? Se lam sau????" onAction="Macro4" imageMso="RegionLayoutMenu" />
        </menu>    </group>

<!-- Nhom 5 Nhom dieu khien -->    <group id="customGroup5" label="Về trang chủ">            <button id="customButton9" label="Nhóm điều khiển" size="large" onAction="Trang_chu" imageMso="ReviewPreviousComment" />        </group>    
<!-- Nhom 6 Nhom lenh in -->    <group id="customGroup6" label="Nhóm lệnh in">    
        <button id="customButton10" label="GOI FORM IN 1" size="large" onAction="GOI_FORM_IN1" imageMso="PrintMenu" />            <button id="customButton11" label="GOI FORM IN 2" size="large" onAction="GOI_FORM_IN2" imageMso="PrintMenu" />    </group>    
     </tab>   </tabs> </ribbon></customUI>
- Không biết còn thiếu gì nữa mà khi bấm vào code vba không làm việc.
- Em rất mong được mọi người chỉ giùm em là mình còn thiếu gì mà code VBA không thực hiện.
- Em xin cảm ơn!.

không thực hiện được vì bạn chưa khai báo các hàm Call back của Ribbon !
Nếu bạn dùng chương trình Custom UI, sau khi kiểm tra hoàn tất bạn chọn General call back , sẽ được 1 đoạn code như sau:
Mã:
'Callback for customButton3 onAction
Sub Phieu_diem(control As IRibbonControl)
End Sub


'Callback for customButton4 onAction
Sub Nhap(control As IRibbonControl)
End Sub


'Callback for customButton5 onAction
Sub Xoa_sh_Phieu_diem(control As IRibbonControl)
End Sub


'Callback for customButton6 onAction
Sub Xoa_sh_DS_duoc_du_thi(control As IRibbonControl)
End Sub


'Callback for customButton7 onAction
Sub Macro3(control As IRibbonControl)
End Sub


'Callback for customButton8 onAction
Sub Macro4(control As IRibbonControl)
End Sub


'Callback for customButton9 onAction
Sub Trang_chu(control As IRibbonControl)
End Sub


'Callback for customButton10 onAction
Sub GOI_FORM_IN1(control As IRibbonControl)
End Sub


'Callback for customButton11 onAction
Sub GOI_FORM_IN2(control As IRibbonControl)
End Sub

Paste đoạn code trên vào 1 module nào đó, rồi gán các thủ tục tương đương với các button trên Ribbon
 
Upvote 0
- Em đang thiết kế 1file co cac Menu tự tạo. Khi bấm vào các thẻ trên Menu tự tạo thì macro được gắp sẽ được thực hiện.
- Code trên Custom UI Editor như sau:
HTML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon>  <tabs>   <tab id="MyCustomTab" label="CHUONG TRÌNH CUA TÔI" insertAfterMso="TabHome"><!-- Nhom 2 Cap nhat danh sach -->    <group id="customGroup2" label="Cập nhật danh sách">        <menu id="MyDropdownMenu2" label="Lấy danh sách trên các sheet khác" size="large" imageMso="RegionLayoutMenu" >
            <button id="customButton3" label="Lấy DS sheet phiếu điểm" onAction="Phieu_diem" imageMso="RegionLayoutMenu" />
            <button id="customButton4" label="Lấy DS sheet nhập điểm" onAction="Nhap" imageMso="RegionLayoutMenu" />
        </menu>    </group>
<!-- Nhom 3 Xoa danh sach -->    <group id="customGroup3" label="Xóa danh sách">        <menu id="MyDropdownMenu3" label="Xóa danh sách trên các sheet khác" size="large" imageMso="RegionLayoutMenu" >
            <button id="customButton5" label="Xóa sheet phiếu điểm" onAction="Xoa_sh_Phieu_diem" imageMso="RegionLayoutMenu" />
            <button id="customButton6" label="Xóa sheet nhập điểm" onAction="Xoa_sh_DS_duoc_du_thi" imageMso="RegionLayoutMenu" />
        </menu>    </group>

<!-- Nhom 4 Thuc hien cac macro khac -->    <group id="customGroup4" label="Các nhiệm vụ khác">        <menu id="MyDropdownMenu4" label="Thực hiện nhiệm vụ trên các sheet khác" size="large" imageMso="RegionLayoutMenu" >
            <button id="customButton7" label="???? Se lam khi nghi ra ????" onAction="Macro3" imageMso="RegionLayoutMenu" />
            <button id="customButton8" label="???? Se lam sau????" onAction="Macro4" imageMso="RegionLayoutMenu" />
        </menu>    </group>

<!-- Nhom 5 Nhom dieu khien -->    <group id="customGroup5" label="Về trang chủ">            <button id="customButton9" label="Nhóm điều khiển" size="large" onAction="Trang_chu" imageMso="ReviewPreviousComment" />        </group>    
<!-- Nhom 6 Nhom lenh in -->    <group id="customGroup6" label="Nhóm lệnh in">    
        <button id="customButton10" label="GOI FORM IN 1" size="large" onAction="GOI_FORM_IN1" imageMso="PrintMenu" />            <button id="customButton11" label="GOI FORM IN 2" size="large" onAction="GOI_FORM_IN2" imageMso="PrintMenu" />    </group>    
     </tab>   </tabs> </ribbon></customUI>
- Không biết còn thiếu gì nữa mà khi bấm vào code vba không làm việc.
- Em rất mong được mọi người chỉ giùm em là mình còn thiếu gì mà code VBA không thực hiện.
- Em xin cảm ơn!.

Một lỗi xảy ra nữa là bạn khai báo trong code HTML :
PHP:
onAction="Phieu_diem

tức là khi bạn click vào button này ,tức là bạn sẽ thực thi 1 thủ tục có tên là
Mã:
'Callback for customButton3 onAction
Sub Phieu_diem(control As IRibbonControl)


End Sub
Tuy nhiên trong moude1 của bạn đã có Public Sub Phieu_diem()
Do đó VBA sẽ không hiểu thủ tục mà bạn muốn gọi đến là gì, --> không có kết quả trả về

Tóm lại :
* Bạn sửa lại tên sub ở Modue1 đi , ví dụ sub Phieu_diem XXX
* Sau đó tại thêm dòng này vào đoạn code callback
Mã:
'Callback for customButton3 onAction
Sub Phieu_diem(control As IRibbonControl)
Call moudle1.Phieu_diem XXX
End Sub



 
Lần chỉnh sửa cuối:
Upvote 0
Một lỗi xảy ra nữa là bạn khai báo trong code HTML :
PHP:
onAction="Phieu_diem

tức là khi bạn click vào button này ,tức là bạn sẽ thực thi 1 thủ tục có tên là
Mã:
'Callback for customButton3 onAction
Sub Phieu_diem(control As IRibbonControl)


End Sub
Tuy nhiên trong moude1 của bạn đã có Public Sub Phieu_diem()
Do đó VBA sẽ không hiểu thủ tục mà bạn muốn gọi đến là gì, --> không có kết quả trả về

Tóm lại :
* Bạn sửa lại tên sub ở Modue1 đi , ví dụ sub Phieu_diem XXX
* Sau đó tại thêm dòng này vào đoạn code callback
Mã:
'Callback for customButton3 onAction
Sub Phieu_diem(control As IRibbonControl)
Call moudle1.Phieu_diem XXX
End Sub



- Cảm ơn bạn nhiều nhé. Vậy mà mình cứ loay hoay mãi!.
 
Upvote 0

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

Back
Top Bottom