Chia sẻ công cụ tạo Ribbon cho file Excel

Liên hệ QC

huuthang_bd

Chuyên gia GPE
Tham gia
10/9/08
Bài viết
8,714
Được thích
10,824
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Thợ đụng
Xuất phát từ ý tưởng của topic Add-Ins Tạo Menu RibbonTiếng Việt Có Dấu Cho Office
Tôi viết lại công cụ tạo Ribbon cho file Excel. Vì topic kia đã quá nhiều bài nên tôi mở topic này để mọi người dễ tìm hơn.
Ai cần thì tải về dùng. "Open source" --=0
 

File đính kèm

  • Ribbon Creator.rar
    439.7 KB · Đọc: 1,129
Chào Anh!.
Ví dụ: Tôi có file TD; Trong file có code xóa dữ liệu; Tôi muốn tạo menu xóa dữ liệu bằng tiếng việt để chạy code xóa đó thực hiện theo file của Anh để tạo
Cảm ơn Anh Nhiều!.
- Cách đây cũng không lâu tôi có tạo menu tiếng việt nhưng tôi sử dụng "Custom UI Editor For Microsoft Office"; Phần tiếng việt tôi sử dụng file tạo chuỗi "Tao chuoi cho Custom UI Editor" Trên GPE do Anh siwtom viết. Với cách đó tôi đã tạo ra được Menu tiếng việt nó chỉ thực hiện được với file .xlsm còn file .xlsb không thực hiện được. Nếu file của Anh thực hiện được nhanh và cả file định dạng .xlsb thì thật tốt; Nhưng tôi chưa hiểu cách dùng. Mong Anh hướng dẫn chi tiết hơn với file Ribbon Creator.

Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"><!-- Thêm the? mo´i va`o Ribbon -->
<ribbon>
<tabs>
<tab id="MyCustomTab" label="TỔNG HỢP DỮ LIỆU" insertAfterMso="TabHome">
<group id="customGroup3" label="XÓA DANH SÁCH">
<button id="customButton35" label="Xóa dữ liệu báo cáo" size="large" onAction="Xoa_du_lieu_bao_cao" imageMso="TableDeleteRowsAndColumnsMenuWord" />
<button id="customButton36" label="Xóa dữ liệu báo cáo tổng hợp" size="large" onAction="Xoa_du_lieu_bao_cao_tong_hop" imageMso="TableDeleteRowsAndColumnsMenuWord" />


</group>


</tab>
</tabs>
</ribbon>
</customUI>

File TD.xlsm đính kèm là tôi đã làm cho bạn rồi. Còn cách làm thì bạn khai báo như file Ribbon TD.xlsm như file đính kèm. Sau đó bấm vào nút Create Ribbon và chọn file bạn muốn thêm Ribbon.
 

File đính kèm

  • TD.xlsm
    23 KB · Đọc: 105
  • Ribbon TD.xlsm
    470.7 KB · Đọc: 340
Upvote 0
Xuất phát từ ý tưởng của topic Add-Ins Tạo Menu RibbonTiếng Việt Có Dấu Cho Office
Tôi viết lại công cụ tạo Ribbon cho file Excel. Vì topic kia đã quá nhiều bài nên tôi mở topic này để mọi người dễ tìm hơn.
Ai cần thì tải về dùng. "Open source" --=0
Mình có một đoạn code sử dụng cho nhiều file excel, nếu như mỗi file excel bỏ code vào thì phải thực hiện trên rất nhiều file(file có cấu trúc giống nhau) có cách nào mình tạo thành một Add In và luôn hiện trên thanh Ribbon để sử dụng cho tiện không bạn. Mình đã thử chuyển sang đuôi .xlsm nhưng không hiện lên thanh Ribbon được. Mong bạn chỉ giúp.
Chân thành cảm ơn
 
Upvote 0
File TD.xlsm đính kèm là tôi đã làm cho bạn rồi. Còn cách làm thì bạn khai báo như file Ribbon TD.xlsm như file đính kèm. Sau đó bấm vào nút Create Ribbon và chọn file bạn muốn thêm Ribbon.
Cảm ơn Anh. Anh ơi Nếu file Ribbon của Anh tại cột "imageMso" Nếu là ta chọn cell nào và chọn hình tại mục insertimageMso thì tự điền nội dung vào thì tôt, Nếu không được mà phải nhập nội dung để tạo hình imageMso thì thật là lâu!./
 
Upvote 0
Cảm ơn Anh. Anh ơi Nếu file Ribbon của Anh tại cột "imageMso" Nếu là ta chọn cell nào và chọn hình tại mục insertimageMso thì tự điền nội dung vào thì tôt, Nếu không được mà phải nhập nội dung để tạo hình imageMso thì thật là lâu!./
Vui lòng đọc hết các bài trong topic này.
 
Upvote 0
Mình có một đoạn code sử dụng cho nhiều file excel, nếu như mỗi file excel bỏ code vào thì phải thực hiện trên rất nhiều file(file có cấu trúc giống nhau) có cách nào mình tạo thành một Add In và luôn hiện trên thanh Ribbon để sử dụng cho tiện không bạn. Mình đã thử chuyển sang đuôi .xlsm nhưng không hiện lên thanh Ribbon được. Mong bạn chỉ giúp.
Chân thành cảm ơn

Bạn phải chuyển sang đuôi xlam thì mới tạo add-in được chứ nhỉ !
 
Upvote 0
Cũng không phải cứ save dạng xlam là được. Nếu có Macro sự kiện thì phải biết dùng class mới tạo được add in.

Mình đã chuyển sang đuôi xlam nhưng vẫn không có hiện lên thanh Ribbon. Mình gửi Code và file để bạn xem giúp mình.
Option Explicit
Sub TONGHOP()
Dim Ws As Worksheet, Arr, dArr, I&, K&
ReDim dArr(1 To 100000, 1 To 29)
Application.ScreenUpdating = False
For Each Ws In Worksheets
If Ws.Name = "MP" Or Ws.Name = "DA" Or Ws.Name = "SVN" Then
Arr = Ws.Range(Ws.[A5], Ws.[A6500].End(3)).Resize(, 29).Value
For I = 1 To UBound(Arr)
K = K + 1
dArr(K, 1) = K
dArr(K, 2) = Arr(I, 3)
dArr(K, 3) = Arr(I, 7)
dArr(K, 4) = Arr(I, 9)
dArr(K, 5) = Arr(I, 11)
dArr(K, 6) = Arr(I, 12)
dArr(K, 23) = "=sum(RC[-1]:RC[-16])"
dArr(K, 24) = "=RC[1]*RC[-19]"
dArr(K, 25) = Arr(I, 5)
dArr(K, 26) = "=IF(RC[-3]>RC[-2],""NG"",""OK"")"
dArr(K, 27) = "=RC[-4]-RC[-3]"
dArr(K, 28) = Arr(I, 13)
dArr(K, 29) = Arr(I, 8)
Next I
End If
Next Ws
With Sheets("Ton Kho")
.Range(.[A5], .[A65000].End(3)).Resize(, 29).Borders.LineStyle = 0
.Range(.[A5], .[A65000].End(3)).Resize(, 29).ClearContents
If K Then
.Range("A5").Resize(K, 29) = dArr
.Range("A5").Resize(K, 29).Borders.LineStyle = 1
End If
End With
Application.ScreenUpdating = True
End Sub
Cảm ơn bạn
 

File đính kèm

  • TON KHO.xlam
    14.3 KB · Đọc: 47
Upvote 0
Mình đã chuyển sang đuôi xlam nhưng vẫn không có hiện lên thanh Ribbon. Mình gửi Code và file để bạn xem giúp mình.
Option Explicit
Sub TONGHOP()
Dim Ws As Worksheet, Arr, dArr, I&, K&
ReDim dArr(1 To 100000, 1 To 29)
Application.ScreenUpdating = False
For Each Ws In Worksheets
If Ws.Name = "MP" Or Ws.Name = "DA" Or Ws.Name = "SVN" Then
Arr = Ws.Range(Ws.[A5], Ws.[A6500].End(3)).Resize(, 29).Value
For I = 1 To UBound(Arr)
K = K + 1
dArr(K, 1) = K
dArr(K, 2) = Arr(I, 3)
dArr(K, 3) = Arr(I, 7)
dArr(K, 4) = Arr(I, 9)
dArr(K, 5) = Arr(I, 11)
dArr(K, 6) = Arr(I, 12)
dArr(K, 23) = "=sum(RC[-1]:RC[-16])"
dArr(K, 24) = "=RC[1]*RC[-19]"
dArr(K, 25) = Arr(I, 5)
dArr(K, 26) = "=IF(RC[-3]>RC[-2],""NG"",""OK"")"
dArr(K, 27) = "=RC[-4]-RC[-3]"
dArr(K, 28) = Arr(I, 13)
dArr(K, 29) = Arr(I, 8)
Next I
End If
Next Ws
With Sheets("Ton Kho")
.Range(.[A5], .[A65000].End(3)).Resize(, 29).Borders.LineStyle = 0
.Range(.[A5], .[A65000].End(3)).Resize(, 29).ClearContents
If K Then
.Range("A5").Resize(K, 29) = dArr
.Range("A5").Resize(K, 29).Borders.LineStyle = 1
End If
End With
Application.ScreenUpdating = True
End Sub
Cảm ơn bạn
Anh chị và các bạn nào biết cách làm cho Add In hiện lên thanh Ribbon thì chỉ mình cách làm với.
chân thành cảm ơn.
 
Upvote 0
Bạn thử mở trên máy khác hoặc nhờ người khác test xem sao chứ khi gửi lên là tôi đã thử rồi.
Mình đã test trên 3 máy đều phát sinh lỗi giống nhau:
Máy 1: Win7+Office 2007
Máy 2: Win7+Office 2010
Máy 3: Win10+Office 2013
Cả 3 máy này đều sử dụng win và office 32 bit
Trình tự mình làm như sau:
1. Copy file Stock paste Vào: C:\Users\Administrator\AppData\Roaming\Microsoft\AddIns
2. Mở file ecxel lên chọn File\Option\Add-In\Go...[Manage]\Browse...tiếp theo chọn file Stock trong đường dẫn trên và cuối cùng là OK.
Sau đó mình thấy báo lỗi như bài #32
Bạn thử kiểm tra Code lại một lần nữa xem sao
Cảm ơn bạn nhiều
 
Upvote 0
Bạn thử mở trên máy khác hoặc nhờ người khác test xem sao chứ khi gửi lên là tôi đã thử rồi.
Anh chị và các bạn download file bài #31 test giúp mình với. Theo như bạn huuthang_bd nói đã test OK nhưng mình test thì báo lỗi, không biết có phải do máy của mình có vấn đề.
Chân thành cảm ơn
 
Upvote 0
Anh chị và các bạn download file bài #31 test giúp mình với. Theo như bạn huuthang_bd nói đã test OK nhưng mình test thì báo lỗi, không biết có phải do máy của mình có vấn đề.
Chân thành cảm ơn
Máy của mình cũng báo lỗi (Win 10 32bit, Excel 2016).
 
Upvote 0
Tôi thì thử trên cả 2 máy của tôi đều được (Win10+Ex2007 và Win7+Ex2010).
Thôi thì tôi giữ nguyên phần macro của bạn không chỉnh sửa gì cả, chỉ thêm phần ribbon cho bạn.
Nhưng tôi cũng nói trước là nếu trên file của bạn không có sheet "Ton kho" thì code sẽ bị lỗi đấy nhé.
 

File đính kèm

  • Stock.xlam
    12.7 KB · Đọc: 75
Upvote 0
Tôi thì thử trên cả 2 máy của tôi đều được (Win10+Ex2007 và Win7+Ex2010).
Thôi thì tôi giữ nguyên phần macro của bạn không chỉnh sửa gì cả, chỉ thêm phần ribbon cho bạn.
Nhưng tôi cũng nói trước là nếu trên file của bạn không có sheet "Ton kho" thì code sẽ bị lỗi đấy nhé.
Cảm ơn bạn,
Lần này mình thấy không có báo lỗi. Cho mình hỏi tí xíu Trong code mình thấy có 2 câu khác với code hiện tại của mình, có phải là nhờ 2 câu code này mà Add In được hiện lên thanh Ribbon? Hay còn những Module khác mà được ẩn đi. Mình đang muốn học hỏi mong bạn chỉ dẫn.
2 câu khác với code hiện tại là:
Sub TONGHOP(RBCtrl As IRibbonControl)
For Each WS In ActiveWorkbook.Worksheets
 
Upvote 0
Ngoài vấn đề tạo Ribbon Menu, huuthang_bd làm nốt luôn cái việc tạo Cell Menu luôn đi cho nó máu! Kiểu hình dưới đây:
 

File đính kèm

  • CellMenu.jpg
    CellMenu.jpg
    51.4 KB · Đọc: 197
Upvote 0
Ngoài vấn đề tạo Ribbon Menu, huuthang_bd làm nốt luôn cái việc tạo Cell Menu luôn đi cho nó máu! Kiểu hình dưới đây:
Cái này máu thiệt nè bác, contextmenu, thêm vào menu trong mục File (hoặc nút Office), thêm vào nút lệnh trong các tab khác (Home, View, Insert...) luôn đi bác
 
Upvote 0
Web KT
Back
Top Bottom