Add-Ins Tạo Menu RibbonTiếng Việt Có Dấu Cho Office (1 người xem)

Liên hệ QC

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

Kiều Mạnh

I don't program, I beat code into submission!!!
Tham gia
9/6/12
Bài viết
5,538
Được thích
4,133
Giới tính
Nam
Mấy ngày nay Mình ngồi nghiên Cứu cách tạo Menu RibbonTiếng việt có dấu cho Office ...

Đọc và nghiên cứu rất nhiều tài liệu và Code trên GPE + Internet ....

Mạnh Copy Tổng hợp lại nghiên cứu và Viết thành 1 Add-Ins tạo Menu Ribbon Tiếng viết có dấu

Sử dụng đơn giản nhanh và không phải Cài đặt vào máy Mọi cái Tích hợp vào Excel hết cứ vậy là xài ...

1/ Xét thấy cũng tạm được Úp lên đây cho Bạn nào có nhu cầu thì tải về mà xài trong đó kèm theo Tools XYZ ...

Mạnh copy Code từ trên Internet về làm...

2/ Quá trình sử dụng nếu có gì không ổn thì báo lại mình điều chỉnh code

3/ Mình đặt Pass UnviewProject cho File Add-Ins nếu Bạn nào Mở được thì cứ mở Banh ta lông ra mà coi ...

Nếu không mở được tại đây báo cho Mình biết ... Mình sẻ úp File Excel không Pass lên cho Mà điều chỉnh...

4/ Mã nguồn Mạnh Copy Từ Internet và viết thêm một số ...Vì vậy nếu có ai đó cho Rằng Copy Code thì cũng đúng 60% ...vậy đi nha ...xúc tích ngắn gọn vậy cho nhanh....+-+-+-+

5/ Mình để 2 File trong Một Folder ...chạy File ToolsExcel_Setup.exe nó sẻ giải nén File EncryptVBA.dll vào System32 và Copy File Tools Excel.xlam vào Folder Add-Ins ....

6/ Nếu Máy Từ Win7 trở lên chạy File ToolsExcel_Setup.exe Mà UAC đang ON thì Chọn Yes

7/ Nếu không thích xài nữa tìm 2 file đó Delete nó đi ...Xong phim

8/ File RibbonTV Creator Ver2.rar xem chi tiết tại Bài #69 Link Sau

http://www.giaiphapexcel.com/forum/...Menu-RibbonTiếng-Việt-Có-Dấu-Cho-Office/page7

Chúc Vui vẻ và Tạo ra cho Mình một Ribbon Tiếng Việt Tuyệt đẹp Hữu ích ...
Và chia sẻ cho Mọi Người cùng xài Nha .............--=0|||||--=--

Kiều Mạnh
 

File đính kèm

Lần chỉnh sửa cuối:
Sao click vào cái gì cũng lỗi hết vậy nhỉ bác kieu_manh. Hình như không chạy được trên x64 hay sao ý :=\+:=\+:=\+
Dùng Hex Editor không ăn thua rồi! Bác hướng dẫn luôn cách tạo UnviewProject được không a??
 
Lần chỉnh sửa cuối:
Sao click vào cái gì cũng lỗi hết vậy nhỉ bác kieu_manh. Hình như không chạy được trên x64 hay sao ý :=\+:=\+:=\+
Dùng Hex Editor không ăn thua rồi! Bác hướng dẫn luôn cách tạo UnviewProject được không a??

Ý là sao ...Bạn cứ phá thoải mái đi ...khi nào chám thì mình hướng dẫn cho nha ...

truyện cỏn con ấy mà...Mình đặt Pass là để sử chung với Excel cho nó ko rắc rối ấy mà ...--=0
 
Bác KieuManh ơi của mình báo lỗi thế này.
Hinh.jpg
 
Mình cài excel 2007 để test thôi, tại vì muốn ứng dụng của mình sử dụng được trên excel 2007-2016 luôn.
Thử chạy Code ADO trên 2007 xem ...và nhiều cái khác nữa Lỗi tùm lum đó ...

1 xài đồ cổ 2003 , 2 = 2010, 3 = 2016

Riêng 2016 Mình có xài Nhưng thấy nó chậm 2010 thì phải ....Chờ một thời gian nữa Bác Bill tích hợp thêm Sky thì xài luôn
 
Tôi thấy cách làm này hình như hơi chậm so với cách làm của mình (dùng Notepad++). Vã lại nếu muốn chỉnh sửa tìm cũng mệt nếu dữ liệu có vài trăm dòng, mà chữ thì toàn là chữ thái không cũng mệt.
 
Lần chỉnh sửa cuối:
Nhanh hơn chứ sao lại chậm hơn ...Gõ tiếng việt vào Form đó Xong Enter 1 cái là nó Nhớ vào Clipboard rồi ..xong Tìm đến chỗ cần thay thế Tiêng Việt xóa đi xong Ctrl+V vào là xong
Còn chữ thái thì viết Ghi chú vào như sau...xong
Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <ribbon startFromScratch="false">
        <tabs>
            [COLOR=#ff0000][B]<!--Tab Cua Kieu Manh -->[/B][/COLOR]
            <tab id="customTab" label="Tab Của Kiều Mạnh">
               [B][COLOR=#ff0000] <!--Giai Phap Excel-->[/COLOR][/B]
                <group id="customGroup" label="Giải Pháp Excel">
                    [B][COLOR=#ff0000]<!--Kieu Manh-->[/COLOR][/B]
                    <button id="customButton" label="Kiều Mạnh" imageMso="OldMenu" size="large" onAction="Callback" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
 
Lần chỉnh sửa cuối:
Nhanh hơn chứ sao lại chậm hơn ...Gõ tiếng việt vào Form đó Xong Enter 1 cái là nó Nhớ vào Clipboard rồi ..xong Tìm đến chỗ cần thay thế Tiêng Việt xóa đi xong Ctrl+V vào là xong
Cách làm của mình thì thế này.
Dùng phần mềm dưới đây để tạo Ribbon và gõ dấu tiếng việt không dấu (chỉ gõ một vài từ cũng được).
http://www.andypope.info/vba/ribboneditor.htm
Sau đó lưu lại và extract file customUI ra và dùng Notepad để sửa lại dấu tiếng việt, lưu lại và cho nó vào trở lại file excel thế là xong. Cong theo tôi thấy cách làm của bác thì thực hiện nhiều thao tác gõ và rồi dán nhảy qua lại còn lâu hơn rất nhiều. Nhưng nói chung cũng là do cách làm của mỗi người người thôi, cái nào thuận tiện thì làm vậy, tôi thì quen với cách này rồi. À sẳn góp ý cho Add-Ins của bác luôn mấy cái bẻ khóa của bác chạy lâu quá, theo tôi dùng Notepad cho nó lành.
 
Cách làm của mình thì thế này.
Dùng phần mềm dưới đây để tạo Ribbon và gõ dấu tiếng việt không dấu (chỉ gõ một vài từ cũng được).
http://www.andypope.info/vba/ribboneditor.htm
Sau đó lưu lại và extract file customUI ra và dùng Notepad để sửa lại dấu tiếng việt, lưu lại và cho nó vào trở lại file excel thế là xong. Cong theo tôi thấy cách làm của bác thì thực hiện nhiều thao tác gõ và rồi dán nhảy qua lại còn lâu hơn rất nhiều. Nhưng nói chung cũng là do cách làm của mỗi người người thôi, cái nào thuận tiện thì làm vậy, tôi thì quen với cách này rồi. À sẳn góp ý cho Add-Ins của bác luôn mấy cái bẻ khóa của bác chạy lâu quá, theo tôi dùng Notepad cho nó lành.
Unprotect Biết vậy nhưng xài code bấm một cái xong ... mắt kém tìm trong Notepad chư 3 đậm chữ đen hoa cà mắt ....Mạnh có 1 Mớ cách khác nữa đó ...nhưng thích cái nào thì xài cái đó vậy

Còn cái Add-in đó Mình biết lâu rồi thấy nó rắc rối lắm
 
Mấy ngày nay Mình ngồi nghiên Cứu cách tạo Menu RibbonTiếng việt có đấu cho Office ...đọc và nghiên cứu rất nhiều tài liệu và Code trên GPE + Internet ....

Mạnh Copy Tổng hợp lại nghiên cứu và Viết thành 1 Add-Ins tạo Menu Ribbon Tiếng viết có dấu sử dụng đơn giản nhanh và không phải Cài đặt vào máy Mọi cái Tích hợp vào Excel hết cứ vậy là xài ...

1/ Xét thấy cũng tạm được Úp lên đây cho Bạn nào có nhu cầu thì tải về mà xài trong đó kèm theo Tools XYZ ...Mạnh copy Code từ trên Internet về làm

2/ Quá trình sử dụng nếu có gì không ổn thì báo lại mình điều chỉnh code

3/ Mình đặt Pass UnviewProject cho File Add-Ins nếu Bạn nào Mở được thì cứ mở Banh ta lông ra mà coi ...Nếu ko mở được tại đây báo cho mình biết ... mình sẻ úp File Excel ko Pass lên cho Mà điều chỉnh

4/ Mã nguồn Mạnh Copy Từ Internet và viết thêm một số ...Vì vậy nếu có ai đó cho Rằng Copy Code thì cũng đúng 60% ...vậy đi nha ...xúc tích ngắn gọn vây cho nhanh....+-+-+-+

5/ Mình để 2 File trong Một Folder ...chạy File ToolsExcel_Setup.exe nó sẻ giải nén File EncryptVBA.dll vào System32 và Copy File Tools Excel.xlam vào Folder Add-Ins ....

6/ Nếu Máy Từ Win7 trở lên chạy File ToolsExcel_Setup.exe Mà UAC đang ON thì Chọn Yes

7/ Nếu ko thích xài nữa tìm 2 file đó Delete nó đi ...Xong phim

Chúc Vui vẻ và Tạo ra cho Mình một Menu Ribbon Tuyệt đẹp Hữu ích ...
Và chia sẻ cho mọi người cùng xài Nha .............--=0|||||--=--

Kiều Mạnh

Góp ý : Đây là cách củ chuối của mình, các bạn có thể xem trong file đính kèm:
Bước 1 : Mở file Ribbon Creator.xlsm rồi thiết kế theo cách của bạn
Bước 2 : Lần lượt chép mã VBA (ở sheet VBA file trên) và mã XML (ở sheet XML file trên) chèm vào file YourApp.xlsm vào vị trí thích hợp > Xong
 

File đính kèm

Góp ý 2 : Nếu các bạn thiết kế file có nhiều ngôn ngữ khác nhau (tiếng Anh, tiếng Việt, ...) thì nên để code trong VBA (nếu để trong XML thì sẽ phải viết lại khá bất tiện).

Việc gọi ngôn ngữ khác nhau có thể chỉ cần thay đổi giá trị của 1 Hằng số, hoặc Hàm, hoặc Thủ tục (Xem file đính kèm)
 

File đính kèm

Chia sẻ : Hôm trước (cũng khá lâu rồi) mình đọc trên diễn đàn có bạn hỏi làm cách nào :

1. khi bấm vào 1 nút thì các control mặc định trên ribbon ẩn đi (tức là chỉ hiện control của mình).
2. Khi ấn nút đó lần nữa thì lại hiện lại tất cả control.

Lúc đó mình tìm code không được, nay chia sẻ cùng các thành viên (Xem nút 'Hiện Tab hệ thống' trong tab 'XEM LẠI' file đính kèm)

https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1dXJDS09xcGk4TTg
 
Lần chỉnh sửa cuối:
Góp ý 2 : Nếu các bạn thiết kế file có nhiều ngôn ngữ khác nhau (tiếng Anh, tiếng Việt, ...) thì nên để code trong VBA (nếu để trong XML thì sẽ phải viết lại khá bất tiện).

Việc gọi ngôn ngữ khác nhau có thể chỉ cần thay đổi giá trị của 1 Hằng số, hoặc Hàm, hoặc Thủ tục (Xem file đính kèm)
Cảm ơn Bạn mới coi thấy nó cũng rắc rối quá hay mình chưa hiểu hết ...Từ từ mai Ngân cứu Tiếp
 
Mình mới coi lại hay Ghê Nhưng chưa hiểu câu sau lắm Chèm lên Sheet Hay Phần mềm Custom UI Editor.exe xong lưu lại

Bước 2 : Lần lượt chép mã VBA (ở sheet VBA file trên) và mã XML (ở sheet XML file trên) chèm vào file YourApp.xlsm vào vị trí thích hợp > Xong
 
Lần chỉnh sửa cuối:
Mình mới coi lại hay Ghê Nhưng chưa hiểu câu sau lắm Chèm lên Sheet Hay Phần mềm Custom UI Editor.exe xong lưu lại

Bước 2 : Lần lượt chép mã VBA (ở sheet VBA file trên) và mã XML (ở sheet XML file trên) chèm vào file YourApp.xlsm vào vị trí thích hợp > Xong

Bạn đổi đuôi file YourApp.xlsm thành YourApp.zip, sau đó chép nội dung XML vào file customUi14.xml trong thư mục customUI. Nhớ lưu lại file .zip trước khi đổi lại đuôi .xlsm
 
Bạn đổi đuôi file YourApp.xlsm thành YourApp.zip, sau đó chép nội dung XML vào file customUi14.xml trong thư mục customUI. Nhớ lưu lại file .zip trước khi đổi lại đuôi .xlsm
OK rồi ... MÌnh thắc Mắc 1 điều tại sao chi có File YourApp.xlsm của Bạn mới có Mã Custom UI ....+-+-+-+

Nhìn cách Viết code Của Bạn Mình bất chợt nhớ Tới 1 Người cũng rất giỏi Món này (Siwtom)
 
Cảm Ơn Bạn thaipv rất nhiều ....

Thú vị ghê cuối cũng Mạnh cùng Tìm ra Bí Mật Tạo File YourApp.xlsm Trắng Tinh

Chơi kiểu chốm tìm này lúc nhỏ Mình hay chơi ...cứ hay dủ mấy con nhỏ rúc vào bụi rơm (Cây rơm rạ ) ý --=0--=0
 

File đính kèm

Cảm Ơn Bạn thaipv rất nhiều ....

Thú vị ghê cuối cũng Mạnh cùng Tìm ra Bí Mật Tạo File YourApp.xlsm Trắng Tinh

Chơi kiểu chốm tìm này lúc nhỏ Mình hay chơi ...cứ hay dủ mấy con nhỏ rúc vào bụi rơm (Cây rơm rạ ) ý --=0--=0

Hix, bạn này vui tính nhỉ.
 
Hix, bạn này vui tính nhỉ.

Mình đang nghĩ tại sao không nghĩ cách viết code chạy cái rẹt nó thay thế file Custom UI.xml ... Chèm mã XML trên Sheet Vào nhỉ vì File này có thể Edit bằng Notepad của windows được ko lỗi Font vì Xài Hàm RibbonTV

sẻ hay đấy...
 
Mình đang nghĩ tại sao không nghĩ cách viết code chạy cái rẹt nó thay thế file Custom UI.xml nhỉ vì File này có thể Edit bằng Notepad của windows được ko lỗi Font vì Xài Hàm RibbonTV

sẻ hay đấy...

Bạn nghiên cứu tiếp đi, vì còn nhiều vấn đề nữa : Thêm hình tự tạo, các control loại khác nữa (slpitButton, Menu, tglButton, ....).

Hiện mình làm biếng quá nên chia sẻ mã nguồn lên đây để các bạn phát triển tiếp
 
Quả thật rất nhiểu bổ ích, cách của bạn thaipv tôi thấy cũng hay đấy.
 
Bạn nghiên cứu tiếp đi, vì còn nhiều vấn đề nữa : Thêm hình tự tạo, các control loại khác nữa (slpitButton, Menu, tglButton, ....).

Hiện mình làm biếng quá nên chia sẻ mã nguồn lên đây để các bạn phát triển tiếp
Xem ra phải nhờ Bạn hướng dẫn Chi Tiết cho File Ribbon Creator Sheet Main chi tiết Một tí ....

xem quy luật sắp xếp nó chi Tiết thế nào ...Mình thử thiết kế nhiều thấy lỗi...

Hay ta viết code trên sự Kiện Change cho Nó check lỗi ta ...giống như Custom UI Editor.exe ý ....
 
Xem ra phải nhờ Bạn hướng dẫn Chi Tiết cho File Ribbon Creator Sheet Main chi tiết Một tí ....

xem quy luật sắp xếp nó chi Tiết thế nào ...Mình thử thiết kế nhiều thấy lỗi...
Cách sử dụng Ribbon Creator : (Thiết kế Ribbon trên sheet MAIN để làm)
Cột A (ID) - Mã ID của control : Viết liền, không dấu, không được trùng.
Cột B (Level) – Các bạn điền 1 (nếu là Tab), 2 (nếu là Group) và 3 (nếu là Button). Cái này lưu ý không được bỏ Group (tức là từ Tab xuống Button luôn là sai)
Cột C (Size) – Kích thước của button : large, normal
Cột D (Label) – Tên control : Áp dụng đối với tất cả (Tab, Group, Button)
Cột E (ScreenTip) – Ghi chú : Áp dụng cho các button
Cột F (SuperTip) – Ghi chú thêm : Áp dụng cho các button
Cột G (KeyTip) – Phím tắt : Áp dụng cho Tab và Button
Cột H (ImageMso) – Biểu tượng của Group (tùy chọn) và Button
Cột I (Test) – Kiểm tra sự trùng lặp của ID control (Không nhập cột này, fill công thức để dùng)

Khác với VBA, các từ khóa trong tập XML này phải chính xác, có phân biệt chữ hoa, chữ thường. Các ID control không được trùng (kiểm tra bằng cột I)

Hay ta viết code trên sự Kiện Change cho Nó check lỗi ta ...giống như Custom UI Editor.exe ý ....
Cái này mình chưa nghĩ tới.
 
Cách sử dụng Ribbon Creator : (Thiết kế Ribbon trên sheet MAIN để làm)
Cột A (ID) - Mã ID của control : Viết liền, không dấu, không được trùng.
Cột B (Level) – Các bạn điền 1 (nếu là Tab), 2 (nếu là Group) và 3 (nếu là Button). Cái này lưu ý không được bỏ Group (tức là từ Tab xuống Button luôn là sai)
Cột C (Size) – Kích thước của button : large, normal
Cột D (Label) – Tên control : Áp dụng đối với tất cả (Tab, Group, Button)
Cột E (ScreenTip) – Ghi chú : Áp dụng cho các button
Cột F (SuperTip) – Ghi chú thêm : Áp dụng cho các button
Cột G (KeyTip) – Phím tắt : Áp dụng cho Tab và Button
Cột H (ImageMso) – Biểu tượng của Group (tùy chọn) và Button
Cột I (Test) – Kiểm tra sự trùng lặp của ID control (Không nhập cột này, fill công thức để dùng)

Khác với VBA, các từ khóa trong tập XML này phải chính xác, có phân biệt chữ hoa, chữ thường. Các ID control không được trùng (kiểm tra bằng cột I)


Cái này mình chưa nghĩ tới.
Cảm Ơn Bạn

Để phát triển thêm mã Nguồn của Bạn ...

Mình mới Tạm viết sơ bộ cho Sheet Main Sự Kiện Change Như Sau Nó sẻ giúp phần nào kiểm Soát lỗi và tự

động tạo Mã ID, Size và Key Tip ... Riêng Key Tip Nếu không thích thì gõ trực tiếp vào đó ...

Để Xem tình hình Sao ... Mình sẻ viết Một Code Kiểm tra Lỗi trước Khi Chuyển Qua Mã Custom UI

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ExitSub
Dim MyTab As String: MyTab = "MyTab" & GetRandName
Application.EnableEvents = False
    If Not Intersect([B2:B300], Target) Is Nothing Then
        If Target.Value = 1 Then
            With Target
                .Offset(, -1).Value = MyTab
                .Offset(, -1).Interior.ColorIndex = 6
                .Offset(, 1).Value = Empty
                .Offset(, 2).Interior.ColorIndex = 6
                .Offset(, 3).Value = Empty
                .Offset(, 4).Value = Empty
            End With
        ElseIf Target.Value = 2 Then
            With Target
                .Offset(, -1).Interior.ColorIndex = 8
                .Offset(, 1).Value = Empty
                .Offset(, 2).Interior.ColorIndex = 8
                .Offset(, 3).Value = Empty
                .Offset(, 4).Value = Empty
                .Offset(, 5).Value = Empty
            End With
        ElseIf Target.Value = 3 Then
            With Target
                .Offset(, -1).Interior.ColorIndex = xlNone
                .Offset(, 1).Value = "large"
                .Offset(, 2).Interior.ColorIndex = xlNone
                .Offset(, 5).Value = GetRandName
            End With
        Else
            Target.Value = Empty
            Target.Select
            MsgBox "Chi Duoc Nhap 1, 2 Hay 3", 64, "Thông Báo"
        End If
    End If
ExitSub:
Application.EnableEvents = True
End Sub


Private Function GetRandName() As String
    ''//Tao so Ngau nhien ... Copy Form GPE
    GetRandName = Mid(CreateObject("Scripting.FileSystemObject").GetTempName, 4, 2)
End Function
 
Lần chỉnh sửa cuối:
Cuối Cùng Mạnh cũng xử lý xong Khi tạo Menu Ribbon ta không nhớ quy luật khai báo ban đầu...

Sẻ lỗi không tạo được ....Chép code sau vào Sheet Main ..

Chỉ Việc Gõ 1,2,3 vào [B2:B] thì nó sẻ báo lỗi cho Biết ...đơn giản phải ko nào .....

Mạnh Úp tặng cho Bạn nào cần kết hợp với Code của thaipv ....Thì Tạo Menu Ribbon Tiếng Việt chở nên đơn giản

không cần thiết phải nhớ khai báo mằn cái chi cho Nhức đầu ....Code Nó Nhớ ....

Chỉ cần Sự kiện Change cũng xử lý OK...

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ExitSub ''Coded By Kieu Manh - GPE
Dim MyTab As String: MyTab = "Book" & GetRandName               ''//Tao Tab Ngau nhien ko trung
Dim MyID As String: MyID = "WL" & MyCount                       ''//Ten ID cac Tab con Cong them 1
Application.EnableEvents = False
    If Not Intersect([B2:B300], Target) Is Nothing Then
        If Target.Offset(, 6).Value = Empty Then
            Target.Offset(, 6).Value = "OldMenu"                ''//Neu Bo trong ta cho Mat cuoi Vao Do cho ko Loi Code
        End If
        If Target.Value = 1 Then                                ''//Ap dung cho Tao 1 Tab Moi tren Menu Ribbon
            With Target
                If .Offset(, 2) <> Empty Then
                    If Target.Value = Target.Offset(-1) Then
                        Target.Value = Empty: Target.Select         ''//Xu ly loi khi tao moi 2 Tab lien Tiep
                        MsgBox "Error ... Create Tab Ribbon", 64, "Thông Báo"
                        GoTo ExitSub:
                    End If
                    .Offset(, -1).Value = MyTab                     ''//Ten Tab moi tren Menu Ribbon
                    .Offset(, -1).Interior.ColorIndex = 6           ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, 1).Value = Empty
                    .Offset(, 2).Interior.ColorIndex = 6            ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, 3).Value = Empty
                    .Offset(, 4).Value = Empty
                    .Offset(, 5).Value = GetRandName                ''//Key Tip Cua MyTab bat buoc phai co ...Tao So ngau nhien
                    .Offset(1).Value = 2: Target.Offset(1).Select   ''//Goi Y Tao Tab Theo Code...Neu khong Theo trinh tu La Error
                Else
                    Target.Value = Empty: Target.Offset(, 2).Select
                    MsgBox "Ban Bo Trong Ten - Label ...Error", 64, "Thông Báo"
                End If
            End With
        ElseIf Target.Value = 2 Then                                ''//Ap dung cho Tao Nhieu Tab trong 1 Tab [Group = Nhieu Tab]
            With Target
                If .Offset(, 2) <> Empty Then
                    If Target.Value = Target.Offset(-1) Then
                        Target.Value = Empty: Target.Select         ''//Xu ly loi khi tao moi 2 Tab [Group] lien Tiep
                        MsgBox "Error ... Create Tab Ribbon", 64, "Thông Báo"
                        GoTo ExitSub:
                    End If
                    .Offset(, -1).Interior.ColorIndex = 8           ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, -1).Value = MyID
                    .Offset(, 1).Value = Empty
                    .Offset(, 2).Interior.ColorIndex = 8            ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, 3).Value = Empty
                    .Offset(, 4).Value = Empty
                    .Offset(, 5).Value = Empty
                    .Offset(1).Value = 3: Target.Offset(1).Select   ''//Goi Y Tao Tab Theo Code ...Neu khong Theo trinh tu La Error
            Else
                Target.Value = Empty: Target.Offset(, 2).Select
                MsgBox "Ban Bo Trong Ten - Label ...Error", 64, "Thông Báo"
            End If
            End With
        ElseIf Target.Value = 3 Then                            ''//Ap dung cho Tao 1 Button rieng le
            With Target
                If .Offset(, 2) <> Empty Then                   ''//Xu ly loi khi bo trong Lable - Ten
                    If .Offset(, 3) <> Empty Then               ''//Xu ly loi khi bo trong Ghi Chu - Ben duoi Ten
                        If .Offset(, 4) <> Empty Then           ''//Xu ly loi khi bo trong SuperTip - Comment
                            .Offset(, -1).Interior.ColorIndex = xlNone      ''//Xoa To Mau
                            .Offset(, -1).Value = MyID
                            .Offset(, 1).Value = "large"                    ''//Size large = To; normal = Nho
                            .Offset(, 2).Interior.ColorIndex = xlNone
                            .Offset(, 5).Value = GetRandName                ''//Tao Key Tip ngau nhien
                        Else
                            Target.Value = Empty: Target.Offset(, 4).Select
                            MsgBox "Ban Bo Trong Screen Tip ...Error", 64, "Thông Báo"
                        End If
                    Else
                        Target.Value = Empty: Target.Offset(, 3).Select
                        MsgBox "Ban Bo Trong Screen Tip ...Error", 64, "Thông Báo"
                    End If
                Else
                    Target.Value = Empty: Target.Offset(, 2).Select
                    MsgBox "Ban Bo Trong Ten - Label ...Error", 64, "Thông Báo"
                End If
            End With
        Else
            Target.Value = Empty: Target.Select                 ''//Xoa du lieu Sai
            MsgBox "Chi Duoc Nhap 1, 2 Hoac 3", 64, "Thông Báo" ''//Thong bao du lieu Sai
        End If
    End If
ExitSub:                                                        ''//Xu ly Loi ...
Range("A2").Value = "WALL"                                      ''//Ten Tab moi dau Tien ...
Application.EnableEvents = True
End Sub


''// Den Tang Dan luu trong Registry
Private Function MyCount() As Long
    Dim lCounts As Long
    Application.Volatile
    lCounts = GetSetting("MyCount", "Settings", "Counts", 0) + 1
    SaveSetting "MyCount", "Settings", "Counts", lCounts
    MyCount = lCounts
    If lCounts > 1000 Then DeleteSetting "MyCount", "Settings", "Counts"
End Function


''// Tao So Ngau Nhien
Private Function GetRandName() As String
    ''//Tao so Ngau Nhien ...Copy Form - GPE
    GetRandName = Mid(CreateObject("Scripting.FileSystemObject").GetTempName, 4, 2)
End Function
 
Lần chỉnh sửa cuối:
Tôi thấy cái này hay quá, bác Kieumanh nghiên cứu tiếp thêm các nút lệnh khác như checkbox, textbox, dropdown, dropMenu...
 
Tôi thấy cái này hay quá, bác Kieumanh nghiên cứu tiếp thêm các nút lệnh khác như checkbox, textbox, dropdown, dropMenu...
Từ từ ta nghiên cứu từng cái 1 ...hoàn thiện nó trong 1,2,3 thao tác ....là xong

Giờ giaiphap thử làm xem bằng cách gì ta không cần giải nén file customUI14.xml ...

Mà dùng code tao ra nó xong Open File Excel lên kéo thả vào là xong ....--=0....

làm nhiều thao tác biếng quá...giaiphap thử cho mạnh coi một tí nha
 
Từ từ ta nghiên cứu từng cái 1 ...hoàn thiện nó trong 1,2,3 thao tác ....là xong

Giờ giaiphap thử làm xem bằng cách gì ta không cần giải nén file customUI14.xml ...

Mà dùng code tao ra nó xong Open File Excel lên kéo thả vào là xong ....--=0....

làm nhiều thao tác biếng quá...giaiphap thử cho mạnh coi một tí nha
Mình tìm kiếm nên các code có thể còn vụng bạn xem và góp ý kiến.
1. Mở file YourApp.xlsm, lưu lại thành file zip.
2. giải nén file zip này ra.
3. Xóa 2 file XML ra, và xóa luôn file nén.
4. Tạo lại 2 file XML.
5. Nén thư mục vừa giải nén ở bước 2.
6. Đổi tên file nén thành file xlsm.
7. Xóa thư mục đã giải nén ở bước 2 (nhưng sao khi chạy nó lúc xóa được lúc không, chưa hiểu nguyên nhân).
8. Mở file xlsm vừa tạo ra xem kết quả.
Cách làm của mình chủ yếu là tìm kiếm trên Internet nên code có lẽ hơi rườm rạ, bác kieumanh xem và sửa lại theo ý thích, à mà code kiểm tra của bác kieumanh ở sheets Main chưa chính xác, nếu để code chạy tự động thì khi tạo ra file xlsm bị lỗi không xem được ribbon(Đã test và quyết định bỏ code chạy ngon cành đào).
 

File đính kèm

Mình tìm kiếm nên các code có thể còn vụng bạn xem và góp ý kiến.
1. Mở file YourApp.xlsm, lưu lại thành file zip.
2. giải nén file zip này ra.
3. Xóa 2 file XML ra, và xóa luôn file nén.
4. Tạo lại 2 file XML.
5. Nén thư mục vừa giải nén ở bước 2.
6. Đổi tên file nén thành file xlsm.
7. Xóa thư mục đã giải nén ở bước 2 (nhưng sao khi chạy nó lúc xóa được lúc không, chưa hiểu nguyên nhân).
8. Mở file xlsm vừa tạo ra xem kết quả.
Cách làm của mình chủ yếu là tìm kiếm trên Internet nên code có lẽ hơi rườm rạ, bác kieumanh xem và sửa lại theo ý thích, à mà code kiểm tra của bác kieumanh ở sheets Main chưa chính xác, nếu để code chạy tự động thì khi tạo ra file xlsm bị lỗi không xem được ribbon(Đã test và quyết định bỏ code chạy ngon cành đào).
để mình Nghiên cứu xem mình viết code này giống Bạn
Mã:
Public Sub CreateStrXML()
    Dim UI As String, XML As Worksheet, i As Long
    UI = ThisWorkbook.Path & "\customUI14.xml"
    Set XML = ThisWorkbook.Worksheets("XML")
        With CreateObject("Scripting.FileSystemObject")
            With .CreateTextFile(UI, True, True)
                For i = 1 To 1000
                    .WriteLine XML.Cells(i, 1)
                Next
                .Close
            End With
        End With
    Set XML = Nothing
End Sub

Hướng Mình sẻ làm như sau nhưng còn lỗi
1/ xuất File customUI14.xml từ Excel ra ....xong sử dụng Code đổi File YourApp.xlsm Sang YourApp.zip

Xong chuyển File customUI14.xml ...vào File *.zip đúng vị trí của nó ....xong đổi đuôi

File
YourApp.zip sang YourApp.xlsm

Trong 1 nút nhấm ...nhưng đang lỗi ....Bạn tham khảo Loạt Bài của Anh Ndudoveandrose

Link Sau:
http://www.giaiphapexcel.com/forum/...hững-thuật-toán-nén-và-giải-nén-file&p=675613

Nếu 2 ngài này chịu ra tay cho mình học với thì vài dòng code là xong

Code hay và nhân tài GPE kiệt xuất Hông kiếm ...Tìm xa xôi chi cho mệt ...|||||--=0


Còn xóa Cái Folder thì vầy đi dài dòng chi
Mã:
     x = DefPath & "\YourAp"
    '''CODE CUA BẠN
    Kill x '''DÒNG NÀY SAU CÙNG
 
Lần chỉnh sửa cuối:
To giaiphap
Mình mới thử lại mấy lần Ok mà
Thử bằng cách trên File bạn Gõ [B2:B] xong tao file Xem ...Mới chỉnh thêm Một tẹo ...cơ bản vẫn vậy
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ExitSub ''Coded By Kieu Manh - GPE
Dim MyTab As String: MyTab = "Book" & GetRandName()                 ''//Tao Tab Ngau nhien ko trung
Dim MyID As String: MyID = "WL" & MyCount()                         ''//Ten ID cac Tab con Cong them 1
Application.EnableEvents = False
    If Not Intersect([B2:B300], Target) Is Nothing Then
        If Target.Offset(, 6).Value = Empty Then
            Target.Offset(, 6).Value = "OldMenu"                    ''//Neu Bo trong ta cho Mat cuoi Vao Do cho ko Loi Code
        End If
        If Target.Value = 1 Then                                    ''//Ap dung cho Tao 1 Tab Moi tren Menu Ribbon
            With Target
                If .Offset(, 2) <> Empty Then                       ''//Xu ly loi khi chua dat ten - Lable
                    If Target.Value = Target.Offset(-1) Then
                        Target.Value = 2: Target.Select             ''//Xu ly loi khi tao moi 2 Tab lien Tiep [MyTab]
                        MsgBox "Error ... Create Tab Ribbon", 64, "Thông Báo"
                        GoTo ExitSub:
                    End If
                    .Offset(, -1).Value = MyTab                     ''//Ten Tab moi tren Menu Ribbon
                    .Offset(, -1).Interior.ColorIndex = 6           ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, 1).Value = Empty
                    .Offset(, 2).Interior.ColorIndex = 6            ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, 3).Value = Empty
                    .Offset(, 4).Value = Empty
                    .Offset(, 5).Value = GetRandName                ''//Key Tip Cua MyTab bat buoc phai co ...Tao So ngau nhien
                    .Offset(1).Value = 2: Target.Offset(1).Select   ''//Goi Y Tao Tab Theo Code...Neu khong Theo trinh tu La Error...
                Else
                    Target.Value = Empty: Target.Offset(, 2).Select
                    MsgBox "Ban Bo Trong Ten - Label ...Error", 64, "Thông Báo"
                End If
            End With
        ElseIf Target.Value = 2 Then                                ''//Ap dung cho Tao Nhieu Tab trong 1 Tab [Group = Nhieu Tab]
            With Target
                If .Offset(, 2) <> Empty Then
                    If Target.Value = Target.Offset(-1) Then
                        Target.Value = 3: Target.Select             ''//Xu ly loi khi tao moi 2 Tab [Group]...[2 So 2] lien Tiep
                        MsgBox "Error ... Create Tab Ribbon", 64, "Thông Báo"
                        GoTo ExitSub: ''//Neu tren 2 La Loi Menu Ribbon Bat Buot Phai la 3
                    End If
                    .Offset(, -1).Interior.ColorIndex = 8           ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, -1).Value = MyID
                    .Offset(, 1).Value = Empty
                    .Offset(, 2).Interior.ColorIndex = 8            ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, 3).Value = Empty
                    .Offset(, 4).Value = Empty
                    .Offset(, 5).Value = Empty
                    .Offset(1).Value = 3: Target.Offset(1).Select   ''//Goi Y Tao Tab Theo Code ...Neu khong Theo trinh tu La Error...
                Else
                    Target.Value = Empty: Target.Offset(, 2).Select
                    MsgBox "Ban Bo Trong Ten - Label ...Error", 64, "Thông Báo"
                End If
            End With
        ElseIf Target.Value = 3 Then                                        ''//Ap dung cho Tao 1 Button rieng le
            With Target
                If Target.Value - Target.Offset(-1) > 1 Then
                    Target.Value = 2: Target.Select                         ''//Xu ly loi khi tao moi [MyTab 1] ma chua Tao Tab Con [2]
                    MsgBox "Error ... Create Tab Ribbon", 64, "Thông Báo"
                    GoTo ExitSub: ''//Tab 1 = Cha; 2 = con ...Co 1 moi Co 2 Neu nhay xuong 3 la Loi Menu Ribbon
                End If
                If .Offset(, 2) <> Empty Then                               ''//Xu ly loi khi bo trong Lable - Ten
                    If .Offset(, 3) <> Empty Then                           ''//Xu ly loi khi bo trong Ghi Chu - Ben duoi Ten
                        If .Offset(, 4) <> Empty Then                       ''//Xu ly loi khi bo trong SuperTip - Comment
                            .Offset(, -1).Interior.ColorIndex = xlNone      ''//Xoa To Mau
                            .Offset(, -1).Value = MyID
                            .Offset(, 1).Value = "large"                    ''//Size large = To; normal = Nho
                            .Offset(, 2).Interior.ColorIndex = xlNone
                            .Offset(, 5).Value = GetRandName                ''//Tao Key Tip ngau nhien
                        Else
                            Target.Value = Empty: Target.Offset(, 4).Select
                            MsgBox "Ban Bo Trong Screen Tip ...Error", 64, "Thông Báo"
                        End If
                    Else
                        Target.Value = Empty: Target.Offset(, 3).Select
                        MsgBox "Ban Bo Trong Screen Tip ...Error", 64, "Thông Báo"
                    End If
                Else
                    Target.Value = Empty: Target.Offset(, 2).Select
                    MsgBox "Ban Bo Trong Ten - Label ...Error", 64, "Thông Báo"
                End If
            End With
        Else
            Target.Value = Empty: Target.Select                             ''//Xoa du lieu Sai
            MsgBox "Chi Duoc Nhap 1, 2 Hoac 3", 64, "Thông Báo"             ''//Thong bao du lieu Sai
        End If
    End If
ExitSub:                                                                    ''//Xu ly Loi ...
Range("A2").Value = "WALL"                                                  ''//Ten Tab moi dau Tien ...
Application.EnableEvents = True
End Sub

''// Den Tang Dan luu trong Registry
Public Function MyCount() As Long
    Dim lCounts As Long 
    Application.Volatile
    lCounts = GetSetting("MyCount", "Settings", "Counts", 0) + 1
    SaveSetting "MyCount", "Settings", "Counts", lCounts
    MyCount = lCounts
    If lCounts > 1000 Then DeleteSetting "MyCount", "Settings", "Counts"
End Function


''// Tao So Ngau Nhien
Public Function GetRandName() As String
    ''//Tao so Ngau Nhien  ...This Code Copy Form - GPE
    GetRandName = Mid(CreateObject("Scripting.FileSystemObject").GetTempName, 4, 2)
End Function
 
Lần chỉnh sửa cuối:
Nếu làm theo cách của Giaiphap thì đơn gian Vậy đi

Mình tách ra mấy bước cho dễ hiểu cơ bản là vậy ... còn ta gộp lại 1 Sub là xong

Mã:
Public Sub DeleteFiles(ByVal FileDel As String)
    With CreateObject("Scripting.FileSystemObject")
        If .FileExists(FileDel) Then .DeleteFile FileDel
        If .FolderExists(FileDel) Then .DeleteFolder (FileDel)
    End With
End Sub
Public Sub CreateFolders(ByVal MyFolder As String)
    With CreateObject("Scripting.FileSystemObject")
        If Not .FolderExists(MyFolder) Then .CreateFolder (MyFolder)
    End With
End Sub
Public Function MoveFiles(ByVal FileNguon As String, ByVal FileDich As String) As Boolean
    With CreateObject("scripting.filesystemobject")
        If .FileExists(FileNguon) Then .Movefile (FileNguon), (FileDich)
    End With
End Function


''// Buoc 1
Sub MoveFilesToZip()
    Dim FileExcel As String, szip, EmptyZip
    FileExcel = ThisWorkbook.Path & "\YourApp.xlsm"
    szip = ThisWorkbook.Path & "\Moi.zip"
    EmptyZip = ThisWorkbook.Path & "\YourAppNew.zip"
    MoveFiles FileExcel, szip
    NewZip EmptyZip
End Sub


''// Buoc 2
Sub Unzip_CreateXML()
    Dim MyFolder, FileName
    Dim UI As String, XML As Worksheet, i As Long
    UI = ThisWorkbook.Path & "\NewApp\customUI\customUI14.xml"
    MyFolder = ThisWorkbook.Path & "\NewApp"
    CreateFolders MyFolder
    FileName = ThisWorkbook.Path & "\Moi.zip"
    Unzip MyFolder, FileName
    Set XML = ThisWorkbook.Worksheets("XML")
        With CreateObject("Scripting.FileSystemObject")
            With .CreateTextFile(UI, True, True)
                For i = 1 To 1000
                    .WriteLine XML.Cells(i, 1)
                Next
                .Close
            End With
        End With
    Set XML = Nothing
End Sub


''// Buoc 3
Sub CopyToZip()
    Dim filepath, FileName
    filepath = ThisWorkbook.Path & "\NewApp"
    FileName = ThisWorkbook.Path & "\YourAppNew.zip"
    Zip_All_Files_in_Folder_Browse filepath, FileName
End Sub


''// Buoc 4
Sub MoveFiles_ToExcel()
    Dim FileName As String, AppNew As String, MyFolder, szip
    MyFolder = ThisWorkbook.Path & "\NewApp"
    szip = ThisWorkbook.Path & "\Moi.zip"
    FileName = ThisWorkbook.Path & "\YourAppNew.zip"
    AppNew = ThisWorkbook.Path & "\YourApp.xlsm"
    MoveFiles FileName, AppNew
    DeleteFiles MyFolder
    DeleteFiles szip
End Sub
 
Lần chỉnh sửa cuối:
Vậy là Mình đã viết xong Ứng dụng Tạo Menu tiếng việt có dấu cho Office Phát triển từ code của thaipv và các thành viên GPE

Úp lên đây tặng cho Bạn nào cần sử dụng ...

Vậy là chỉ còn ta với ta .... thôi chốt hạ tại đây ... ta đi khai phá vùng đất mới...
Code tự động tạo Ribbon chỉ một nút nhấn là xong ...như sau + ..... chi tiết trong file đính kèm
Mạnh úp file này ở đây và bài #1
Mã:
Public Sub CreateRibbonMenu()
Application.ScreenUpdating = False
    Call DeleteEmpty ''//Coded By Kieu Manh
    Call XML_Coder
    On Error GoTo ExiSub:
    Dim Txt As Object, MyFolder, NewZip, YourAppNew, CheckErr As Range
    Dim UI As String, MyApp As String, XML As Worksheet, i As Long
    MyApp = ThisWorkbook.Path & "\YourApp.xlsm"
    NewZip = ThisWorkbook.Path & "\NewFile.zip"
    YourAppNew = ThisWorkbook.Path & "\YourAppNew.zip"
    UI = ThisWorkbook.Path & "\NewApp\customUI\customUI14.xml"
    MyFolder = ThisWorkbook.Path & "\NewApp"
    Set XML = ThisWorkbook.Worksheets("XML")
    Set CheckErr = Sheets("MAIN").Range("B65536").End(3)
    If CheckErr = 2 Then                                 ''//Kiem tra loi truoc khi khoi Tao Menu Ribbon
        UniMsgbox CHUYENMA("Dofng Cuoosi B") _
            & CheckErr & " ... Err ...Create Ribbon"
        Call DeleteEmpty                                 ''//Xoa dong thua ben duoi
        GoTo ExiSub:                                     ''//Thoat Khi co loi khoi tao
    End If
    With CreateObject("Scripting.FileSystemObject")
        If .fileexists(MyApp) Then                       ''//Neu File khong ton tai thi Thoat
            .CreateFolder MyFolder                       ''//Tao Folder moi
            .Movefile MyApp, YourAppNew                  ''//Renme File Excel To *.zip
            
            UnZip YourAppNew, MyFolder                   ''//Giai nen File *.zip
            CreateXML XML, UI                            ''//Tao chuoi XML
            ZipFilesInSub MyFolder, NewZip               ''//Nen nhung File Giai nen luc truoc Vao
            
            Application.Wait (Now + 5 / 24 / 60 / 60)    ''//Cho xu ly xong Tinh tiep
            If .fileexists(NewZip) Then
                .Movefile NewZip, MyApp                  ''//Doi lai Sang File Excel YourApp.xlsm
                .DeleteFile YourAppNew                   ''//Xoa File YourAppNew.zip
                .DeleteFolder MyFolder                   ''//Xoa Folder NewApp
            End If
            UniMsgbox CHUYENMA("DDax Thuwjc Hieejn Khowri Tajo Menu Xong")
            OpenFile (MyApp)                             ''//Open File vua khoi tao Menu Ribbon
            ActiveWorkbook.Save                          ''//Luu Lai thiet lap sau khi khoi tao
        Else                                             ''//Neu File YourApp.xlsm ko co thi Thoat
            UniMsgbox (MyApp) & vbLf _
                & "File Not Found ... Check File"
        End If
    End With
    Set XML = Nothing: Set Txt = Nothing
ExiSub:
Application.ScreenUpdating = True
End Sub


''// Ghi Chuoi XML vao File customUI14.xml ...
Public Sub CreateXML(SheetName As Worksheet, UI As String)
    Dim i As Long
    With CreateObject("Scripting.FileSystemObject")
        With .CreateTextFile(UI, True, True)
            For i = 1 To 1000
                .WriteLine SheetName.Cells(i, 1)
            Next
            .Close
        End With
    End With
End Sub

code kiểm tra lỗi và gợi ý khởi tạo Menu như sau
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ExitSub ''Coded By Kieu Manh - GPE
Dim MyTab As String: MyTab = "Book" & GetRandName()                         ''//Tao Tab Ngau nhien ko trung
Dim MyID As String: MyID = "WL" & MyCount()                                 ''//Ten ID cac Tab con Cong them 1
Application.EnableEvents = False
    If Not Intersect([B2:B300], Target) Is Nothing Then
        If Target.Offset(, 6).Value = Empty Then
            Target.Offset(, 6).Value = "OldMenu"                            ''//Neu Bo trong ta cho Mat cuoi Vao Do cho ko Loi Code
        End If
        If Target.Value = 1 Then                                            ''//Ap dung cho Tao 1 Tab Moi tren Menu Ribbon
            With Target
                If .Offset(, 2) <> Empty Then                               ''//Xu ly loi khi chua dat ten - Lable
                    If Target.Value = Target.Offset(-1) Then
                        Target.Value = 2: Target.Select                     ''//Xu ly loi khi tao moi 2 Tab lien Tiep [MyTab]
                        UniMsgbox "Error ... Create Tab Ribbon"
                        GoTo ExitSub:
                    End If
                    .Offset(, -1).Value = MyTab                             ''//Ten Tab moi tren Menu Ribbon
                    .Offset(, -1).Interior.ColorIndex = 6                   ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, 1).Value = Empty
                    .Offset(, 2).Interior.ColorIndex = 6                    ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, 3).Value = Empty
                    .Offset(, 4).Value = Empty
                    .Offset(, 5).Value = GetRandName                        ''//Key Tip Cua MyTab bat buoc phai co ...Tao So ngau nhien
                    .Offset(, 6).Value = Empty
                    .Offset(, 6).Interior.ColorIndex = 6                    ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(1).Value = 2: Target.Offset(1).Select           ''//Goi Y Tao Tab Theo Code...Neu khong Theo trinh tu La Error...
                Else
                    Target.Value = Empty: Target.Offset(, 2).Select
                    UniMsgbox CHUYENMA("Bajn Bor Troosng Teen - ") _
                        & "Label ...Error Create Ribbon"                    ''//Ban bo trong ten
                End If
            End With
        ElseIf Target.Value = 2 Then                                        ''//Ap dung cho Tao Nhieu Tab trong 1 Tab [Group = Nhieu Tab]
            With Target
                If .Offset(, 2) <> Empty Then
                    If Target.Value = Target.Offset(-1) Then
                        Target.Value = 3: Target.Select                     ''//Xu ly loi khi tao moi 2 Tab [Group]...[2 So 2] lien Tiep
                        UniMsgbox "Error ... Create Tab Ribbon"
                        GoTo ExitSub:                                       ''//Neu tren 2 La Loi Menu Ribbon Bat Buot Phai la 3
                    End If
                    .Offset(, -1).Interior.ColorIndex = 8                   ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, -1).Value = MyID
                    .Offset(, 1).Value = Empty
                    .Offset(, 2).Interior.ColorIndex = 8                    ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(, 3).Value = Empty
                    .Offset(, 4).Value = Empty
                    .Offset(, 5).Value = Empty
                    .Offset(, 6).Interior.ColorIndex = 8                    ''//To Mau cho de nhin va Kiem soat loi
                    .Offset(1).Value = 3: Target.Offset(1).Select           ''//Goi Y Tao Tab Theo Code ...Neu khong Theo trinh tu La Error...
                Else
                    Target.Value = Empty: Target.Offset(, 2).Select
                    UniMsgbox CHUYENMA("Bajn Bor Troosng Teen - ") _
                        & "Label ...Error Create Ribbon"                    ''//Ban bo trong ten
                End If
            End With
        ElseIf Target.Value = 3 Then                                        ''//Ap dung cho Tao 1 Button rieng le
            With Target
                If Target.Value - Target.Offset(-1) > 1 Then
                    Target.Value = 2: Target.Select                         ''//Xu ly loi khi tao moi [MyTab 1] ma chua Tao Tab Con [2]
                    UniMsgbox "Error ... Create Tab Ribbon"
                    GoTo ExitSub:                                           ''//Tab 1 = Cha; 2 = con ...Co 1 moi Co 2 Neu nhay xuong 3 la Loi Menu Ribbon
                End If
                If .Offset(, 2) <> Empty Then                               ''//Xu ly loi khi bo trong Lable - Ten
                    If .Offset(, 3) <> Empty Then                           ''//Xu ly loi khi bo trong Ghi Chu - Ben duoi Ten
                        If .Offset(, 4) <> Empty Then                       ''//Xu ly loi khi bo trong SuperTip - Comment
                            .Offset(, -1).Interior.ColorIndex = xlNone      ''//Xoa To Mau
                            .Offset(, -1).Value = MyID
                            .Offset(, 1).Value = "large"                    ''//Size large = To; normal = Nho
                            .Offset(, 2).Interior.ColorIndex = xlNone
                            .Offset(, 5).Value = GetRandName                ''//Tao Key Tip ngau nhien
                        Else
                            Target.Value = Empty: Target.Offset(, 4).Select
                            UniMsgbox CHUYENMA("Bajn Bor Troosng Teen - ") _
                                & "Screen Tip ...Error Create Ribbon"       ''//Ban bo trong Screen Tip
                        End If
                    Else
                        Target.Value = Empty: Target.Offset(, 3).Select
                        UniMsgbox CHUYENMA("Bajn Bor Troosng Teen - ") _
                                & "Screen Tip ...Error Create Ribbon"       ''//Ban bo trong Screen Tip
                    End If
                Else
                    Target.Value = Empty: Target.Offset(, 2).Select
                    UniMsgbox CHUYENMA("Bajn Bor Troosng Teen - ") _
                        & "Label ...Error Create Ribbon"                    ''//Ban bo trong ten
                End If
            End With
        Else
            Target.Value = Empty: Target.Select                             ''//Xoa du lieu Sai
            UniMsgbox CHUYENMA("Bajn Chir DDuwowjc Nhaajp 1, 2 Hoawjc 3")   ''//Thong bao du lieu Sai
        End If
    End If
ExitSub:                                                                    ''//Xu ly Loi ...
Range("A2").Value = "WALL"                                                  ''//Ten Tab moi dau Tien ...
Application.EnableEvents = True
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Hay quá bác KieuManh ơi, nghiên cứu tiếp đi bác. Tiện ích còn nghèo về nút lệnh quá (Chỉ 1 loại Button thôi), thêm các loại khác đi bác. VD DropDown, CheckBox, EditBox, Label, Menu, Split Button, Toggle Button,...
 
Hay quá bác KieuManh ơi, nghiên cứu tiếp đi bác. Tiện ích còn nghèo về nút lệnh quá (Chỉ 1 loại Button thôi), thêm các loại khác đi bác. VD DropDown, CheckBox, EditBox, Label, Menu, Split Button, Toggle Button,...
Mình sử dụng Fso ghi vào File Help.txt tiếng Việt Unicode có dấu không Biết Bạn tải về máy có lỗi Font ko vậy

Lưu ý: Cho Bạn Nào tạo Menu mà Cells [B2] gõ là 2 hay 3 là Tèo ....Bắt Buộc phải là 1

Nếu chắc cú thêm dòng sau dưới cùng Sự kiện Change

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
‘’’’’’’’’’’’’’’’’’’’’’’’code két 
[COLOR=#ff0000][SIZE=3][B]Range("B2").Value = 1’’Nó đây nha[/B][/SIZE][/COLOR]
Application.EnableEvents = True
End Sub


 
Trong khi đợi bác KieuManh ra tay thì cho tiểu đệ vọc chút vậy. Thêm vào checkBox, labelControl, editBox, button, separator, đây chỉ là ý tưởng thôi, muốn sử dụng tốt phải sửa chửa nhiều hơn.
 

File đính kèm

Trong khi đợi bác KieuManh ra tay thì cho tiểu đệ vọc chút vậy. Thêm vào checkBox, labelControl, editBox, button, separator, đây chỉ là ý tưởng thôi, muốn sử dụng tốt phải sửa chửa nhiều hơn.
Để bắt đầu làm việc ta thống nhất lại 1 vài cái xem tình hình sao ...xong tính tiếp

1/ để chèn code vào File khác bắt buột ta phải Trust access to the VBA project model ....nếu ko thì Tèo
Mình xài thì ko sao còn ai đó chưa biết thì tịt ....vì vậy Mình sẻ xài code sau xử lý nó trước khi chèn code vào file YourApp.xlsm

Mã:
Public Sub ChangeVBOM(ByVal Val As Long)
    Dim AppVer, Regkey As String
    AppVer = Application.Version
    Regkey = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & AppVer & "\Excel\Security\AccessVBOM"
    CreateObject("WScript.Shell").RegWrite Regkey, Val, "REG_DWORD"
End Sub


Public Sub CheckVBOM()
    ChangeVBOM (1)
End Sub


Public Sub UnCheckVBOM()
    ChangeVBOM (2)
End Sub

2/ Bạn giải thích lại trên Sheet MAIN một tí cho rõ như bài #25 thaipv giải thích đó ....

tại vì mình mới vọc Menu này mới có hơn 1 tuần gì đó nên chưa thật sự hiểu lắm...

3/ Tại sao cột k,m và L lại để trống .... ta không cho hết vào đó xong ta nghiên cứu luôn một cái nó xử hết luôn
 
Lần chỉnh sửa cuối:
Để bắt đầu làm việc ta thống nhất lại 1 vài cái xem tình hình sao ...xong tính tiếp

1/ để chèn code vào File khác bắt buột ta phải Trust access to the VBA project model ....nếu ko thì Tèo
Vấn đề mình xài thì ko sao còn ai đó chưa biết thì tịt ....vì vậy Mình sẻ xài code sau xử lý nó trước khi chèn code vào file YourApp.xlsm

2/ Bạn giải thích lại trên Sheet MAIN một tí cho rõ như bài #25 thaipv giải thích đó ....

tại vì mình mới vọc Menu này mới có hơn 1 tuần gì đó nên chưa thật sự hiểu lắm...

3/ Tại sao cột k,m và L lại để trống .... ta không cho hết vào đó xong ta nghiên cứu luôn một cái nó xử hết luôn
1. Thống nhất với bác KieuManh.
2. Thật ra ở Sheet Main để hoàn thiện thì cần cải thiện lại chút (có thể sắp xếp thứ tự các cột lại). Theo tôi nên để cột ToolBox (Hiện tại là cột I) ở đầu, tiếp theo sau khi chọn ToolBox thì mới tính đến chuyện Level (hiện tại là cột B) hiện tại chỉ chọn 1, 2 hoặc 3 (theo tôi còn hơn nửa VD 4, 5, 6... Do Menu đa cấp hoặc dropdown) còn các cột còn lại sẽ nhiều hơn do mỗi đối tượng (Checkbox, Editbox, label, button,...) sẽ có những tham số riêng. Vì vậy mình sẽ viết sự kiện thay đổi giá trị của sheet Main sau khi chọn ToolBox thì những cột nào sẽ cho nhập (Dựa vào những giá trị của ToolBox, VD nếu là label thì cột imageMso không cần gõ, có thể đánh dấu bằng màu sắc).
3. Cột K, M, L mình chưa sử dụng, chỉ tạo cột N là các đối tượng để chọn cho cột I (Dùng Data Validation cho người dùng chọn cho dễ).
Trên là ý tưởng của riêng mình nhưng do sửa các cột thì sẽ sửa luôn code nên lười quá để vậy dùng luôn cho nhanh, nên về mặt ngăn nắp thì chưa đảm bảo.
 
1. Thống nhất với bác KieuManh.
2. Thật ra ở Sheet Main để hoàn thiện thì cần cải thiện lại chút (có thể sắp xếp thứ tự các cột lại). Theo tôi nên để cột ToolBox (Hiện tại là cột I) ở đầu, tiếp theo sau khi chọn ToolBox thì mới tính đến chuyện Level (hiện tại là cột B) hiện tại chỉ chọn 1, 2 hoặc 3 (theo tôi còn hơn nửa VD 4, 5, 6... Do Menu đa cấp hoặc dropdown) còn các cột còn lại sẽ nhiều hơn do mỗi đối tượng (Checkbox, Editbox, label, button,...) sẽ có những tham số riêng. Vì vậy mình sẽ viết sự kiện thay đổi giá trị của sheet Main sau khi chọn ToolBox thì những cột nào sẽ cho nhập (Dựa vào những giá trị của ToolBox, VD nếu là label thì cột imageMso không cần gõ, có thể đánh dấu bằng màu sắc).
3. Cột K, M, L mình chưa sử dụng, chỉ tạo cột N là các đối tượng để chọn cho cột I (Dùng Data Validation cho người dùng chọn cho dễ).
Trên là ý tưởng của riêng mình nhưng do sửa các cột thì sẽ sửa luôn code nên lười quá để vậy dùng luôn cho nhanh, nên về mặt ngăn nắp thì chưa đảm bảo.
Vậy thì từ từ Bạn nghiên cứu sắp xếp lại các cột cho ngăn nắp theo trình tự xong úp file mẫu lên ....

Mạnh nghiên cứu sẻ viết lại code sự kiên change cho phù hợp với Code ...xong ta tính tiếp ....nghiên cứu mà

Như câu nói của Hồ Chủ Tịch : Trường kỳ kháng chiến ắc thành công ..
 
Để bắt đầu làm việc ta thống nhất lại 1 vài cái xem tình hình sao ...xong tính tiếp

1/ để chèn code vào File khác bắt buột ta phải Trust access to the VBA project model ....nếu ko thì Tèo
Mình xài thì ko sao còn ai đó chưa biết thì tịt ....vì vậy Mình sẻ xài code sau xử lý nó trước khi chèn code vào file YourApp.xlsm

Mã:
Public Sub ChangeVBOM(ByVal Val As Long)
    Dim AppVer, Regkey As String
    AppVer = Application.Version
    Regkey = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & AppVer & "\Excel\Security\AccessVBOM"
    CreateObject("WScript.Shell").RegWrite Regkey, Val, "REG_DWORD"
End Sub


Public Sub CheckVBOM()
    ChangeVBOM (1)
End Sub


Public Sub UnCheckVBOM()
    ChangeVBOM (2)
End Sub

Code này nguy hiểm quá các bác ơi.
Chủ đề này ngày càng hấp dẫn nhỉ !
 
Mã:
Public Sub ChangeVBOM(ByVal Val As Long)
    Dim AppVer, Regkey As String
    AppVer = Application.Version
    Regkey = "HKEY_CURRENT_USER\Software\Microsoft\Office" & AppVer & "\Excel\Security\AccessVBOM"
    CreateObject("WScript.Shell").RegWrite Regkey, Val, "REG_DWORD"
End Sub


Public Sub CheckVBOM()
    ChangeVBOM (1)
End Sub


Public Sub UnCheckVBOM()
    ChangeVBOM (2)
End Sub

Code này nhiều khi nó không hoạt động. Nhìn vào mục 'Trust Access VBA' thì thấy nó đã check hoạt không check nhưng khi thao tác thì code nó vẫn không hiểu ( phải tắt khởi động lại excel ) thì nó mới hiểu. Các bạn có thể coi chủ đề này
Tuy nhiên có máy bị máy không. Cũng không biết nguyên nhân là tại sao +-+-+-++-+-+-++-+-+-+
 
Code này nguy hiểm quá các bác ơi.
Chủ đề này ngày càng hấp dẫn nhỉ !
Bài này nếu ta sử dụng thư viện của win thì có được ko Bạn ....Kiếm tài liệu coi nó Hông có...+-+-+-+%#^#$

1/ C:\Windows\System32\msxml3.dll

2/ C:\Windows\System32\msxml6.dll
 
Lần chỉnh sửa cuối:
Mã:
Public Sub ChangeVBOM(ByVal Val As Long)
    Dim AppVer, Regkey As String
    AppVer = Application.Version
    Regkey = "HKEY_CURRENT_USER\Software\Microsoft\Office" & AppVer & "\Excel\Security\AccessVBOM"
    CreateObject("WScript.Shell").RegWrite Regkey, Val, "REG_DWORD"
End Sub


Public Sub CheckVBOM()
    ChangeVBOM (1)
End Sub


Public Sub UnCheckVBOM()
    ChangeVBOM (2)
End Sub

Code này nhiều khi nó không hoạt động. Nhìn vào mục 'Trust Access VBA' thì thấy nó đã check hoạt không check nhưng khi thao tác thì code nó vẫn không hiểu ( phải tắt khởi động lại excel ) thì nó mới hiểu. Các bạn có thể coi chủ đề này

Tuy nhiên có máy bị máy không. Cũng không biết nguyên nhân là tại sao +-+-+-++-+-+-++-+-+-+
trang đó mình biết lâu rồi ...có cách xử hết đó ...có điều chưa cần thiết đó thôi ...
 
Lần chỉnh sửa cuối:
Bài này nếu ta sử dụng thư viện của win thì có được ko Bạn ....Kiếm tài liệu coi nó Hông có...+-+-+-+%#^#$

1/ C:\Windows\System32\msxml3.dll

2/ C:\Windows\System32\msxml6.dll

Mình có hiểu gì về thư việc đó đâu, tài liệu về custom Ribbon, các bạn có thể vào MSDN đề kiếm, ví dụ như :
https://msdn.microsoft.com/en-us/library/bb386097.aspx
https://www.microsoft.com/en-us/download/details.aspx?id=36798
https://www.microsoft.com/en-us/download/details.aspx?id=6627

Diễn đàn mình chắc có bác Phan Tự Hướng là chuyên gia món này đó.
 
Mình có hiểu gì về thư việc đó đâu, tài liệu về custom Ribbon, các bạn có thể vào MSDN đề kiếm, ví dụ như :
https://msdn.microsoft.com/en-us/library/bb386097.aspx
https://www.microsoft.com/en-us/download/details.aspx?id=36798
https://www.microsoft.com/en-us/download/details.aspx?id=6627

Diễn đàn mình chắc có bác Phan Tự Hướng là chuyên gia món này đó.

Tại mình có coi 1 File của trang nước ngoài nó tao Ribbon sử dụng thư viện đó tao cho Một File Excel bất kỳ không cần Files YourApp.xlsm mà mình Set sẳn UI trong đó nên mới hỏi vây...xem nó có liên quan gì không đó mà....

Còn mấy link đó Mình coi tối qua rồi
 
Lần chỉnh sửa cuối:
Tại mình có coi 1 File của trang nước ngoài nó tao Ribbon sử dụng thư viện đó tao cho Một File Excel bất kỳ không cần Files YourApp.xlsm mà mình Set sẳn UI trong đó nên mới hỏi vây...xem nó có liên quan gì không đó mà....

Còn mấy link đó Mình coi tối qua rồi

Các bạn cũng có thể tham khảo phần mềm này (có hạn chế tính năng):
http://www.ribboncreator2016.de/

Tuy nhiên, chỉ bằng thủ thuật nhỏ, chúng ta hoàn toàn có thể lách luật để sử dụng đầy đủ tính năng (tất nhiên là không mất phí). Vì diễn đàn không khuyến khích, mình không trình bày ở đây, bạn nào quan tâm có thể gửi tin nhắn riêng.
 
Các bạn cũng có thể tham khảo phần mềm này (có hạn chế tính năng):
http://www.ribboncreator2016.de/

Tuy nhiên, chỉ bằng thủ thuật nhỏ, chúng ta hoàn toàn có thể lách luật để sử dụng đầy đủ tính năng (tất nhiên là không mất phí). Vì diễn đàn không khuyến khích, mình không trình bày ở đây, bạn nào quan tâm có thể gửi tin nhắn riêng.
Tối qua mới cài mấy cái coi rồi ....Chủ yếu cài để dòm code của nó xem nó làm chi đó thôi mà ...
vài hôm coi hết xóa liền --=0

thêm cái này nữa nè nó nhiều cái hay đó
http://www.spreadsheet1.com/dynamic-icon-browser.html
 
Tối qua mới cài mấy cái coi rồi ....Chủ yếu cài để dòm code của nó xem nó làm chi đó thôi mà ...
vài hôm coi hết xóa liền --=0

thêm cái này nữa nè nó nhiều cái hay đó
http://www.spreadsheet1.com/dynamic-icon-browser.html

Nói chung cũng loằng ngoằng lắm, ví dụ :
1. Để có thể sử dụng Ribbon, bạn phải khai báo (đăng ký) vào file .rels trong thư mục _rels (Các bạn đổi đuôi .xlsm sang .zip để xem nhé) dòng sau :
<Relationship Id="R7f19f805bfb641b9" Type="http://schemas.microsoft.com/office/2007/relationships/ui/extensibility" Target=" ...

(Lưu ý : Có thể khác đối với Office 2007)

2. Khi sử dụng hình tùy chọn, bạn copy hình đó vào thư mục nào đó rồi khai báo (đăng ký) hình đó (Xem thư mục customUI)

>> Cách nhanh là cứ sử dụng file YourApp.xlsm
 
Nói chung cũng loằng ngoằng lắm, ví dụ :
1. Để có thể sử dụng Ribbon, bạn phải khai báo (đăng ký) vào file .rels trong thư mục _rels (Các bạn đổi đuôi .xlsm sang .zip để xem nhé) dòng sau :
<Relationship Id="R7f19f805bfb641b9" Type="http://schemas.microsoft.com/office/2007/relationships/ui/extensibility" Target=" ...

(Lưu ý : Có thể khác đối với Office 2007)

2. Khi sử dụng hình tùy chọn, bạn copy hình đó vào thư mục nào đó rồi khai báo (đăng ký) hình đó (Xem thư mục customUI)

>> Cách nhanh là cứ sử dụng file YourApp.xlsm
Mình coi hết Rồi nói chung loằng ngoằng mỳ tôn đó mà....

Còn cách này cũng Vui nè ...Nhưng vô tích sự
Mã:
Private Sub Workbook_Activate()


Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String


hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"


ribbonXML = "<mso:customUI      xmlns:mso='http://schemas.microsoft.com/office/2009/07/customui'>" & vbNewLine
ribbonXML = ribbonXML + "  <mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:qat/>" & vbNewLine
ribbonXML = ribbonXML + "    <mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "      <mso:tab id='reportTab' label='My Actions' insertBeforeQ='mso:TabFormat'>" & vbNewLine
ribbonXML = ribbonXML + "        <mso:group id='reportGroup' label='Reports' autoScale='true'>" & vbNewLine
ribbonXML = ribbonXML + "          <mso:button id='runReport' label='Trim' " & vbNewLine
ribbonXML = ribbonXML + "imageMso='AppointmentColor3'      onAction='TrimSelection'/>" & vbNewLine
ribbonXML = ribbonXML + "        </mso:group>" & vbNewLine
ribbonXML = ribbonXML + "      </mso:tab>" & vbNewLine
ribbonXML = ribbonXML + "    </mso:tabs>" & vbNewLine
ribbonXML = ribbonXML + "  </mso:ribbon>" & vbNewLine
ribbonXML = ribbonXML + "</mso:customUI>"


ribbonXML = Replace(ribbonXML, """", "")


Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile


End Sub


Private Sub Workbook_Deactivate()


Dim hFile As Long
Dim path As String, fileName As String, ribbonXML As String, user As String


hFile = FreeFile
user = Environ("Username")
path = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\"
fileName = "Excel.officeUI"


ribbonXML = "<mso:customUI           xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">" & _
"<mso:ribbon></mso:ribbon></mso:customUI>"


Open path & fileName For Output Access Write As hFile
Print #hFile, ribbonXML
Close hFile


End Sub
 
Lần chỉnh sửa cuối:
Các bạn cũng có thể tham khảo phần mềm này (có hạn chế tính năng):
http://www.ribboncreator2016.de/

Tuy nhiên, chỉ bằng thủ thuật nhỏ, chúng ta hoàn toàn có thể lách luật để sử dụng đầy đủ tính năng (tất nhiên là không mất phí). Vì diễn đàn không khuyến khích, mình không trình bày ở đây, bạn nào quan tâm có thể gửi tin nhắn riêng.
Cái này hay quá, thấy nó rồi thì nghiên cứu chi cho mệt, có sử dụng cho khỏe (Mình là dạng cực lười).
 
Cái này hay quá, thấy nó rồi thì nghiên cứu chi cho mệt, có sử dụng cho khỏe (Mình là dạng cực lười).
Thực ra bài này có nhiều cách làm khác nhau ...

Mạnh mới khai thác cách làm khác còn xúc tích ngắn gọn hơn nữa ...

Bỏ luôn mấy hàm Unzip, CreateNewZipZipFilesInSub ... vẫn làm được ...

Tuy nhiên cấu trúc XML Mạnh mới vọc tới 10 ngày này nên chưa thật sự hiểu về nó lắm ....

Chứ hiểu rồi thì cũng không phải là vấn đề khó lắm

Chờ Bạn có cao kiến gì chăng ...hay ta chốt tại đây vậy ....+-+-+-+--=0|||||
 
Thực ra bài này có nhiều cách làm khác nhau ...

Mạnh mới khai thác cách làm khác còn xúc tích ngắn gọn hơn nữa ...

Bỏ luôn mấy hàm Unzip, CreateNewZipZipFilesInSub ... vẫn làm được ...

Tuy nhiên cấu trúc XML Mạnh mới vọc tới 10 ngày này nên chưa thật sự hiểu về nó lắm ....

Chứ hiểu rồi thì cũng không phải là vấn đề khó lắm

Chờ Bạn có cao kiến gì chăng ...hay ta chốt tại đây vậy ....+-+-+-+--=0|||||
Bác KieuManh có hứng thú thì cứ tiếp tục, còn cao kiến của mình thì chỉ có vậy, chứ muốn nghiên cứu thêm nửa thì lười quá. Tôi thấy phần mềm IDBE RibbonCreator 2016 này rồi ý tưởng của mình chóng mặt quá (Do có quá nhiều tính năng cho một đối tượng), lúc đầu thì chỉ nghĩ các lệnh thường dùng thôi, nhưng trên thực tế cái mình nghĩ chưa chắc người khác nghĩ, cái mình dùng thường chưa chắc người khác dùng thường. Chính vì vậy tôi thấy khả năng mình có giới hạn không đủ trình độ để thực hiện tiếp ý tưởng này, nhưng KieuManh có khả năng thì hoan hô ủng hộ.
 
Trong khi đợi bác KieuManh ra tay thì cho tiểu đệ vọc chút vậy. Thêm vào checkBox, labelControl, editBox, button, separator, đây chỉ là ý tưởng thôi, muốn sử dụng tốt phải sửa chửa nhiều hơn.
To thaipv

Mình coi lại bài này của giaiphap xem cố giắng viết code hoàn thiện cột K, M, L ...và sắp xếp lại cho gọn, tiện sử dụng ....nhưng cấu trúc chuỗi customUI.xml để viết thành code cho nó chạy với mình khó quá ....viết nó cứ lỗi với sai ko thôi ...Nếu làm thủ công thì tạm OK

Vì vậy nếu được nhờ Bạn viết cho code cột k,m,l hay sắp xếp lại cho tiện dùng mình với

Nếu được Mình sẻ

1/ Viết lại code sự kiên change cho phù hợp với code

2/ Viết thêm code cho nó tạo một file Excel bất kỳ là office 2007 hay office 2010 mà không phải sử dụng file mẫu
YourApp.xlsm ...sử dụng Application.GetOpenFilename("All Files, *.xlsm; *.xlsb" để chọn file

3/ Mạnh thấy code Bạn thaipv viết cho Menu tiếng việt tiện sử dụng và hay hơn rất nhiều các chương trình khác có trên mạng cho nên Mình đang cố giắng nghiên cứu hoàn thiện nó Mong rất Bạn hổ trợ thêm

Xin cảm ơn

 
To thaipv

Mình coi lại bài này của giaiphap xem cố giắng viết code hoàn thiện cột K, M, L ...và sắp xếp lại cho gọn, tiện sử dụng ....nhưng cấu trúc chuỗi customUI.xml để viết thành code cho nó chạy với mình khó quá ....viết nó cứ lỗi với sai ko thôi ...Nếu làm thủ công thì tạm OK

Vì vậy nếu được nhờ Bạn viết cho code cột k,m,l hay sắp xếp lại cho tiện dùng mình với

Nếu được Mình sẻ

1/ Viết lại code sự kiên change cho phù hợp với code

2/ Viết thêm code cho nó tạo một file Excel bất kỳ là office 2007 hay office 2010 mà không phải sử dụng file mẫu
YourApp.xlsm ...sử dụng Application.GetOpenFilename("All Files, *.xlsm; *.xlsb" để chọn file

3/ Mạnh thấy code Bạn thaipv viết cho Menu tiếng việt tiện sử dụng và hay hơn rất nhiều các chương trình khác có trên mạng cho nên Mình đang cố giắng nghiên cứu hoàn thiện nó Mong rất Bạn hổ trợ thêm

Xin cảm ơn


Chủ đề này hay mà, các bạn tiếp tục đi chứ, thêm ngôn ngữ tiếng Anh nữa, đánh bật thằng IDBE Ribbon Creator luôn đi.

(Hiện mình bận quá nên không tham gia được, chỉ có thể vỗ tay ủng hộ các bạn tiếp tục phát triển thôi)
 
Chủ đề này hay mà, các bạn tiếp tục đi chứ, thêm ngôn ngữ tiếng Anh nữa, đánh bật thằng IDBE Ribbon Creator luôn đi.

(Hiện mình bận quá nên không tham gia được, chỉ có thể vỗ tay ủng hộ các bạn tiếp tục phát triển thôi)
Còn đang kẹt sự đa dạng đó checkBox, labelControl, editBox, button, separator ....+-+-+-+

Còn lại Mạnh sẻ xử hết ....Nó sẻ thành 1 Add-ins Hoàn chỉnh Tạo Menu Tiếng việt 1 File Excel bất kỳ (Office 2007,2010 và 2016)....Xong
 
Còn đang kẹt sự đa dạng đó checkBox, labelControl, editBox, button, separator ....+-+-+-+

Còn lại Mạnh sẻ xử hết ....Nó sẻ thành 1 Add-ins Hoàn chỉnh Tạo Menu Tiếng việt 1 File Excel bất kỳ (Office 2007,2010 và 2016)....Xong
XML không có gì khó đâu, do đại ca nhìn nó rối mắt nên thấy nó rối như mì tôm thôi, anh thử nghiên cứu làm menu giống dạng này xem sao
Picture1.jpg
nó phân chia thành nhiều cấp bậc, trong nhiều group
 
Lần chỉnh sửa cuối:
Còn đang kẹt sự đa dạng đó checkBox, labelControl, editBox, button, separator ....+-+-+-+

Còn lại Mạnh sẻ xử hết ....Nó sẻ thành 1 Add-ins Hoàn chỉnh Tạo Menu Tiếng việt 1 File Excel bất kỳ (Office 2007,2010 và 2016)....Xong

Bác đừng đóng gói thành file .dll hay project unview nhé, thanks
 
XML không có gì khó đâu, do đại ca nhìn nó rối mắt nên thấy nó rối như mì tôm thôi, anh thử nghiên cứu làm menu giống dạng này xem sao
View attachment 165046
nó phân chia thành nhiều cấp bậc, trong nhiều group
đúng vậy ....nhưng viết thành code bấm nút 1 cái chọn 1 File Excel bất kỳ ...chờ 5 giây là nó tạo ra như vậy chứ ....còn làm thủ công thì Mạnh làm Ok rồi đó ...
 

Với Mạnh tiếng Ngoài Hành Tinh vẫn chơi Tốt.....Bạn thử hình dung code sau ý tưởng giống ai nha
Mã:
Public Const q = 271, w = 203, ii = 72, oo = "E", pp = 0, aa = "6", ss = 7897, hh = 7921, jj = 10, kk = 227, ooo = "H", ppp = 7, uuu = "1", yyy = "7", rrr = True, ii_I_l_I_l_I_l = 7909, l_I_l_I_l_I_l_l_l_I_l_l_l = 7917, l_I_I_I_l_l_I_I_l_I_I_l_I = 7875, l_l_I_I_I_l_l_l_I_l_l_I_I = 253, l_l_l_I_l_l_l_I_l_l_I_I_l_l = 259, l_I_I_ii_I_l_l_l = 242, l_I_I_I_I_I_I_l_I_I_I = "V", xxx = "", ttt = "A", l_l_I_l_I_I_l_I = 7853, l_I_I_I_I_I_I_I_l_I_I_l_I_I = 7845, l_l_I_l_l_I_l_l_l_I_I_I_l = 236, vvv = "K", qqq = "x", ee = """", _
Kim_l = "/", k = 1, xx = "R", sss = 6, ggg = False, hhh = "?", Kim_I = "k", jjj = 7901, kkk = 226, lll = 7889, zzz = 243, l_I_I_l_l_l = "'", l_l_I_I_l_l_I_l_l_I_I_I_l_l = 7879, v = "v", l_I_I_I_l_l_l_I_I_I_l_I_l_l = "f", l_l_l_I_l_l_I_l_l_I_I_l_I = 7863, l_I_l_I_l_I = 273, l_I_I_l_I_l_l_I_l_l_l_I_l = 224, c = 432, l_l_I_l_I_l_l_l_I_I_l = 7841, l_I_l_I_I_l_I_I_I_I_I_I_l_I = "B", ccc = 225, yy = " ", iii = 244, eee = "h", mm = "2", nn = "3", z = "w", bb = "W", rr = "\", vv = ":", _
dd = "j", sh3 = "b", ff = "O", gg = "m", ww = "y", m = "F", n = "g", b = "n", l = "t", d = "p", sh2 = "i", s = "r", a = "c", p = "S", ll = "e", www = "u", zz = "d", qq = "o", cc = "M", x = "s", uu = "a", j = "C", xy = ".", g = "D", f = "T", sh1 = "L", h = "_", tt = "l", l_l_l_I_I_l_l_I_I_I_I_I = "I"


Public Sub RunAsMaHoa()
    Dim sPath As String
    sPath = ThisWorkbook.Path & "\REGDLL.BAT"
    CreateObject(p & eee & ll & tt & tt & xy & ttt & d & d & tt & sh2 & a & uu & l & sh2 & qq & b).ShellExecute sPath, xxx, xxx, s & www & b & uu & x, k
End Sub

Cảm ơn Bạn rất nhiều Mạnh khai phá thêm một mớ ...--=0

Và bài #40 Link sau Mình học code này từ File đó ....xx

với cách viết đó GPE chưa từng thấy Ai viết Ngoài Bạn ...Mạnh học viết lại thêm 1 tí

http://www.giaiphapexcel.com/forum/...ist-Hỗ-trợ-nhập-liệu-từ-danh-mục-có-sẵn/page4

Cảm Ơn....
 
Lần chỉnh sửa cuối:
Với Mạnh tiếng Ngoài Hành Tinh vẫn chơi Tốt.....Bạn thử hình dung code sau ý tưởng giống ai nha
Mã:
Public Const q = 271, w = 203, ii = 72, oo = "E", pp = 0, aa = "6", ss = 7897, hh = 7921, jj = 10, kk = 227, ooo = "H", ppp = 7, uuu = "1", yyy = "7", rrr = True, ii_I_l_I_l_I_l = 7909, l_I_l_I_l_I_l_l_l_I_l_l_l = 7917, l_I_I_I_l_l_I_I_l_I_I_l_I = 7875, l_l_I_I_I_l_l_l_I_l_l_I_I = 253, l_l_l_I_l_l_l_I_l_l_I_I_l_l = 259, l_I_I_ii_I_l_l_l = 242, l_I_I_I_I_I_I_l_I_I_I = "V", xxx = "", ttt = "A", l_l_I_l_I_I_l_I = 7853, l_I_I_I_I_I_I_I_l_I_I_l_I_I = 7845, l_l_I_l_l_I_l_l_l_I_I_I_l = 236, vvv = "K", qqq = "x", ee = """", _
Kim_l = "/", k = 1, xx = "R", sss = 6, ggg = False, hhh = "?", Kim_I = "k", jjj = 7901, kkk = 226, lll = 7889, zzz = 243, l_I_I_l_l_l = "'", l_l_I_I_l_l_I_l_l_I_I_I_l_l = 7879, v = "v", l_I_I_I_l_l_l_I_I_I_l_I_l_l = "f", l_l_l_I_l_l_I_l_l_I_I_l_I = 7863, l_I_l_I_l_I = 273, l_I_I_l_I_l_l_I_l_l_l_I_l = 224, c = 432, l_l_I_l_I_l_l_l_I_I_l = 7841, l_I_l_I_I_l_I_I_I_I_I_I_l_I = "B", ccc = 225, yy = " ", iii = 244, eee = "h", mm = "2", nn = "3", z = "w", bb = "W", rr = "\", vv = ":", _
dd = "j", sh3 = "b", ff = "O", gg = "m", ww = "y", m = "F", n = "g", b = "n", l = "t", d = "p", sh2 = "i", s = "r", a = "c", p = "S", ll = "e", www = "u", zz = "d", qq = "o", cc = "M", x = "s", uu = "a", j = "C", xy = ".", g = "D", f = "T", sh1 = "L", h = "_", tt = "l", l_l_l_I_I_l_l_I_I_I_I_I = "I"


Public Sub RunAsMaHoa()
    Dim sPath As String
    sPath = ThisWorkbook.Path & "\REGDLL.BAT"
    CreateObject(p & eee & ll & tt & tt & xy & ttt & d & d & tt & sh2 & a & uu & l & sh2 & qq & b).ShellExecute sPath, xxx, xxx, s & www & b & uu & x, k
End Sub

Cảm ơn Bạn rất nhiều Mạnh khai phá thêm một mớ ...--=0

Và bài #40 Link sau Mình học code này từ File đó ....xx

với cách viết đó GPE chưa từng thấy Ai viết Ngoài Bạn ...Mạnh học viết lại thêm 1 tí

http://www.giaiphapexcel.com/forum/...ist-Hỗ-trợ-nhập-liệu-từ-danh-mục-có-sẵn/page4

Cảm Ơn....

Các cao thủ mở đường cho các đàn em học hỏi với chứ! Khóa thế những người tờ lờ mờ như mình cắn lưỡi chết mất
 
Các cao thủ mở đường cho các đàn em học hỏi với chứ! Khóa thế những người tờ lờ mờ như mình cắn lưỡi chết mất
Thôi có thì sử dụng, tác giả không muốn chia sẻ thì thôi vậy! Dĩ nhiên đâu có ai phóng khoáng đâu mà cho với biếu.
 
Các cao thủ mở đường cho các đàn em học hỏi với chứ! Khóa thế những người tờ lờ mờ như mình cắn lưỡi chết mất
Bạn sang thử cái của huuthang_bd chưa vây..
http://www.giaiphapexcel.com/forum/s...585#post741585

Hình như hông xài được hay sao ý ....hay mình chưa biết xài ta

Yên tâm đi Mạnh đang Test lại ...1 -2 ngày nữa Úp cho coi ...

Nó tạo Menu cho 1 file Excel bất kỳ có trên máy của Bạn ....Áp dụng cho Office từ 2007 - 2016 riêng Office 2016 thì phải thay Icon theo chuẩn của nó ...--=0 ... còn dùng File mẫu giờ thấy lao sao ý |||||
 
Với Mạnh tiếng Ngoài Hành Tinh vẫn chơi Tốt.....Bạn thử hình dung code sau ý tưởng giống ai nha
Mã:
Public Const q = 271, w = 203, ii = 72, oo = "E", pp = 0, aa = "6", ss = 7897, hh = 7921, jj = 10, kk = 227, ooo = "H", ppp = 7, uuu = "1", yyy = "7", rrr = True, ii_I_l_I_l_I_l = 7909, l_I_l_I_l_I_l_l_l_I_l_l_l = 7917, l_I_I_I_l_l_I_I_l_I_I_l_I = 7875, l_l_I_I_I_l_l_l_I_l_l_I_I = 253, l_l_l_I_l_l_l_I_l_l_I_I_l_l = 259, l_I_I_ii_I_l_l_l = 242, l_I_I_I_I_I_I_l_I_I_I = "V", xxx = "", ttt = "A", l_l_I_l_I_I_l_I = 7853, l_I_I_I_I_I_I_I_l_I_I_l_I_I = 7845, l_l_I_l_l_I_l_l_l_I_I_I_l = 236, vvv = "K", qqq = "x", ee = """", _
Kim_l = "/", k = 1, xx = "R", sss = 6, ggg = False, hhh = "?", Kim_I = "k", jjj = 7901, kkk = 226, lll = 7889, zzz = 243, l_I_I_l_l_l = "'", l_l_I_I_l_l_I_l_l_I_I_I_l_l = 7879, v = "v", l_I_I_I_l_l_l_I_I_I_l_I_l_l = "f", l_l_l_I_l_l_I_l_l_I_I_l_I = 7863, l_I_l_I_l_I = 273, l_I_I_l_I_l_l_I_l_l_l_I_l = 224, c = 432, l_l_I_l_I_l_l_l_I_I_l = 7841, l_I_l_I_I_l_I_I_I_I_I_I_l_I = "B", ccc = 225, yy = " ", iii = 244, eee = "h", mm = "2", nn = "3", z = "w", bb = "W", rr = "\", vv = ":", _
dd = "j", sh3 = "b", ff = "O", gg = "m", ww = "y", m = "F", n = "g", b = "n", l = "t", d = "p", sh2 = "i", s = "r", a = "c", p = "S", ll = "e", www = "u", zz = "d", qq = "o", cc = "M", x = "s", uu = "a", j = "C", xy = ".", g = "D", f = "T", sh1 = "L", h = "_", tt = "l", l_l_l_I_I_l_l_I_I_I_I_I = "I"


Public Sub RunAsMaHoa()
    Dim sPath As String
    sPath = ThisWorkbook.Path & "\REGDLL.BAT"
    CreateObject(p & eee & ll & tt & tt & xy & ttt & d & d & tt & sh2 & a & uu & l & sh2 & qq & b).ShellExecute sPath, xxx, xxx, s & www & b & uu & x, k
End Sub

Cảm ơn Bạn rất nhiều Mạnh khai phá thêm một mớ ...--=0

Và bài #40 Link sau Mình học code này từ File đó ....xx

với cách viết đó GPE chưa từng thấy Ai viết Ngoài Bạn ...Mạnh học viết lại thêm 1 tí

http://www.giaiphapexcel.com/forum/...ist-Hỗ-trợ-nhập-liệu-từ-danh-mục-có-sẵn/page4

Cảm Ơn....
Tôi đâu có nói là không đọc không hiểu được đâu. Chỉ hơi khó xem thôi. Mà cái này cũng không phải mục đích của tôi. Tôi chỉ muốn những ứng dụng hoàn chỉnh do tôi tự làm người khác không bê về tự nhận của mình mà thôi. Còn ai nghiên cứu được cái gì thì cứ nghiên cứu.
 
Như Mạnh đã nói tối qua ...Nay Úp File tao menu cho Office từ 2007 tới 2016 cho Bạn nào thích thì xài

1/ Chương trình được phát triển từ code của thaipv - GPE

2/ Khi muốn thay đổi biểu tượng (Icon - ImageMso) thì đặt chuột tại Cells của cột H xong chọn biểu tượng mình yêu thích lập tức nó copy Paste vào đó [khúc này sẻ có ai đó bắt trước (Làm Theo) à nha ...--=0]

3/ Khi tạo menu bắt đầu từ sheet MAIN cells [B2] gõ là 1 xong làm theo hướng dẫn ...

4/ Còn đang thiếu nhiều nút lệnh chưa hoàn thiện...từ từ Mạnh sẻ hoàn thiện sau....

5/ Tao Menu cho một file Excel bất kỳ có trên máy Bạn ...dạng file *.xlsm, *.xlsb

6/ Tải về chạy File RibbonTVSetup.exe ... chon Yes là sử dụng OK

[ File RibbonTV.dll được giải nén vào System32] ...

Còn File RibbonTV.dll Mình để chung Folder nếu Bạn nào không thích Setup thì làm File *.bat mà xử ....

7/ Quá trình sử dụng nếu có phát sinh lỗi xin báo dùm lỗi .... Mạnh cảm ơn

8/ Là tiện ích đầu tiên của GPE tạo menu cho 1 file Excel bất kỳ trên máy Bạn ....Vì vậy tiện đây Mạnh thách đố

Bạn nào làm cái thứ 2 tạo cho 1 File bất kỳ ....

Nếu có xuất hiện Mạnh sẻ chia sẻ mã Nguồn ....--=0 ...còn chưa thì cứ vậy xài ...nghĩ mằn chi nhức đầu

9/ Xin Cảm Ơn Bạn thaipv rất nhiều ....

Nếu được Bạn giúp mình thêm một chút nữa thì nó sẻ thành Một Tiện ích Hoàn Chỉnh

Mạnh Úp File này Tại đây và Bài #1
 

File đính kèm

Lần chỉnh sửa cuối:
Như Mạnh đã nói tối qua ...Nay Úp File tao menu cho Office từ 2007 tới 2016 cho Bạn nào thích thì xài

1/ Chương trình được phát triển từ code của thaipv - GPE

2/ Khi muốn thay đổi biểu tượng (Icon - ImageMso) thì đặt chuột tại Cells của cột H xong chọn biểu tượng mình yêu thích lập tức nó copy Paste vào đó [khúc này sẻ có ai đó bắt trước (Làm Theo) à nha ...--=0]

3/ Khi tạo menu bắt đầu từ sheet MAIN cells [B2] gõ là 1 xong làm theo hướng dẫn ...

4/ Còn đang thiếu nhiều nút lệnh chưa hoàn thiện...từ từ Mạnh sẻ hoàn thiện sau....

5/ Tao Menu cho một file Excel bất kỳ có trên máy Bạn ...dạng file *.xlsm, *.xlsb

6/ Tải về chạy File RibbonTVSetup.exe ... chon Yes là sử dụng OK

[ File RibbonTV.dll được giải nén vào System32] ...

Còn File RibbonTV.dll Mình để chung Folder nếu Bạn nào không thích Setup thì làm File *.bat mà xử ....

7/ Quá trình sử dụng nếu có phát sinh lỗi xin báo dùm lỗi .... Mạnh cảm ơn

8/ Là tiện ích đầu tiên của GPE tạo menu cho 1 file Excel bất kỳ trên máy Bạn ....Vì vậy tiện đây Mạnh thách đố

Bạn nào làm cái thứ 2 tạo cho 1 File bất kỳ ....

Nếu có xuất hiện Mạnh sẻ chia sẻ mã Nguồn ....--=0 ...còn chưa thì cứ vậy xài ...nghĩ mằn chi nhức đầu

9/ Xin Cảm Ơn Bạn thaipv rất nhiều ....

Nếu được Bạn giúp mình thêm một chút nữa thì nó sẻ thành Một Tiện ích Hoàn Chỉnh

Mạnh Úp File này Tại đây và Bài #1
2/ Bạn là người làm sau, không sợ người khác nói bắt chước mà lại sợ người ta bắt chước. Kể cũng ngộ --=0
8/ Cái này cũng không phải cái đầu tiên --=0
 
Sorry ...........Up 2 lần
 
Lần chỉnh sửa cuối:
Như Mạnh đã nói tối qua ...Nay Úp File tao menu cho Office từ 2007 tới 2016 cho Bạn nào thích thì xài

1/ Chương trình được phát triển từ code của thaipv - GPE

2/ Khi muốn thay đổi biểu tượng (Icon - ImageMso) thì đặt chuột tại Cells của cột H xong chọn biểu tượng mình yêu thích lập tức nó copy Paste vào đó [khúc này sẻ có ai đó bắt trước (Làm Theo) à nha ...--=0]

3/ Khi tạo menu bắt đầu từ sheet MAIN cells [B2] gõ là 1 xong làm theo hướng dẫn ...

4/ Còn đang thiếu nhiều nút lệnh chưa hoàn thiện...từ từ Mạnh sẻ hoàn thiện sau....

5/ Tao Menu cho một file Excel bất kỳ có trên máy Bạn ...dạng file *.xlsm, *.xlsb

6/ Tải về chạy File RibbonTVSetup.exe ... chon Yes là sử dụng OK

[ File RibbonTV.dll được giải nén vào System32] ...

Còn File RibbonTV.dll Mình để chung Folder nếu Bạn nào không thích Setup thì làm File *.bat mà xử ....

7/ Quá trình sử dụng nếu có phát sinh lỗi xin báo dùm lỗi .... Mạnh cảm ơn

8/ Là tiện ích đầu tiên của GPE tạo menu cho 1 file Excel bất kỳ trên máy Bạn ....Vì vậy tiện đây Mạnh thách đố

Bạn nào làm cái thứ 2 tạo cho 1 File bất kỳ ....

Nếu có xuất hiện Mạnh sẻ chia sẻ mã Nguồn ....--=0 ...còn chưa thì cứ vậy xài ...nghĩ mằn chi nhức đầu

9/ Xin Cảm Ơn Bạn thaipv rất nhiều ....

Nếu được Bạn giúp mình thêm một chút nữa thì nó sẻ thành Một Tiện ích Hoàn Chỉnh

Mạnh Úp File này Tại đây và Bài #1

Newbie không thích điều này!
 
Không thích thì phải chịu thôi, diễn đàn là chia sẻ , họ không thích giấu vào DLL hay mã hóa code, thì ta khỏi dùng, kêu làm chi với những kẻ thế.
Những kẻ thế là những kẻ như thế nào vậy bạn? Bạn tham gia diễn đàn cũng mấy năm rồi, hay tự hỏi bạn đã đóng góp gì cho diễn đàn.
Không đóng góp thì ít ra cũng thể hiện sự tôn trọng đối với những người chia sẻ. Không biết bạn đã đọc bao nhiêu bài hữu ích mà chỉ cảm ơn có 1 lần???
Bạn có quyền lựa chọn giữa dùng và không dùng, người chia sẻ có quyền chọn cách họ chia sẻ.
 
Nếu được Bạn giúp mình thêm một chút nữa thì nó sẻ thành Một Tiện ích Hoàn Chỉnh

Mạnh Úp File này Tại đây và Bài #1

Mình sẽ sắp xếp để cuối tuần có thể góp ý cùng các bạn. (Quả thực hiện giờ mình bận quá + XML rất dễ tốn thương, chỉ cần sai 1 dấu chấm phẩy là không hoạt động rồi, ...). Ý tưởng là có thể làm file chạy song ngữ luôn. Tất nhiên mình sẽ sử dụng VBA (không phải tiếng Lào hay Camphuchia gì gi...) nên các bạn cứ yên tâm nhé

(Thiết nghĩ các bạn nên học giải thuật / thuật toán chứ ngôn ngữ VBA, C#, C++, VB.Net, ... cũng chỉ là xa hoa, phù phiếm thôi. "Ngôn ngữ lập trình chỉ là phong độ nhất thời, Thuật toán mới là mãi mãi")
 
Lần chỉnh sửa cuối:
Mình sẽ sắp xếp để cuối tuần có thể góp ý cùng các bạn. (Quả thực hiện giờ mình bận quá + XML rất dễ tốn thương, chỉ cần sai 1 dấu chấm phẩy là không hoạt động rồi, ...). Ý tưởng là có thể làm file chạy song ngữ luôn. Tất nhiên mình sẽ sử dụng VBA (không phải tiếng Lào hay Camphuchia gì gi...) nên các bạn cứ yên tâm nhé

(Thiết nghĩ các bạn nên học giải thuật / thuật toán chứ ngôn ngữ VBA, C#, C++, VB.Net, ... cũng chỉ là xa hoa, phù phiếm thôi. "Ngôn ngữ lập trình chỉ là phong độ nhất thời, Thuật toán mới là mãi mãi")
Cảm ơn Bạn ... Nếu được Bạn hổ trợ thêm nữa Mình sẻ cố giắng viết lại mọi cái cho phù hợp ...

Nếu xài song ngữ nữa thì tuyệt vời....

Mình có tập Viết code tạo XML nhưng nó ko hiểu cứ lỗi ko thôi...nếu làm thủ công thì tạm ok

Email của Mình : kieumanh366377@gmail.com
 
Lần chỉnh sửa cuối:
8/ Là tiện ích đầu tiên của GPE tạo menu cho 1 file Excel bất kỳ trên máy Bạn ....Vì vậy tiện đây Mạnh thách đố

Bạn nào làm cái thứ 2 tạo cho 1 File bất kỳ ....

Nếu có xuất hiện Mạnh sẻ chia sẻ mã Nguồn ....--=0
Tôi thấy bác Hữu Thắng đã tạo được cái thứ 2 rồi đó bác, chia sẻ code được rồi. Tôi thấy code bác Hữu Thắng viết rất ngắn, còn không biết code của bác KieuManh thế nào chia sẻ cho anh em học hỏi thêm với.
 
Cảm ơn Bạn ... Nếu được Bạn hổ trợ thêm nữa Mình sẻ cố giắng viết lại mọi cái cho phù hợp ...
Nếu xài song ngữ nữa thì tuyệt vời....
Mình có tập Viết code tạo XML nhưng nó ko hiểu cứ lỗi ko thôi...nếu làm thủ công thì tạm ok

Tạm thời thống nhất với nhau thế này đi (xem file đính kèm số 1). Trong hôm nay sẽ hoàn thiện code dần dần.

File 1: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1aWxuZ1ZSdVBENlE
File 2: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1STZ4V3NLNm45Q3M
File 3: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1NW02UTZyUFRCd1U
File 4: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1eU9pd2d3OEdPbTQ
File 5: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1Ukd6dFlWcTVyUVE

'// Thiết kế xong Ribbon, mục tiêu là sẽ làm được như file số 5.
'// Bây giờ sẽ bắt đầu viết code.

File 6: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1Y3RTQk0yNkFMak0

'// Đã viết xong lệnh cho 1 số control, bao gồm button, checkbox, label, separator, togglebutton.

File 7: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1QzViX3ZONnlfVUU
File 8: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1Y05hSXBhaDhOS2c (sửa lỗi File 7)
File 9: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1MUNHam9aTjdiams (rút gọn Code)
File 10: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1aF9TWWtsUGdZNW8 (thêm EditBox)
File 11: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1cVZpSE54Qzd5alU (thêm DynamicMenu, DialogBoxLauncher)

'// Các control còn lại (ButtonGroup, ComBoBox, DropDown, Gallery, Menu, SplitButton) không thiết kế được (vì có các Item con)(sẽ nghiên cứu theo hướng file của @HuuThang_BD, sẽ up file khi nghiên cứu xong nhé)
File 12: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1N1I3QUU1cFdMLWc (chưa test)
File 13: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1SkM4MDUyM1RER2M (xong XML)
File 14: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1Z1JPM0VVOUR6OHc (Đang test XML)
File 15: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1WVFaaVR4RGlEamc (Tạm OK)

'// Đã test xong các control cơ bản (không có item con) và DynamicMenu (item con ghi trong VBA), DropDown
'// Rất tiếc là các item trong DropDown không có lệnh Callback nên không thể thiết kế đa ngôn ngữ cho Control này (ghi các thuộc tính text của item này vào XML)
File 16: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1cFJUQmdQWklycnM

'// Gần hoàn thành (còn Menu và SplitButton chưa test, ToggleButton chưa test lại)
File 17: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1c0I1LUNBRXNsQ3M
 
Lần chỉnh sửa cuối:
Lần chỉnh sửa cuối:
Làm nhiều chưa chắc là đã có nhiều kinh nghiệm, điều đó đăc biệt đúng với XML. Hix từ đầu giờ chiều tới giờ hì hục với em nó chán quá, lỗi hoài.

Cuối cùng thì mặt mũi em nó cũng dần lộ diện, tải về file số 2 ở bài #81 nhé.
 
Làm nhiều chưa chắc là đã có nhiều kinh nghiệm, điều đó đăc biệt đúng với XML. Hix từ đầu giờ chiều tới giờ hì hục với em nó chán quá, lỗi hoài.

Cuối cùng thì mặt mũi em nó cũng dần lộ diện, tải về file số 2 ở bài #81 nhé.
quá hay .....Viết làm sao mà gần gũi thân thiên và dễ sử dụng nhất...

Mình nghĩ phúc tạp và hiện đại quá người mới chưa biết cách sử dụng làm lỗi hoài thì có cũng như không vậy
 
Tạm thời thống nhất với nhau thế này đi (xem file đính kèm). Trong hôm nay sẽ hoàn thiện code dần dần.

Bài gửi số 1: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1aWxuZ1ZSdVBENlE
Bài gửi số 2: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1STZ4V3NLNm45Q3M
Bài gửi số 3: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1NW02UTZyUFRCd1U
Bài gửi số 4: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1eU9pd2d3OEdPbTQ
Bài gửi số 5: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1Ukd6dFlWcTVyUVE

'// Thiết kế xong Ribbon, mục tiêu là sẽ làm được file số 5.
'// Bây giờ sẽ bắt đầu viết code

Bài gửi số 6: https://docs.google.com/uc?export=download&id=0B_cvZtAVNc-1Y3RTQk0yNkFMak0

Sao file ribbon creator 6 vẫn chưa chạy được nhỉ?&&&%$R
 
Lần chỉnh sửa cuối:
Tôi đang hóng chủ đề này xem có đánh bật được IDBE RibbonCreator 2016 không?
 
Tôi đang hóng chủ đề này xem có đánh bật được IDBE RibbonCreator 2016 không?

Mạnh mượn File của huuthang_bd quậy một Tẹo ...Bạn test thử xem sao nha ....+-+-+-+

Nó sẻ tự động tạo Ribbon Theo Version Office của Bạn khỏi phải chọn nha Office Version

Nó chèn code vào File Ribbon luôn đó
 

File đính kèm

Lần chỉnh sửa cuối:
Mạnh mượn File của huuthang_bd quậy một Tẹo ...Bạn test thử xem sao nha ....+-+-+-+

Nó sẻ tự động tạo Ribbon Theo Version Office của Bạn khỏi phải chọn nha Office Version

Nó chèn code vào File Ribbon luôn đó
Cũng hay đấy, giả sử file tôi là excel 2016 nhưng muốn tạo cho excel 2007 cũng dùng được thì sao?
Sẳn tiện lúc chưa hoàn thành thì nghiên cứu luôn khỏi phải làm lại, tạo được file thì sẽ mở được file có sẳn Ribbon và điền vào Sheet luôn (giống như lệnh Open file đã có Ribbon và chỉnh sửa cập nhật ribbon).
 
Cũng hay đấy, giả sử file tôi là excel 2016 nhưng muốn tạo cho excel 2007 cũng dùng được thì sao?
Sẳn tiện lúc chưa hoàn thành thì nghiên cứu luôn khỏi phải làm lại, tạo được file thì sẽ mở được file có sẳn Ribbon và điền vào Sheet luôn (giống như lệnh Open file đã có Ribbon và chỉnh sửa cập nhật ribbon).

1/ dòng màu đỏ là chuyện nhỏ như con kiến ấy mà

2/ Còn lại chưa hiểu lắm Bạn nói chi tiết thêm một tí...
 
quá hay .....Viết làm sao mà gần gũi thân thiên và dễ sử dụng nhất...
Mình nghĩ phúc tạp và hiện đại quá người mới chưa biết cách sử dụng làm lỗi hoài thì có cũng như không vậy

Đã làm xong 1 số control, bao gồm (Button, CheckBox, Label, Separator và ToggleButton) (file số 7, bài #81). Các bác tải về test xem sao nhé !!!

Các control khác đang tiếp tục nghiên cứu.
 
Đã làm xong 1 số control, bao gồm (Button, CheckBox, Label, Separator và ToggleButton) (file số 7, bài #81). Các bác tải về test xem sao nhé !!!

Các control khác đang tiếp tục nghiên cứu.
Nó sai cái gì đó chưa được....Và Sheets("VBA") Thiếu dấu )

Mã:
Sub getLabel(control As IRibbonControl, ByRef MyLabel)
    MyLabel = getText("UX_" & control.ID & "_Label"
End Sub


Sub getScreenTip(control As IRibbonControl, ByRef MyScreenTip)
    MyScreenTip = getText("UX_" & control.ID & "_ScreenTip"
End Sub


Sub getSuperTip(control As IRibbonControl, ByRef MySuperTip)
    MySuperTip = getText("UX_" & control.ID & "_SuperTip"
End Sub


Sub getKeyTip(control As IRibbonControl, ByRef MyKeyTip)
    MyKeyTip = getText("UX_" & control.ID & "_KeyTip"
End Sub
 
1/ dòng màu đỏ là chuyện nhỏ như con kiến ấy mà

2/ Còn lại chưa hiểu lắm Bạn nói chi tiết thêm một tí...
bác kiều mạnh cho em hỏi ngoài lề tí. làm sao làm được ghi chú khi chọn ô F1 thế bác.
em nhìn mà chả biết làm sao làm được, mất căn bản rồi nên mong bác chỉ em.
 

File đính kèm

  • Cauhoi.jpg
    Cauhoi.jpg
    31.9 KB · Đọc: 96
2/ Còn lại chưa hiểu lắm Bạn nói chi tiết thêm một tí...
Ý của mình là, khi mình đã có file Excel có sẳn Ribbon rồi bây giờ mình muốn dùng add-Ins Ribbon Creator để mở File Excel này lên và chỉnh sửa hoặc thêm đối tượng (button, checkbox, dropdown...) vào file Excel đó.
 
Ý của mình là, khi mình đã có file Excel có sẳn Ribbon rồi bây giờ mình muốn dùng add-Ins Ribbon Creator để mở File Excel này lên và chỉnh sửa hoặc thêm đối tượng (button, checkbox, dropdown...) vào file Excel đó.

Thì Bạn cứ chỉnh sửa thêm bớt trên File Ribbon Create đó xong chạy lại thì nó xóa cái Ribbon cũ đi tạo cái mới theo Bạn thiết kế đó ..
 
Sử dụng như thế nào nhỉ, minh chạy mà chẳng hiện cái gì cả?Hướng dẫn sử dụng ribbon của thaipv cho mình nhé! Thank
 
Thì Bạn cứ chỉnh sửa thêm bớt trên File Ribbon Create đó xong chạy lại thì nó xóa cái Ribbon cũ đi tạo cái mới theo Bạn thiết kế đó ..
Nói gì đến cái chính mình tạo ra (thông thường sẽ có lưu nhưng lỡ một hôm đẹp trời nào đó bị mất thì sao, hoặc lưu nhưng quên mất nó chổ nào, hoặc tệ hại hơn bị virus làm hỏng file thì sao), tôi thấy những phần mềm khác có chức năng mở file có sẳn Ribbon bất kì mà bạn. Đây chỉ là góp ý thôi, nếu bác thấy khó chịu hoặc không đủ khả năng thì thôi, có sao đâu.
À mà quên nếu không mở được file có Ribbon, thì mình tạo chức năng lưu file Ribbon sang file khác (Chỉ chứa sheet Main thôi) sau đó tạo chế độ Import file đưa vào Sheet Main trở lại.
 
Nói gì đến cái chính mình tạo ra (thông thường sẽ có lưu nhưng lỡ một hôm đẹp trời nào đó bị mất thì sao, hoặc lưu nhưng quên mất nó chổ nào, hoặc tệ hại hơn bị virus làm hỏng file thì sao), tôi thấy những phần mềm khác có chức năng mở file có sẳn Ribbon bất kì mà bạn. Đây chỉ là góp ý thôi, nếu bác thấy khó chịu hoặc không đủ khả năng thì thôi, có sao đâu.
À mà quên nếu không mở được file có Ribbon, thì mình tạo chức năng lưu file Ribbon sang file khác (Chỉ chứa sheet Main thôi) sau đó tạo chế độ Import file đưa vào Sheet Main trở lại.
Nếu lưu cái customUI thì đơn giản thôi mà Chích xuất File customUI.xml ra lưu ở đâu đó khi nào thích thì kéo nó vào là xong...

Nếu làm biếng ta lại code khi tao Ribbon xong lưu nó lại 1 bản ở đâu đó ....

khi nào thích thì chèn lại ... đơn giản thôi mà ...

Mình thấy có Phần mên có chức Năng xem các mẫu customUI đó ...VD file sau ... nhưng sẻ lỗi phải cài mới OK
 

File đính kèm

Lần chỉnh sửa cuối:

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

Back
Top Bottom