Addins-Hỗ trợ Excel tổng hợp đây bản quyền Free và mã nguồn mở! (2 người xem)

Liên hệ QC

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

phan ngoc lan

Phan ngọc lan(^_^)
Tham gia
10/6/10
Bài viết
145
Được thích
340
Nghề nghiệp
Xây dựng
Chào các anh chị trên diễn đàn trong vài tháng trước em có tự viết cho mình một Addins Hỗ trợ tốt trong Excel em muốn tự mình viết thêm nữa (đam mê và yêu thích bảng tính diệu kỳ) nhưng thời gian này em rất bận không thể viết thêm được nay muốn gửi File này lên diễn đàn để mọi người tiếp tục phát triển
Hiện mình đã thay đổi lại link:

Chúc các bạn có thể thao tác dễ dàng hơn với Microsoft Office Excel (Bảng tính diệu kỳ ) mong các bạn hãy phát triển nó thêm để ngày càng hoàn thiện Thank!
Một tệp là bộ cài còn một tệp là file "xla"
 

File đính kèm

Lần chỉnh sửa cuối:
Chào các anh chị trên diễn đàn trong vài tháng trước em có tự viết cho mình một Addins Hỗ trợ tốt trong Excel em muốn tự mình viết thêm nữa (đam mê và yêu thích bảng tính diệu kỳ) nhưng thời gian này em rất bận không thể viết thêm được nay muốn gửi File này lên diễn đàn để mọi người tiếp tục phát triển
Các bạn tải tại đây :http://www.4shared.com/account/home.jsp?startPage=1

Xem cách bạn viết chương trình tôi thấy bạn có tính chuyên nghiệp về lập tình. Mong rằng bạn tiếp tục chia sẻ cho cộng đồng Excel.
 
Xin thầy tuân xin cho em hỏi sao em tải lên 4shared rồi mà giờ kiểm tra lại không vào được
 
Lần chỉnh sửa cuối:
----------------------------------------------------
 
Lần chỉnh sửa cuối:
XIn hỏi BQT em muốn tải File lên diễn đàn nhưng dung lượng gần 2 MB thì không tải được giờ em phải làm sao?
có ai gửi giúp em File này với em chót nói với cả nhà rồi&&&%$R
 
\
mình vẫn vào được đấy chứ ko biết làm sao?
Hình như link trên là vào trong mục My Files trong tài khoản của bạn nên chỉ bạn mới vào được. Bạn thử làm lại: Chọn file cần share link, nhấn nút Share bên phải, tiếp theo nhấn 1 trong 2 nút Copy Link ở dưới và dán vào bài viết thử xem có được không.
XIn hỏi BQT em muốn tải File lên diễn đàn nhưng dung lượng gần 2 MB thì không tải được giờ em phải làm sao?
có ai gửi giúp em File này với em chót nói với cả nhà rồi&&&%$R
Nếu thử như trên mà vẫn không được thì bạn gửi cho mình theo địa chỉ bluecactus_ayhs@yahoo.com, mình sẽ đưa lên đây giúp bạn.
 
--------------------------------------
 
Lần chỉnh sửa cuối:
Lần chỉnh sửa cuối:
Hình như được rồi đấy bạn kiểm tra lại xem sao
 
Lần chỉnh sửa cuối:
Hình như được tồi đấy bạn kiểm tra lại xem sao
Đúng là được rồi.. nhưng tải về xong cảm thấy hơi thất vọng chút
Bạn nói mã nguồn mở sao không đưa nguyên file chứa code lên đây? File EXE, chẳng lẽ phải cài xong thì mới biết nội dung code hả bạn?
Tính tôi thì hơi khác... phải biết "nó" có thật sự "ngon" hay không mới quyết định cải vào máy
 
Đúng là được rồi.. nhưng tải về xong cảm thấy hơi thất vọng chút
Bạn nói mã nguồn mở sao không đưa nguyên file chứa code lên đây? File EXE, chẳng lẽ phải cài xong thì mới biết nội dung code hả bạn?
Tính tôi thì hơi khác... phải biết "nó" có thật sự "ngon" hay không mới quyết định cải vào máy
Vậy em xin tải lên File mới để thầy ndu96081631 cùng mọi người test thử nhưng phải chạy File Hỗ trợ Excel.exe để một số file của em có thể chuyển vào thư mục đã chọn không file sẽ báo lỗi
File mới của em đã cập nhật trang đầu
 
Lần chỉnh sửa cuối:
Cám ơn bạn nhé! Bạn thật chuyên nghiệp! Chúc bạn thật nhiều sức khỏe và đóng góp, chia sẻ nhiều hơn nữa cho mọi người cùng học hỏi bạn nhé!
 
Vậy em xin tải lên File mới để thầy ndu96081631 cùng mọi người test thử nhưng phải chạy File Hỗ trợ Excel.exe để một số file của em có thể chuyển vào thư mục đã chọn không file sẽ báo lỗi
File mới của em đây :http://www.mediafire.com/file/t3v2kfrwv0f3jeq/HoTroExcel2.rar
Mọi người cho em hỏi chút, Norton Antivirus 2012 báo con W32.Virus.CF nằm trong file HoTroExcel, con này có an toàn không?
virusexcel.JPG
 
---------------------------------------------------
 
Lần chỉnh sửa cuối:
Theo cá nhân tôi, tiện ích hỗ trợ excel của bạn Ngọc Lan khá hay, có thể ứng dụng tốt.
Rất đáng khích lệ & ủng hộ.
 
Theo cá nhân tôi, tiện ích hỗ trợ excel của bạn Ngọc Lan khá hay, có thể ứng dụng tốt.
Rất đáng khích lệ & ủng hộ.
Cảm ơn bạn nhưng chắc thời gian tới này mình sẽ rất bận không thể tiếp tục theo đuổi đam mê với bảng tính diệu kỳ
 
Trong File chuyển Font mình đã sơ ý để chọn di chuyển chuột trên Userform thì ô mã nguồn lại nhận mã Font của ô hiện tại do vậy khi chọn tự đoán mã hoặc các Font nguồn khác thì dễ bị sai mong bạn nào đó ấn Ctrl + Q vào VBA xóa dòng đó trong Userform FrmcFontSelect cho mình rồi tải lên đây nhé. Mình hết quyền tải rồi. Cảm ơn nhìu!
 
Trong File chuyển Font mình đã sơ ý để chọn di chuyển chuột trên Userform thì ô mã nguồn lại nhận mã Font của ô hiện tại do vậy khi chọn tự đoán mã hoặc các Font nguồn khác thì dễ bị sai mong bạn nào đó ấn Ctrl + Q vào VBA xóa dòng đó trong Userform FrmcFontSelect cho mình rồi tải lên đây nhé. Mình hết quyền tải rồi. Cảm ơn nhìu!

Tôi rất thích bộ hàm Msgbox của Ngọc Lan, rất hay! Nếu các nút lệnh mà mượt mà như msgbox của application thì quá tuyệt! Còn Inputbox của VBA chắc không đổi được font tiếng Việt, chỉ có thể dùng Application.Inputbox.

Cám ơn bạn đã chia sẻ!
 
Mình cũng nghĩ nhiều cách nhưng chưa nghĩ ra ta đành dùng tạm Application.Inputbox vẫn có Font tiếng việt nhưng các nút lệnh thì chưa
mình cùng nhau phát triển nhé
 
Lần chỉnh sửa cuối:
Mình cũng nghĩ nhiều cách nhưng chưa nghĩ ra ta đành dùng tạm Application.Inputbox vẫn có Font tiếng việt nhưng các nút lệnh thì chưa
mình cùng nhau phát triển nhé

Trình độ của mình chỉ là ABC nên không dám nhận cụm từ "cùng nhau phát triển" đâu hihihi.
Trong MsgBoxW của bạn, mình thấy nó có hiện Icon trên Taskbar, vậy làm sao không cho nó hiện lên vậy bạn?

Cám ơn bạn.
 
Trình độ của mình chỉ là ABC nên không dám nhận cụm từ "cùng nhau phát triển" đâu hihihi.
Trong MsgBoxW của bạn, mình thấy nó có hiện Icon trên Taskbar, vậy làm sao không cho nó hiện lên vậy bạn?

Cám ơn bạn.

Mình cũng vậy chỉ trình độ ABC thui. Muốn cho Inputbox có các nút lệnh tiếng việt thì chắc phải nhờ các bậc tiền bối trong diễn đàn dùng lệnh Hook gì đó với Window thui cái đó mình chịu!!!!!!!!!!!!!!!!!!!!!!!
 
Tiện ích của bạn rất hay, nhưng vẫn còn lỗi
ví dụ: menu Dữ liệu/theo dõi phụ thuộc
khi kích vào thì bị lỗi không chạy được. Rất mong bạn xem và phát triển thêm cho người dùng
 
Tiện ích của bạn rất hay, nhưng vẫn còn lỗi
ví dụ: menu Dữ liệu/theo dõi phụ thuộc
khi kích vào thì bị lỗi không chạy được. Rất mong bạn xem và phát triển thêm cho người dùng

Đây là lỗi do khi ngồi muốn viết thêm những tiện ích khác em đã bị nhầm thanh nút lệnh tạo Menu mong mọi người thông cảm
Em rất cảm ơn thầy: yeudoi đã góp ý và em xin tải lại File Add-ins nầy mọi người hãy tải về và copy luôn thay thế File cũ đi. Em xin cảm ơn
P/S: mong mọi người đóng góp ý kiến để File Hỗ trợ Excel này ngày càng hoàn thiện hơn!!!!!!!!!!!!!!!!
Mình đã tải file mới ở trang đầu.
 
Lần chỉnh sửa cuối:
Đây là lỗi do khi ngồi muốn viết thêm những tiện ích khác em đã bị nhầm thanh nút lệnh tạo Menu mong mọi người thông cảm
Em rất cảm ơn thầy: yeudoi đã góp ý và em xin tải lại File Add-ins nầy mọi người hãy tải về và copy luôn thay thế File cũ đi. Em xin cảm ơn
P/S: mong mọi người đóng góp ý kiến để File Hỗ trợ Excel này ngày càng hoàn thiện hơn!!!!!!!!!!!!!!!!

Bạn là là một trong số ít người tôi thấy cách làm bài bản và có tính chuyên nghiệp. Từ cách viết code format code rất sảng, cách comment đầu các module. Với kỹ thuật lập trình của bạn, lắp ghép với ý tưởng để xây dựng ứng dụng, nếu có time chắc bạn sẽ làm được ứng dụng hoàn chỉnh!

Tôi đánh giá cao nữa là phần bạn trích nguồn tác giả khi sử dụng một số hàm (mặc dù nguồn đó chưa đúng lắm). Nếu mọi người đều biết tôn trọng nguồn cũng như bản quyền tác giả thì chúng ta sẽ còn được thấy và được dùng nhiều chương trình hay và các kiến thức tuyệt vời nữa của chính người Việt.
 
Cảm ơn thầy từ khi tiếp xúc với bảng tính Excel diệu kì em cảm thấy rất đam mê và cũng muốn tìm tòi khám phá cho thỏa mãn đam mê (với mục đích chính sao cho mỗi nguời chúng ta khi sử dụng bảng tính thì sẽ rút ngắn được những thao tác phức tạp, tiết kiệm thời gian hơn)
Cảm ơn thầy!!!!!!!!!!
 
Lần chỉnh sửa cuối:
Cảm ơn thầy từ khi tiếp xúc với bảng tính Excel diệu kì em cảm thấy rất đam mê và cũng muốn tìm tòi khám phá cho thỏa mãn đam mê (với mục đích chính sao cho mỗi nguời chúng ta khi sử dụng bảng tính thì sẽ rút ngắn được những thao tác phức tạp, tiết kiệm thời gian hơn)
Cảm ơn thầy!!!!!!!!!!


Mình xin hỏi lại Ngọc Lan nhé, làm sao để khi msgbox hiện lên thì không hiện ICON trên TASKBAR vậy?
 

File đính kèm

  • Picture1.png
    Picture1.png
    13.7 KB · Đọc: 385
Mình xin hỏi lại Ngọc Lan nhé, làm sao để khi msgbox hiện lên thì không hiện ICON trên TASKBAR vậy?
Cái này mình cũng chịu Vì việc Hook vào Window cùng với các hàm API mình không rõ cái MSgboxW này cũng là do mình sưu tầm và thay thế một chút thui mà tiện đây mình có tải Hàm Msgboxw tiếng việt của anh Nguyễn trung tín bạn nào có thời gian ngồi ngâm cứu mấy cái icon cho mọi người nhé!
 

File đính kèm

Cái này mình cũng chịu Vì việc Hook vào Window cùng với các hàm API mình không rõ cái MSgboxW này cũng là do mình sưu tầm và thay thế một chút thui mà tiện đây mình có tải Hàm Msgboxw tiếng việt của anh Nguyễn trung tín bạn nào có thời gian ngồi ngâm cứu mấy cái icon cho mọi người nhé!

Hàm MsgBoxW của bạn và Nguyễn Trung Tín có 2 vấn đề:

1. Thay thế chữ trên Button.
Ở đây các bạn dùng phương pháp FindWindow() thông qua label của các nút. Nếu Windows của bạn chạy với ngôn ngữ English thì sẽ tìm được còn với ngôn ngữ khác thì hàm FindWindow() sẽ không tìm thấy, vì label của các button không còn là "Ok", "Yes",...
-->Giải pháp là phải tìm theo ID của Button.

2. Biến hFont không được giải phóng ==> Lỗi nghiêm trọng!
Biến hFont nhận handle của font chữ tạo bởi hàm CreateFont(), khi đó Windows sẽ quản lý handle này trong Resource. Nhưng khi không dùng đến các bạn không có lệnh nào giải phóng nó, điều này dấn đến bộ nhớ của Windows bị chiếm dụng. Mà trong một ứng dụng hàm MsgBoxW sẽ được dùng rất nhiều lần, mỗi lần bật lên là một lần chiếm dụng bộ nhớ, đến lúc nào đó Windows chạy sẽ chậm và treo!
-->Giải pháp dùng hàm DestroyObject() để giải phóng hFont khi không còn dùng đến.

Còn vấn đề về Add-in, bạn không nên đặt chữ lên Application.Caption, ví Excel được dùng để chạy nhiều Add-in khác cũng như các pm khác nữa.
 
Lần chỉnh sửa cuối:
Mình xin hỏi lại Ngọc Lan nhé, làm sao để khi msgbox hiện lên thì không hiện ICON trên TASKBAR vậy?

Code cũ là:

Mã:
Public Function MsgBoxW(strText As String, Optional iButtons As VbMsgBoxStyle = vbOKOnly, Optional strTitle As String, _
                        Optional hWnd As Long = &H0) As VbMsgBoxResult
       Dim sTam1 As String, sTam2 As String

       sTam1 = UNC(strText)
       sTam2 = UNC(strTitle)

       hDlgHook = SetWindowsHookEx(WH_CBT, AddressOf HookProc, Application.Hinstance, GetCurrentThreadId())
       MsgBoxW = MessageBoxW(0, StrPtr(sTam1), StrPtr(sTam2), iButtons Or MB_TASKMODAL)
End Function

Sửa lại, thêm Application.hWnd vào đối số đầu tiên của hàm MessageBoxW

Mã:
Public Function MsgBoxW(strText As String, Optional iButtons As VbMsgBoxStyle = vbOKOnly, Optional strTitle As String, _
                        Optional hWnd As Long = &H0) As VbMsgBoxResult
       Dim sTam1 As String, sTam2 As String

       sTam1 = UNC(strText)
       sTam2 = UNC(strTitle)

       hDlgHook = SetWindowsHookEx(WH_CBT, AddressOf HookProc, Application.Hinstance, GetCurrentThreadId())
       MsgBoxW = MessageBoxW([COLOR="#FF0000"]Application.hWnd[/COLOR], StrPtr(sTam1), StrPtr(sTam2), iButtons Or MB_TASKMODAL)
End Function
 
Hàm MsgBoxW của bạn và Nguyễn Trung Tín có 2 vấn đề:

1. Thay thế chữ trên Button.
Ở đây các bạn dùng phương pháp FindWindow() thông qua label của các nút. Nếu Windows của bạn chạy với ngôn ngữ English thì sẽ tìm được còn với ngôn ngữ khác thì hàm FindWindow() sẽ không tìm thấy, vì label của các button không còn là "Ok", "Yes",...
-->Giải pháp là phải tìm theo ID của Button.

2. Biến hFont không được giải phóng ==> Lỗi nghiêm trọng!
Biến hFont nhận handle của font chữ tạo bởi hàm CreateFont(), khi đó Windows sẽ quản lý handle này trong Resource. Nhưng khi không dùng đến các bạn không có lệnh nào giải phóng nó, điều này dấn đến bộ nhớ của Windows bị chiếm dụng. Mà trong một ứng dụng hàm MsgBoxW sẽ được dùng rất nhiều lần, mỗi lần bật lên là một lần chiếm dụng bộ nhớ, đến lúc nào đó Windows chạy sẽ chậm và treo!
-->Giải pháp dùng hàm DestroyObject() để giải phóng hFont khi không còn dùng đến.

Còn vấn đề về Add-in, bạn không nên đặt chữ lên Application.Caption, ví Excel được dùng để chạy nhiều Add-in khác cũng như các pm khác nữa.

Cám ơn anh Tuân đã hướng dẫn, chỉ dạy, vậy theo Anh, cái hàm dưới đây phải sửa như thế nào để nó tìm theo ID và gán DestroyObject() như thế nào để giải phóng bộ nhớ ạ?
PHP:
Option Explicit
Public hDlgHook As Long

Private Const FONT_FACE = "Verdana"

Public Const WH_CBT = 5
Private Const HCBT_ACTIVATE = 5
Private Const WM_SETFONT = &H30
Private Const MB_TASKMODAL = &H2000&

Public Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal h As Long, ByVal W As Long, ByVal e As Long, _
                                                                    ByVal o As Long, ByVal W As Long, ByVal i As Long, ByVal u As Long, ByVal s As Long, ByVal c As Long, _
                                                                    ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long

Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal ParenthWnd As Long, _
                                                                         ByVal ChildhWnd As Long, ByVal ClassName As String, ByVal Caption As String) As Long

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, _
                                                                                 ByVal lpfn As Long, ByVal hMod As Long, ByVal dwThreadId As Long) As Long

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, _
                                                     ByVal wParam As Long, ByVal lParam As Long) As Long

Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
                                                                       ByVal wParam As Long, lParam As Any) As Long

Public Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Public Declare Function SetWindowTextW Lib "user32" (ByVal hWnd As Long, ByVal lpString As Long) As Long

Public Declare Function MessageBoxW Lib "user32.dll" (ByVal hWnd As Long, ByVal lpText As Long, _
                                                      ByVal lpCaption As Long, ByVal uType As Long) As Long
PHP:
Private Function HookProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
       Dim hStatic1 As Long, hStatic2 As Long, hButton As Long, hFont As Long
       HookProc = CallNextHookEx(hDlgHook, nCode, wParam, lParam)
       If nCode = HCBT_ACTIVATE Then
              hFont = CreateFont(15, 0, 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, 0, FONT_FACE)

              hStatic1 = FindWindowEx(wParam, 0&, "Static", vbNullString)
              hStatic2 = FindWindowEx(wParam, hStatic1, "Static", vbNullString)
              If hStatic2 = 0 Then hStatic2 = hStatic1
              SendMessage hStatic2, WM_SETFONT, hFont, ByVal 1&

              hButton = FindWindowEx(wParam, 0&, "Button", "OK")
              SendMessage hButton, WM_SETFONT, hFont, 0
              SetWindowTextW hButton, StrPtr(UNC("&§ång ý"))

              hButton = FindWindowEx(wParam, 0&, "Button", "&Yes")
              SendMessage hButton, WM_SETFONT, hFont, 0
              SetWindowTextW hButton, StrPtr(UNC("&Cã"))

              hButton = FindWindowEx(wParam, 0&, "Button", "&No")
              SendMessage hButton, WM_SETFONT, hFont, 0
              SetWindowTextW hButton, StrPtr(UNC("&Kh«ng"))

              hButton = FindWindowEx(wParam, 0&, "Button", "Cancel")
              SendMessage hButton, WM_SETFONT, hFont, 0
              SetWindowTextW hButton, StrPtr(UNC("&Hñy bá"))

              hButton = FindWindowEx(wParam, 0&, "Button", "&Retry")
              SendMessage hButton, WM_SETFONT, hFont, 0
              SetWindowTextW hButton, StrPtr(UNC("&Thö l¹i"))

              hButton = FindWindowEx(wParam, 0&, "Button", "&Ignore")
              SendMessage hButton, WM_SETFONT, hFont, 0
              SetWindowTextW hButton, StrPtr(UNC("&Lê ®i"))

              hButton = FindWindowEx(wParam, 0&, "Button", "&Abort")
              SendMessage hButton, WM_SETFONT, hFont, 0
              SetWindowTextW hButton, StrPtr(UNC("&Xua61t ra *.txt"))

              hButton = FindWindowEx(wParam, 0&, "Button", "Help")
              SendMessage hButton, WM_SETFONT, hFont, 0
              SetWindowTextW hButton, StrPtr(UNC("Gióp ®ì"))

              UnhookWindowsHookEx hDlgHook
       End If
End Function

PHP:
Public Function MsgBoxW(strText As String, Optional iButtons As VbMsgBoxStyle = vbOKOnly, Optional strTitle As String, _
                        Optional hWnd As Long = &H0) As VbMsgBoxResult
       Dim sTam1 As String, sTam2 As String

       sTam1 = UNC(strText)
       sTam2 = UNC(strTitle)

       hDlgHook = SetWindowsHookEx(WH_CBT, AddressOf HookProc, Application.Hinstance, GetCurrentThreadId())
       MsgBoxW = MessageBoxW(Application.hWnd, StrPtr(sTam1), StrPtr(sTam2), iButtons Or MB_TASKMODAL)
End Function

Cám ơn Anh Tuân rất nhiều!
 
Trong hàm HookProc có đoạn khai báo hFont As Long, hãy xóa nó và khai báo lại trên đầu module với 2 dòng khai báo dưới đây:
Mã:
Public Declare Function DeleteObject Lib "gdi32" Alias "DeleteObject" (ByVal hObject As Long) As Long
Public hFont As Long [COLOR="#008000"]'Lưu giá trị handle của font đã tạo[/COLOR]
Hàm MsgBoxW bổ sung lệnh DeleteObject để giải phóng hFont
Mã:
Public Function MsgBoxW(strText As String, Optional iButtons As VbMsgBoxStyle = vbOKOnly, Optional strTitle As String, _
                        Optional hWnd As Long = &H0) As VbMsgBoxResult
       Dim sTam1 As String, sTam2 As String

       sTam1 = UNC(strText)
       sTam2 = UNC(strTitle)

       hDlgHook = SetWindowsHookEx(WH_CBT, AddressOf HookProc, Application.Hinstance, GetCurrentThreadId())
       MsgBoxW = MessageBoxW(Application.hWnd, StrPtr(sTam1), StrPtr(sTam2), iButtons Or MB_TASKMODAL)
[COLOR="#FF0000"]       DeleteObject hFont[/COLOR]
End Function


Còn vấn đề tìm handle của Button bởi ID của nó tác giả hãy nghiên cứu tìm cách xem.
 
Bạn ngọc lan cho mình hỏi. Làm sao để khi chuyển Add-in đi chỗ khác thì vẫn tiếp tục dùng được, hiện tại chương trình đang báo lỗi và không cho sử dụng, do lúc mới tải về chạy thử mình để vị trí khác. Không lẽ chỉ do chạy lần đầu là mãi mãi không chuyển được file đi hay sao?. Cảm ơn bạn!
 

File đính kèm

  • Picture1.png
    Picture1.png
    6.8 KB · Đọc: 405
Chắc đó chỉ là những giá trị của các nút của Button thui bạn ạ. Chắc phen nầy mình phải học các hàm API của Win thôi chứ ý thầy tuân chắc là muốn bọn mình tự nghiên cứu phát triển không được ỷ lại đó mà. Mình cùng cố gắng nhé!!!!!!!!!!!!
 
Bạn ngọc lan cho mình hỏi. Làm sao để khi chuyển Add-in đi chỗ khác thì vẫn tiếp tục dùng được, hiện tại chương trình đang báo lỗi và không cho sử dụng, do lúc mới tải về chạy thử mình để vị trí khác. Không lẽ chỉ do chạy lần đầu là mãi mãi không chuyển được file đi hay sao?. Cảm ơn bạn!
Bạn ptlong04x1 xin chờ chút nhé chắc đến chiều mình cập nhật bản mới sẽ bỏ các thao tác đăng ký và cho phép người dùng sử dụng nhưng dưới mật khẩu phân quyền của người cài đặt sử dụng nó. Mà khi viết đề tài này mình đã ghi rõ muốn mọi người cùng nhau phát triển để tiện dụng nhất khi sử dụng Excel mà!!!!!!!!!!!!!!! hãy nghiên cứu và phát triển lên đi bạn
 
Mình đã sửa lại rồi đây bạn nào Test thử cho mình ý kiến nhé!
Chỉ cần Copy toàn bộ Folder vào bộ Add-ins gốc thui nhớ xóa File cũ nhé!!!!!!!!!!!!!!!!!!!!
Mình đã gửi file mới tại đầu trang. Mọi người hãy vào đó và tải nhé
 
Lần chỉnh sửa cuối:
Code cũ là:

Sửa lại, thêm Application.hWnd vào đối số đầu tiên của hàm MessageBoxW

Mã:
Public Function MsgBoxW(strText As String, Optional iButtons As VbMsgBoxStyle = vbOKOnly, Optional strTitle As String, _
                        Optional hWnd As Long = &H0) As VbMsgBoxResult
       Dim sTam1 As String, sTam2 As String

       sTam1 = UNC(strText)
       sTam2 = UNC(strTitle)

       hDlgHook = SetWindowsHookEx(WH_CBT, AddressOf HookProc, Application.Hinstance, GetCurrentThreadId())
       MsgBoxW = MessageBoxW([COLOR=#FF0000]Application.hWnd[/COLOR], StrPtr(sTam1), StrPtr(sTam2), iButtons Or MB_TASKMODAL)
End Function


Xin lỗi, lại phiền Anh Tuân thêm lần nữa là khi ta dùng Application.hWnd để thay cho số 0, khi sử dụng Form có dùng cái Msgbox này, nếu click chuột vào Form thì cái msgbox này ẩn sau cái Form, nếu Form lớn hơn cái msgbox thì không thấy luôn, giống như ta dùng Form với thuộc tính ShowModal=False vậy!

Cho em hỏi có cách nào khắc phục chỉ cho phép chọn lựa trên msgbox khi nó hiện ra (giống như các msgbox khác) và chỉ khi nó thoát mới thao tác được trên form/sheet?
 
Tôi đang dùng Office Excel 2010, đã tải add-in chuyển font về máy nhưng khi trỏ tới add-in thì Excel tự động tắt, không hiểu nguyên nhân gì. Xin các bạn chỉ giúp.
 
Chào các anh chị trên diễn đàn trong vài tháng trước em có tự viết cho mình một Addins Hỗ trợ tốt trong Excel em muốn tự mình viết thêm nữa (đam mê và yêu thích bảng tính diệu kỳ) nhưng thời gian này em rất bận không thể viết thêm được nay muốn gửi File này lên diễn đàn để mọi người tiếp tục phát triển
Hiện mình đã thay đổi lại link:

Chúc các bạn có thể thao tác dễ dàng hơn với Microsoft Office Excel (Bảng tính diệu kỳ ) mong các bạn hãy phát triển nó thêm để ngày càng hoàn thiện Thank!
Một tệp là bộ cài còn một tệp là file "xla"

Nhờ bác giúp em cách chạy trên phiên bản Office 2010 được không ah, em cài nhưng nó không chạy được bác ah (trong phiên bản 2003 chạy rất tốt)
 
Đây là một bộ tiện ích rất đầy đủ, sắp xếp khoa học. Giúp ích cho mọi người rất nhiều.
Tuy nhiên, em thấy có 3 tính năng nổi bật của Add_Ins mà mọi người hay dùng là:

1) Chuyển Font chữ : (cái này của bác rất tốt), đảm bảo vẫn giữ nguyên định dạng, công thức; chuyển cho nhiều Sheet, nhiều file một lúc

2) Về đọc số thành chữ: Theo cá nhân em thì có lẽ nên sửa lại một chút:
Em xin ví dụ một trường hợp cụ thể: Đọc số thành chữ của số tiền 100.000 đồng thì tiện ích sẽ đọc là Bằng chữ : Một trăm ngàn không trăm (đồng chẵn).

Theo em có lẽ nên sửa 3 điểm sau:
i) (đồng chẵn) không nên để trong dấu ngoặc vì ít có văn bản nào thể hiện dưới dạng này có lẽ nên sửa thành đồng thôi.

ii) Em làm việc với nhiều nơi, nhiều đối tác bảo tiếng Việt không có chữ ngàn mà chỉ có chữ nghìn thôi.

iii) Trong ví dụ này thì có vẻ như không trăm rườm rà, ta nên bỏ đi.

Tức dòng trên sẽ được sửa như sau:
Bằng chữ : Một trăm nghìn đồng chẵn.

3) Sắp xếp họ và tên theo Tiếng Việt: Cái này rất cần thiết, hiện tiện ích chưa có chức năng này nếu bổ sung được cái này thì tốt quá.

Ngoài ra, cá nhân em thấy cái nữa cũng rất hay đó là lệnh khi lựa chọn bảng, lập tức lệnh đó nó sẽ xóa bỏ những ô trắng rác được mọi người đề cập trong bài http://www.giaiphapexcel.com/forum/showthread.php?23625-Code-xoá-rác-trắng-trong-bảng-tính& thì quá hay.

Xin cảm ơn bác rất nhiều
 
Lần chỉnh sửa cuối:
Xin lỗi, lại phiền Anh Tuân thêm lần nữa là khi ta dùng Application.hWnd để thay cho số 0, khi sử dụng Form có dùng cái Msgbox này, nếu click chuột vào Form thì cái msgbox này ẩn sau cái Form, nếu Form lớn hơn cái msgbox thì không thấy luôn, giống như ta dùng Form với thuộc tính ShowModal=False vậy!

Cho em hỏi có cách nào khắc phục chỉ cho phép chọn lựa trên msgbox khi nó hiện ra (giống như các msgbox khác) và chỉ khi nó thoát mới thao tác được trên form/sheet?

Đầu module khai báo hàm API
Mã:
Declare Function GetActiveWindow Lib "user32" () As Long

Hàm này sẽ nhận Handle của Window hiền thời/đang hoạt động. Và ta có thể dùng trong các tham số hWnd của các hàm.
Mã:
MsgBoxW = MessageBoxW(GetActiveWindow,  ...)
 
2) Về đọc số thành chữ: Theo cá nhân em thì có lẽ nên sửa lại một chút:....
3) Sắp xếp họ và tên theo Tiếng Việt: Cái này rất cần thiết, hiện tiện ích chưa có chức năng này nếu bổ sung được cái này thì tốt quá.
Ngoài ra, cá nhân em thấy cái nữa cũng rất hay đó là lệnh khi lựa chọn bảng, lập tức lệnh đó nó sẽ xóa bỏ những ô trắng rác được mọi người đề cập trong bài http://www.giaiphapexcel.com/forum/showthread.php?23625-Code-xoá-rác-trắng-trong-bảng-tính& thì quá hay.

Cảm ơn bạn đã quan tâm và góp ý
về việc đọc số thành chữ thì ở mỗi miền có một cách đọc khác nhau mình cũng không dám bàn!
Ngay từ đầu topic mình đã nói: "nay muốn gửi File này lên diễn đàn để mọi người tiếp tục phát triển "
Các hàm mà sử dụng trong Addins mình để trong Module: "MyFunctions" bạn có thể sửa trong đó cho phù hợp với công việc của bạn!
hiện nay mình cũng hơi bận nên thêm phần: Sắp xếp họ và tên theo Tiếng Việt mình sẽ cố gắng tích hợp vào sớm!
P/S:
Cảm ơn mọi người đã đóng góp ý kiến!
Ngay đầu topic mình đã nói muốn mọi người cùng phát triển Addin này phục vụ tốt cho công việc khi sử dụng Excel mà sao từ đầu tới giờ chẳng thấy ai chung tay nâng cấp nó nên nhỉ?(Mình muốn mọi thứ đều mã mở cho mọi người cùng phát triển- có gì mình nói sai mong mọi người bỏ qua)
 
Em chưa hiểu tác dụng của Folder Add-Ins Excel, nếu không có nó sẽ lỗi

Em chỉ nạp Add-Ins bình thường (em cứ tưởng Folder Addin-Excel đi kèm là thừa) nên em xoá đi, nhưng khi thao tác lập tức nó báo lỗi đường dẫn, em xin được bác chỉ giúp cho các file đi kèm trong Folder đó có tác dụng gì?

Bởi em thấy các ứng dụng trên diễn đàn chỉ cần Copy Add_Ins là đủ (không cần phải có 1 Folder nữa đi theo)./.
 
Em chỉ nạp Add-Ins bình thường (em cứ tưởng Folder Addin-Excel đi kèm là thừa) nên em xoá đi, nhưng khi thao tác lập tức nó báo lỗi đường dẫn, em xin được bác chỉ giúp cho các file đi kèm trong Folder đó có tác dụng gì?

Bởi em thấy các ứng dụng trên diễn đàn chỉ cần Copy Add_Ins là đủ (không cần phải có 1 Folder nữa đi theo)./.

Cơ chế của tiện ích Hỗ trợ Excel là bạn chỉ cài một file Add-ins.xla vào máy nhưng khi sử dụng thì tùy thao các marco mình thiết đặt có thể gọi các marco của các file trong thư mục đi kèm của mình
 
Mình không tải được File Ho tro Excel setup.rar. Các anh, chị tải được không ạ?
Vẫn cho lưu bình thường nhưng down về hết rồi thì báo như thế này ạ.
 

File đính kèm

Chào các anh chị trên diễn đàn trong vài tháng trước em có tự viết cho mình một Addins Hỗ trợ tốt trong Excel em muốn tự mình viết thêm nữa (đam mê và yêu thích bảng tính diệu kỳ) nhưng thời gian này em rất bận không thể viết thêm được nay muốn gửi File này lên diễn đàn để mọi người tiếp tục phát triển
Hiện mình đã thay đổi lại link:

Chúc các bạn có thể thao tác dễ dàng hơn với Microsoft Office Excel (Bảng tính diệu kỳ ) mong các bạn hãy phát triển nó thêm để ngày càng hoàn thiện Thank!
Một tệp là bộ cài còn một tệp là file "xla"

Chị phan
cho em hỏi khi em cài thêm addin của chị vào thì khi mở file Excel lên nó hiện ra bản thông báo " Đây là lần đầu tiên bạn cài tiện ích ..., sau đó em bấm Đồng ý, sau đo hiện ra bảng hướng dẫn sử dụng, kế tiếp là About và lieck tiếp đóng. Thì nó chỉ có hiện bảng hướng dẫn sử dụng không. Chứ không có vào nội dung của File.
Nhờ chị hướng dẫn giúp em. Mặc dù em là không phải cài thêm tiện ích lần đầu tiên, nhưng vẫn có thông báo " Lần đầu tiên cài tiện ích". Nếu em muốn vào xem nội dung file thì phải vào Open - > file mới được
Thân!

view
[/URL] [/IMG]
 
nhờ các anh sữa dùm em lỗi
Add-In Hỗ trợ Excel1544854893948.png
 
@congchivo
Đọc cách sau hiểu và tự sửa nhé
Mã:
#If VBA7 Then
' Copy 1 lần nữa các Api màu đỏ vào đây , Thay đổi bằng cách thêm PtrSafe
       'Public Declare PtrSafe Function
#Else
      ' Để Api bị tô đỏ trước đó vào đây
#End If
 
Cảm ơn anh, em làm theo nhưng báo lỗi nhiều quá. nhờ anh sữa giúp file này cho em nhé
 

File đính kèm

@congchivo
Có những API 32bit dù có dùng tính tương thích ngược từ 64bit về 32 bit chúng cũng không hoạt động
Có trường hợp cần chuyển từ Long sang LongPtr cho WIN64 hoặc WIN32
Bạn cần chạy Debug để kiểm lỗi, lỗi tới đâu thì sửa tới đó. Người viết ứng dụng trên bỏ công sức. Bây giờ muốn lấy của người khác về dùng bạn cũng cần phải bỏ công sức
Không thì bạn cần phải chờ người đã Chuẩn hóa ứng dụng trên về 64bit chia sẽ file. Cái này chắc khó
 
Cảm ơn bạn đã nhắc nhở, vậy phiên bản này anh phan ngọc lân đã chia sẽ cho mọi người. thật sự giờ các bạn cũng dùng offic đời cao cả, win10 64 bit nên viif vậy anh phan ngọc lân ắc có phiên bản 64bit. nếu anh không phiền hãy chia sẽ cho mọi người nhé... Cảm ơn anh trước. sữa một chương trình khủng không phải dễ... trình độ tôi có hạn chế nhiều. chân thành cảm ơn
 
@congchivo
Tôi không thể sửa cho bạn cả một ứng dụng.

Bạn có thể sửa theo cách tôi hướng dẫn:

"Public Declare Function ..." đang tương thích với win32 thêm "PtrSafe" để tương thích win64 "Public Declare PtrSafe Function ..."

Nếu biến gọi một Callback Function nên nó phải là LongLong / LongPtr / Any
Trong code sẽ có một Function được gọi bởi Hàm API (Ví dụ dưới SetTimerhàm API) , Function này gọi là hàm thực thi của Hàm API
Thì biến (Ví dụ dưới lpTimerFunc gọi Function) gọi hàm này trong Hàm API phải có giá trị là 8byte cho Win64 (LongLong / LongPtr / Any)

Ví dụ nhé:
SetTimer hWnd:=<cái gì đó>, nIDEvent:=<cái gì đó>,uElapse:=<cái gì đó>, lpTimerFunc:=<đây chính là biến gọi Callback Function>
Gọi như thế nào? Ta có 1 Function A:

Mã:
Function A()
Msgbox "A"
End Function
Gọi như bên dưới thì Function A sẽ trở thành Hàm thực thi của SetTimer:
SetTimer hWnd:=<cái gì đó>, nIDEvent:=<cái gì đó>,uElapse:=<cái gì đó>, lpTimerFunc:=AddressOf A

Nếu trong code của bạn có các hàm tương tự như vậy thì sửa các biến gọi chúng thành As LongLong hoặc LongPtr hoặc Any với win64
Ví dụ bên dưới tôi đã sửa ByVal lpTimerFunc As LongLong cho win64 thay cho ByVal lpTimerFunc As Long cho win32
thường thì sửa thành LongPtr (gồm 4byte và 8byte), LongLong (8byte)
PHP:
'Ví dụ:
#If VBA7 And Win64 Then
'Public / Private
'có  PtrSafe để tương thích ngược với WinAPI 32bit
    Public Declare PtrSafe Function SetTimer Lib "USER32" (ByVal hWnd As LongLong, ByVal nIDEvent As LongLong, _
        ByVal uElapse As LongLong, ByVal lpTimerFunc As LongLong) As LongLong
#Else
    'Chứa các Hàm API bị lỗi ở Win64 để chạy trên Win32 / Office 32' không có  PtrSafe
    Public Declare Function SetTimer Lib "USER32" (ByVal hWnd As Long, ByVal nIDEvent As Long, _
        ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
# End If
 
CẢM ƠN ANH HESANBI EM CŨNG SỬA THEO HƯỚNG DẪN. NHƯNG CHƯƠNG TRÌNH VẪN KHÔNG CHẠY.
EM CHÂN THÀNH CẢM ƠN ANH. CHẮC EM CHỊU RỒI
 
CẢM ƠN ANH HESANBI EM CŨNG SỬA THEO HƯỚNG DẪN. NHƯNG CHƯƠNG TRÌNH VẪN KHÔNG CHẠY.
EM CHÂN THÀNH CẢM ƠN ANH. CHẮC EM CHỊU RỒI
Hướng dẫn rõ vậy mà vẫn khó à. Vậy hướng dẫn tiếp tục. Bạn chú ý nhé:
Trên thanh tác vụ trong cửa Sổ lập trình VBA bạn sẽ thấy "Debug" trong nó có "compile VBAproject".
Bạn cứ nhấp vào nó cho đến khi sửa hết lỗi. Cũng tuân theo quy tắt hướng dẫn trước của tôi.
Phần nào sửa không được bạn chụp hình gửi lên đây.
Lưu ý: Khi Debug compile VBAproject mà biến truyền vào một hàm API win 64 bị lỗi tức là nó sẽ nhận LongPtr hoặc Longlong
Chỉ cần sửa biến trong hàm API đó thành như vậy là được.

Lưu ý đăng bài: Bạn không sử dụng Nickname của tôi hoặc trả lời bài của tôi, thì tôi sẽ không bao giờ biết được bạn hỏi tôi
 
CẢM ƠN ANH HESANBI EM CŨNG SỬA THEO HƯỚNG DẪN. NHƯNG CHƯƠNG TRÌNH VẪN KHÔNG CHẠY.
EM CHÂN THÀNH CẢM ƠN ANH. CHẮC EM CHỊU RỒI
Tôi đã sửa Add-ins cho 32bit và 64bit, bạn tải về sử dụng nếu có lỗi thì chụp hình lỗi lên nhé
Còn lại các file Style Sheet khi mở lên sẽ báo lỗi, Bạn chạy Debug Compile để sửa lỗi
 

File đính kèm

Lần chỉnh sửa cuối:
Tôi đã sửa Add-ins cho 32bit và 64bit, bạn tải về sử dụng nếu có lỗi thì chụp hình lỗi lên nhé
Còn lại các file Style Sheet khi mở lên sẽ báo lỗi, Bạn chạy Debug Compile để sửa lỗi
Anh ơi, em tải về khi click vào nó báo lỗi lưu đường dẫn của file.
 
Lần chỉnh sửa cuối:
Các anh cho em hỏi: bị lỗi này, sửa sao cho add in chạy trên office16 x64 vậy ạ ?
 

File đính kèm

  • 212.png
    212.png
    226.7 KB · Đọc: 79
Tôi đã sửa Add-ins cho 32bit và 64bit, bạn tải về sử dụng nếu có lỗi thì chụp hình lỗi lên nhé
Còn lại các file Style Sheet khi mở lên sẽ báo lỗi, Bạn chạy Debug Compile để sửa lỗi
Bác ơi, 2019 có xài được không bác? em cài vào không thấy gì hết
 
Addin này đúng là ko dùng được nữa.
 
Em hỏi chút các anh chị ơi!
Trong Addin có phần xuất vùng Range ra file ảnh. Em muốn lấy phần này sang file khác chạy bị báo lỗi chỗ này, mong anh chị chỉ giúp ạ
' Create new workbook
Set TempBook = Workbooks.Add

' Copy the empty chart from this file, past it to the TempBook
ThisWorkbook.Sheets(1).ChartObjects(1).Copy
TempBook.Sheets(1).PasteScreenshot 2021-01-02 165647.png



Screenshot 2021-01-02 165704.png
 

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

Back
Top Bottom