Hướng dẫn cách tạo menu nút bấm thêm đến nhiều sheet

Thảo luận trong 'Lập Trình với Excel' bắt đầu bởi Manhhungstone, 13 Tháng tư 2010.

  1. Manhhungstone

    Manhhungstone New Member

    Mình thấy bạn Manhhungmhnh gửi xin hỏi diễn đàn cách ẩn hiện menu đến sheet rất hay mình muốn làm như vậy nhưng khi mình thêm các mục nữa thì không biết làm nhờ mọi người hướng dẫn thêm nhé/ cảm ơn nhiều/
     

    Các file đính kèm:

  2. ndu96081631

    ndu96081631 Well-Known Member

    Tặng bạn code này:
    PHP:
    Sub Main()
      
    ActiveSheet.Buttons.Visible True
    End Sub
    PHP:
    Sub GotoSh()
      
    ActiveSheet.Buttons.Visible False
      ActiveSheet
    .Buttons("Cmd").Visible True
      Sheets
    (ActiveSheet.Buttons(Application.Caller).Characters.Text).Select
    End Sub
    Việc của bạn là:
    1> Vẽ 1 nút nhấn (nút này là nút nhấn chính), đặt tên cho nó là Cmd (đặt tên bằng cách chọn nút rồi gõ chữ Cmd vào hộp Name Box)... Tiếp theo, click phải vào nó, chọn Assign Macro, chọn macro có tên là Main rồi bấm OK
    2> Vẽ thêm các nút khác, bao nhiều nút tùy ý và:
    a) Gõ nhãn của nút trùng với tên sheet mà bạn muốn liên kết
    b) Click phải vào nó, chọn Assign Macro, chọn macro có tên là GotoSh rồi bấm OK
    ---------------------------
    Từ đây, cứ thêm nút thì hãy làm 2 bước a), b) ở trên là được
    Lưu ý:
    - Nhãn của nút là các ký tự ta gõ trên nút
    - Tên của nút được tạo bằng cách gõ vào hộp Name Box
    - Tên nhãn là hoàn toàn khác nhau
    - Tên của các nút con không được đặt trùng với nút chính (tên gì cũng được, trừ Cmd)
    - Chú ý các bước, đọc kỹ và thao tác chính xác mới cho kết quả đúng
     

    Các file đính kèm:

    Last edited: 13 Tháng tư 2010
  3. Manhhungstone

    Manhhungstone New Member

    Cảm ơn bạn nhiều/ cho mình hỏi thêm mình muốn lập một menu chính nữa có tên là sổ tổng hợp và củng khi nhấn vào cũng hiện ra các menu thực đơn để nhấn vào các sheet có tên cùng. nhờ bạn hướng dẫn hộ thêm nhé/ cảm ơn bạn nhiều.
     

    Các file đính kèm:

  4. ndu96081631

    ndu96081631 Well-Known Member

    Khó à nha! Vì khi ấy bạn lại phải viết thêm code
    PHP:
    Sub Main1()
      
    Dim Bt
      
    For Each Bt In ActiveSheet.Buttons
        
    If InStr(Bt.OnAction"GotoSh1"Then Bt.Visible True
      Next
    End Sub
    PHP:
    Sub Main2()
      
    Dim Bt
      
    For Each Bt In ActiveSheet.Buttons
        
    If InStr(Bt.OnAction"GotoSh2"Then Bt.Visible True
      Next
    End Sub
    PHP:
    Sub GotoSh1()
      
    ActiveSheet.Buttons.Visible False
      ActiveSheet
    .Buttons("Cmd1").Visible True
      ActiveSheet
    .Buttons("Cmd2").Visible True
      Sheets
    (ActiveSheet.Buttons(Application.Caller).Characters.Text).Select
    End Sub
    PHP:
    Sub GotoSh2()
      
    ActiveSheet.Buttons.Visible False
      ActiveSheet
    .Buttons("Cmd1").Visible True
      ActiveSheet
    .Buttons("Cmd2").Visible True
      Sheets
    (ActiveSheet.Buttons(Application.Caller).Characters.Text).Select
    End Sub
    Nếu thêm bộ "menu" nữa thì lại phải viết thêm 1 "cặp" code tương tự như trên
    Bạn tự nghiên cứu đi
     

    Các file đính kèm:

  5. Manhhungstone

    Manhhungstone New Member

    mình đã làm theo bạn nhưng mình không biết cách đặt tên vào hộp Name Box cho các nút bấm bấm ở đâu/ nhờ bạn hướng dấn giùm nhé trình độ excel còn non lắm/ cảm ơn bạn nhiều.
     
  6. ndu96081631

    ndu96081631 Well-Known Member

    Xem hình dưới đây nhé

    untitled..JPG

    (Hy vọng là bạn hiểu và làm tiếp được... Hic...)
     
  7. Manhhungstone

    Manhhungstone New Member

    Hướng Dẫn Ẩn hiện Hình ảnh trên thanh menu.

    Nhờ mọi người hướng dẫn có cách nào tạo biểu tượng hình ảnh ẩn và hiện theo thanh nenu đến sheet
     

    Các file đính kèm:

  8. ndu96081631

    ndu96081631 Well-Known Member

    Xem yêu cầu của bạn, tôi đã nghĩ là vô phương rồi... và dù có viết được code chạy cho file này thì cũng sẽ không tùy biến được khi bạn thêm nút
    Tối hôm qua mày mò và không ngờ đã "lượm được bí kiếp" ---> Xin hướng dẩn bạn làm theo 1 cách hoàn toàn mới
    --------------------------------------
    1> Bước 1: Vẽ hình
    Giả sử bạn đã vẽ được các nút như hình:

    untitled1..JPG

    2> Bước 2: Đánh dấu cho nút
    Click phải vào 1 nút con (có thể chọn 1 lần vừa nút con, vừa hình) rồi bấm Ctrl + 1, chuyển sang tab Web rồi gõ vào khung Alternative text từ khóa theo quy tắc: Tên nút chính:Tên sheet

    untitled2..JPG


    Lập lại thao tác trên cho tất cả các nút con

    3> Bước 3: Viết code
    Gồm có 2 đoạn:
    PHP:
    Sub Main()
      
    Dim Shp As Shape
      With ActiveSheet
        
    For Each Shp In .Shapes
          
    If .Shapes(Application.Caller).AlternativeText _
          Split
    (Shp.AlternativeText":")(0Then Shp.Visible True
        Next
      End With
    End Sub
    PHP:
    Sub GotoSh()
      
    Dim Shp As Shape
      With ActiveSheet
        
    .DrawingObjects.Visible False
        
    For Each Shp In .Shapes
          
    If InStr(Shp.OnAction"Main"Then Shp.Visible True
        Next
        Sheets
    (Split(.Shapes(Application.Caller).AlternativeText":")(1)).Select
      End With
    End Sub
    4> Bước 4: Assign Macro
    - Quét 1 lần tất cả các nút chính, click chuột phải, chọn Assign Macro rồi chọn macro có tên là Main
    - Quét 1 lần tất cả các nút con, click chuột phải, chọn Assign Macro rồi chọn macro có tên là GotoSh
    ----------------------------------
    Chú ý:
    - Đánh dấu chính xác, nếu gõ chữ vào khung Alternative text dù sai chỉ 1 từ thì code cũng sẽ bị lỗi (đương nhiên, vì code dựa vào đánh dấu này để phân biệt các nút và các nhóm với nhau
    - Với cách làm này, dù bạn có thêm bao nhiêu menu hay bao nhiêu nút con nữa thì code cũng chỉ 2 sub ấy thôi
     

    Các file đính kèm:

  9. Manhhungstone

    Manhhungstone New Member

    NHờ bạn xem giùm khi mình muốn tạo một menu mới bằng macro để vào sheet chỉ định trên nhưng khi mình nhấn vào nenu sheet trên sổ chi tiết hoặc tổng hợp thì nó tự động xoá hết các menu tạo mới của mình/ nhờ mọi người có cách nào khi nhấn vào nenu sheet trên sổ chi tiết hoặc tổng hợp thì không bị mất menu mới mình đã tạo( Mình kèm theo File) nhờ mọi người làm hộ/ xin cảm ơn/
     

    Các file đính kèm:

    Last edited: 16 Tháng tư 2010
  10. ndu96081631

    ndu96081631 Well-Known Member

    Không cần viết thêm sub đâu, sửa lại sub Main 1 chút là được:
    PHP:
    Sub Main()
      
    Dim Shp As Shape
      On Error Resume Next
      With ActiveSheet
        
    For Each Shp In .Shapes
          
    If .Shapes(Application.Caller).AlternativeText _
          Split
    (Shp.AlternativeText":")(0Then Shp.Visible True
        Next
        Sheets
    (.Shapes(Application.Caller).AlternativeText).Select
      End With
    End Sub
    Assign Macro nút Sổ Cái cho sub Main này (chú ý AlternativeText)
     

    Các file đính kèm:

  11. trihuu

    trihuu New Member

    Tiếp theo chủ đề " Tạo Menu nút bấm ....." của bạn Manhhungstone.
    Xin hỏi GPE : có thể tùy biến các nút lệnh HÌNH CHỮ NHẬT thành nút lệnh HÌNH TRÒN hoặc HÌNH OVALD
    được không ? Nếu được thì xin chỉ dẫn cách làm.
    Cảm ơn !
     

    Các file đính kèm:

    • B.xls
      Kích thước:
      57.5 KB
      Đọc:
      79
    Last edited: 6 Tháng sáu 2010
  12. ndu96081631

    ndu96081631 Well-Known Member

    Thì bạn muốn vẽ hình gì mà chẳng được... trong file bạn đang vẽ hình Oval đấy thôi
    -------------
    Xem topic này đi:
    Tạo nút nhấn để link đến các sheet
    Muốn Button tròn méo gì cứ tùy ý
     
    Last edited: 6 Tháng sáu 2010
  13. anhtotbung35

    anhtotbung35 New Member

    Theo file của bạn gửi thì, bạn đã vẽ hình oval rồi còn muốn cho nó thực hiện macro thì bạn click vào cuột phải -> Assign Macro -> trong ô Macro name -> Main1
     
  14. lam_phukhang

    lam_phukhang New Member

    Xin các anh hướng dẫn mình làm cái nút nhấn tăng thứ tự ô màu vàng phía trên trong file này với nhé. Cảm ơn!
    Tải file này xem giúp mình nhé!
     
  15. hphuc0210

    hphuc0210 New Member

    Em thấy bài này mới lạ và hay nên em xin tham gia 1 ý kiến :
    To anh ndu:Sau khi ta chọn vào 1 nút chính thì các nút con hiện ra vấn đề này anh làm rất hay,nhưng xin hỏi nếu như lúc ta lỡ chọn nút chính rồi nhưng không muốn chọn các nút con trong đó nữa thì làm sao để các nút con ẩn đi vậy thưa anh
     
  16. ndu96081631

    ndu96081631 Well-Known Member

    Thì sửa code lại tí thôi ---> Khi các nút con hiện ra, bạn chỉ cần chọn 1 cell bất kỳ trên sheet là các nút ấy sẽ ẩn lập tức
    Xem file
     

    Các file đính kèm:

  17. nmhung49

    nmhung49 Well-Known Member

    To Ndu: Cho em hỏi sao em tải file ở bài #8 mà khi mở lên không thấy biểu tượng hình ảnh excel trên đó ta, không lẽ máy em còn thiếu cái gì. Mong anh giúp cho hen thanks Ndu!!!
     
  18. ndu96081631

    ndu96081631 Well-Known Member

    Bạn tự mình thí nghiệm đi chứ, sao mà tôi biết được. Thí nghiệm bằng cách mang file sang máy khác mà thử
     
  19. nmhung49

    nmhung49 Well-Known Member

    Em biết rồi tại vì excel 2007 không thể hiện, mà excel 2003 lại thể hiện nghĩ cũng lạ thiệt đó không biết các bạn sài excel 2007 có bị giống em không nữa. Không biết có phải biểu tượng ảnh đó là là excel 2003 nên excel 2007 không thể hiện không ta
     
  20. ndu96081631

    ndu96081631 Well-Known Member

    Bạn thử chèn 1 Picure, xong thu nhỏ và đặt nó nằm trên Button xem có được không? Tôi làm làm thử mà không tài nào cho Picture nằm trên Button được! Rất buồn cười
    Sao mình ghết cái thằng Office 2007 này đến thế không biết
     

Chia sẻ trang này