đây là code gì vậy ? khi rê chuột vào add-ins trên toolbar thì nó hiện lên !!!!!

Liên hệ QC

cloudtifa

Thành viên mới
Tham gia
27/2/09
Bài viết
18
Được thích
2
em dùng Add-ins của thầy Nguyen Thanh Hai, thấy mỗi khi mình rê chuột lên thì nó hiện lên như vậy, cho em hỏi là trong VBA mình sử dụng codde963d9e63 được như vậy ạ :) . Em cám ơn !!!

tb.jpg
 
em dùng Add-ins của thầy Nguyen Thanh Hai, thấy mỗi khi mình rê chuột lên thì nó hiện lên như vậy, cho em hỏi là trong VBA mình sử dụng codde963d9e63 được như vậy ạ :) . Em cám ơn !!!

tb.jpg
Thử code này xem:
PHP:
Sub BuildCommandBar()
  On Error Resume Next
  Application.CommandBars(1).Controls("Tien ich").Delete
  With Application.CommandBars(1).Controls.Add(1, , , , 1)
    .Style = msoButtonCaption
    .Caption = "Tien ich"
    .TooltipText = "Lap trinh: Nguyen Thanh Hai"
  End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ thưa thầy cho em hỏi thêm là em muốn chèn đoạn code này vào menu của em như hình trên thì chèn vào đoạn nào ạ
Mã:
Sub BuildCommandBar()
  On Error Resume Next
  Application.CommandBars(1).Controls("Tien ich").Delete
  With Application.CommandBars(1).Controls.Add(1, , , , 1)
    .Style = msoButtonCaption
    .Caption = "Tien ich"
    .TooltipText = "Lap trinh: Nguyen Thanh Hai"
  End With
End Sub

Đoạn code Menu của em :

Mã:
Sub Auto_Open()
  Dim MyMenu As Long
  Auto_Close
   MyMenu = Application.MenuBars(xlWorksheet).Menus.Count + 1
  MenuBars(xlWorksheet).Menus.Add "Ch" & ChrW(432) & ChrW(417) & "ng " & "tr" & ChrW(236) & "nh " & "h" & ChrW(7895) & " tr" & ChrW(7907) & " CBSX ATO  "
  MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "T" & ChrW(7841) & "o " & "m" & ChrW(227) & " V" & ChrW(7841) & "ch Barcode", "fileOpen1"
  'MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "nhaäp döõ lieäu goác", "fileOpen2"
  'MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "lam nhan dan' hop", "fileOpen3"
  MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "thông tin", "fileOpen4"
  
End Sub

Sub Auto_Close()
  Application.CommandBars("Worksheet menu bar").Reset
End Sub
Sub fileOpen1()
  Shell "D:\3 code\barcode.exe", vbNormalFocus
End Sub
 
Upvote 0
Dạ thưa thầy cho em hỏi thêm là em muốn chèn đoạn code này vào menu của em như hình trên thì chèn vào đoạn nào ạ
Mã:
Sub BuildCommandBar()
  On Error Resume Next
  Application.CommandBars(1).Controls("Tien ich").Delete
  With Application.CommandBars(1).Controls.Add(1, , , , 1)
    .Style = msoButtonCaption
    .Caption = "Tien ich"
    .TooltipText = "Lap trinh: Nguyen Thanh Hai"
  End With
End Sub

Đoạn code Menu của em :

Mã:
Sub Auto_Open()
  Dim MyMenu As Long
  Auto_Close
   MyMenu = Application.MenuBars(xlWorksheet).Menus.Count + 1
  MenuBars(xlWorksheet).Menus.Add "Ch" & ChrW(432) & ChrW(417) & "ng " & "tr" & ChrW(236) & "nh " & "h" & ChrW(7895) & " tr" & ChrW(7907) & " CBSX ATO  "
  MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "T" & ChrW(7841) & "o " & "m" & ChrW(227) & " V" & ChrW(7841) & "ch Barcode", "fileOpen1"
  'MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "nhaäp döõ lieäu goác", "fileOpen2"
  'MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "lam nhan dan' hop", "fileOpen3"
  MenuBars(xlWorksheet).Menus(MyMenu).MenuItems.Add "thông tin", "fileOpen4"
  
End Sub

Sub Auto_Close()
  Application.CommandBars("Worksheet menu bar").Reset
End Sub
Sub fileOpen1()
  Shell "D:\3 code\barcode.exe", vbNormalFocus
End Sub
Cái của người ta chỉ là 1 cái nút nhấn, không phải là Menu đâu (bạn bấm nút chắc đâu thấy menu con bên trong, đúng không?).
Hai cái khác nhau hoàn toàn, đâu thể gộp chung được
Còn đối với 1 menu thật sự, tôi cũng chẳng biết làm cách nào để tạo ScreenTip như CommandBar cả
 
Upvote 0
Dạ tại em thấy trong cái Add-in của thầy Nguyen Thanh Hai cái CommandBar đó nó nằm trên menu luôn ạ, mỗi lần mình rê chuột lên thì nó hiện lên giống hình trên đó thầy. File đó nè thầy
http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=42155&d=1266908479

Cũng ráng làm 1 cái tương tự cho bạn:
PHP:
Sub Auto_Open()
  Dim cBarName As String, sBar1 As String, sBar2 As String, sBar3 As String
  cBarName = UniConvert("Chu7o7ng tri2nh ho64 tro75", "VNI") & " CBSX ATO  "
  sBar1 = UniConvert("Ta5o ma4 va5ch", "VNI") & " Barcode"
  sBar2 = UniConvert("Nha65p du74 lie65u go61c", "VNI")
  sBar3 = UniConvert("La2m nha4n da1n ho65p", "VNI")
  Auto_Close
  On Error Resume Next
  With Application.CommandBars(1).Controls.Add(10)
    .Caption = cBarName
    .TooltipText = UniConvert("La65p tri2nh: Nguye64n Anh Tua61n", "VNI")
    With .Controls.Add(1)
      .Caption = sBar1: .OnAction = "fileOpen1"
    End With
    With .Controls.Add(1)
      .Caption = sBar2: .OnAction = "fileOpen2"
    End With
    With .Controls.Add(1)
      .Caption = sBar3: .OnAction = "fileOpen3"
    End With
  End With
End Sub
Với sự hổ trợ của hàm UniConvert
PHP:
Function UniConvert(Text As String, InputMethod As String) As String
  Dim VNI_Type, Telex_Type, CharCode, Temp, i As Long
  UniConvert = Text
  VNI_Type = Array("a81", "a82", "a83", "a84", "a85", "a61", "a62", "a63", "a64", "a65", "e61", _
      "e62", "e63", "e64", "e65", "o61", "o62", "o63", "o64", "o65", "o71", "o72", "o73", "o74", _
      "o75", "u71", "u72", "u73", "u74", "u75", "a1", "a2", "a3", "a4", "a5", "a8", "a6", "d9", _
      "e1", "e2", "e3", "e4", "e5", "e6", "i1", "i2", "i3", "i4", "i5", "o1", "o2", "o3", "o4", _
      "o5", "o6", "o7", "u1", "u2", "u3", "u4", "u5", "u7", "y1", "y2", "y3", "y4", "y5")
  Telex_Type = Array("aws", "awf", "awr", "awx", "awj", "aas", "aaf", "aar", "aax", "aaj", "ees", _
      "eef", "eer", "eex", "eej", "oos", "oof", "oor", "oox", "ooj", "ows", "owf", "owr", "owx", _
      "owj", "uws", "uwf", "uwr", "uwx", "uwj", "as", "af", "ar", "ax", "aj", "aw", "aa", "dd", _
      "es", "ef", "er", "ex", "ej", "ee", "is", "if", "ir", "ix", "ij", "os", "of", "or", "ox", _
      "oj", "oo", "ow", "us", "uf", "ur", "ux", "uj", "uw", "ys", "yf", "yr", "yx", "yj")
  CharCode = Array(ChrW(7855), ChrW(7857), ChrW(7859), ChrW(7861), ChrW(7863), ChrW(7845), ChrW(7847), _
      ChrW(7849), ChrW(7851), ChrW(7853), ChrW(7871), ChrW(7873), ChrW(7875), ChrW(7877), ChrW(7879), _
      ChrW(7889), ChrW(7891), ChrW(7893), ChrW(7895), ChrW(7897), ChrW(7899), ChrW(7901), ChrW(7903), _
      ChrW(7905), ChrW(7907), ChrW(7913), ChrW(7915), ChrW(7917), ChrW(7919), ChrW(7921), ChrW(225), _
      ChrW(224), ChrW(7843), ChrW(227), ChrW(7841), ChrW(259), ChrW(226), ChrW(273), ChrW(233), ChrW(232), _
      ChrW(7867), ChrW(7869), ChrW(7865), ChrW(234), ChrW(237), ChrW(236), ChrW(7881), ChrW(297), ChrW(7883), _
      ChrW(243), ChrW(242), ChrW(7887), ChrW(245), ChrW(7885), ChrW(244), ChrW(417), ChrW(250), ChrW(249), _
      ChrW(7911), ChrW(361), ChrW(7909), ChrW(432), ChrW(253), ChrW(7923), ChrW(7927), ChrW(7929), ChrW(7925))
  Select Case InputMethod
    Case Is = "VNI": Temp = VNI_Type
    Case Is = "Telex": Temp = Telex_Type
  End Select
  For i = 0 To UBound(CharCode)
    UniConvert = Replace(UniConvert, Temp(i), CharCode(i))
    UniConvert = Replace(UniConvert, UCase(Temp(i)), UCase(CharCode(i)))
  Next i
End Function
Thử file đính kèm xem đúng ý chưa nha
(Lý ra phải tạo thêm các Icon cho các sub menu thì sẽ đẹp hơn)
 

File đính kèm

Upvote 0
nếu muốn có thêm icon thì mình phải viết thêm 1 đoạn code để chèn hình ảnh vô nữa hả thầy, em không phải dân lập trình, chỉ tự tìm tòi nên có nhiều cái hỏi chưa đúng ý ! có gì mong thầy bỏ qua cho ^.^ ( thầy có tài liệu nào về lập trình trong Excel thì chỉ cho em với! em cám ơn thầy nhiều :D )
 
Upvote 0
nếu muốn có thêm icon thì mình phải viết thêm 1 đoạn code để chèn hình ảnh vô nữa hả thầy, em không phải dân lập trình, chỉ tự tìm tòi nên có nhiều cái hỏi chưa đúng ý ! có gì mong thầy bỏ qua cho ^.^ ( thầy có tài liệu nào về lập trình trong Excel thì chỉ cho em với! em cám ơn thầy nhiều :D )
Thật ra chèn Icon chẳng phải khó khăn gì, chỉ là tốn công chọn Icon phù hợp thôi
Mã:
Sub Auto_Open()
  Dim MyMenu As Long, cBarName As String, sBar1 As String, sBar2 As String, sBar3 As String
  cBarName = UniConvert("Chu7o7ng tri2nh ho64 tro75", "VNI") & " CBSX ATO  "
  sBar1 = UniConvert("Ta5o ma4 va5ch", "VNI") & " Barcode"
  sBar2 = UniConvert("Nha65p du74 lie65u go61c", "VNI")
  sBar3 = UniConvert("La2m nha4n da1n ho65p", "VNI")
  Auto_Close
  On Error Resume Next
  With Application.CommandBars(1).Controls.Add(10)
    .Caption = cBarName
    .TooltipText = UniConvert("La65p tri2nh: Nguye64n Anh Tua61n", "VNI")
    With .Controls.Add(1)
      .Caption = sBar1: .OnAction = "fileOpen1": .FaceId = [COLOR=#ff0000][B]438[/B][/COLOR]
    End With
    With .Controls.Add(1)
      .Caption = sBar2: .OnAction = "fileOpen2": .FaceId = [B][COLOR=#ff0000]69[/COLOR][/B]
    End With
    With .Controls.Add(1)
      .Caption = sBar3: .OnAction = "fileOpen3": .FaceId = [B][COLOR=#ff0000]53[/COLOR][/B]
    End With
  End With
End Sub
Thay đổi các số màu đỏ ở trên cho phù hợp, hoặc có thể tra FaceId trong file dưới đây
 

File đính kèm

Upvote 0
Dạ thầy ơi, sao em add-ins của mình thì nó lại đè lân mấy cái add-ins khác, có cách nào để khi mở Add-ins thầy hướng dẫn em mà không bị mất các add khác không vậy thầy ! thank
 
Upvote 0
Dạ thầy ơi, sao em add-ins của mình thì nó lại đè lân mấy cái add-ins khác, có cách nào để khi mở Add-ins thầy hướng dẫn em mà không bị mất các add khác không vậy thầy ! thank
Bạn nói tôi chưa hiểu! Add-in khác ở đây là những gì? "Đè" nghĩa là thế nào nhỉ?
 
Upvote 0
Dạ ý em nói là e đã add-ins 1 flie *.xla vào Excel, và sao đó là em add-ins tiếp cái mà thấy hướng dẫn cho em làm, thì nó bị mất cái file *.xla trước,vậy có cách nào để mình add-ins cho nó chạy nhiều file *.xla được không thầy, hay là mình phải thêm code gì đó nữa :)
 
Upvote 0
Web KT

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

Back
Top Bottom