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

Liên hệ QC

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

Manhhungstone

Thành viên mới
Tham gia
13/4/10
Bài viết
31
Được thích
4
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/
 

File đính kèm

Xin hướng mọi người hướng dẫn giùm à/
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
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
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.
 

File đính kèm

Upvote 0
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.
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
 

File đính kèm

Upvote 0
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.
 
Upvote 0
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.
Xem hình dưới đây nhé

untitled..JPG

(Hy vọng là bạn hiểu và làm tiếp được... Hic...)
 
Upvote 0
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
 

File đính kèm

Upvote 0
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
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, ":")(0) Then 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
 

File đính kèm

Upvote 0
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/
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
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/
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, ":")(0) Then 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)
 

File đính kèm

Upvote 0
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 !
 

File đính kèm

  • B.xls
    B.xls
    57.5 KB · Đọc: 82
Lần chỉnh sửa cuối:
Upvote 0
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 !
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 ý
 
Lần chỉnh sửa cuối:
Upvote 0
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 !
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
 
Upvote 0
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é!
 
Upvote 0
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
 
Upvote 0
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
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
 

File đính kèm

Upvote 0
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!!!
 
Upvote 0
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!!!
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ử
 
Upvote 0
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
 
Upvote 0
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
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
 
Upvote 0

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Upvote 0

File đính kèm

Upvote 0
Sẵn tiện các anh, chị có thể hướng dẫn giúp em cách tạo nút bấm trên bảng tính excel để liên kết với 1 workbook khác được không ạ. Em xin chân thành cảm ơn.
 
Upvote 0
ndu đã viết:
Không cần viết thêm sub đâu, sửa lại sub Main 1 chút là được:

Hic bác ơi e làm theo bác nhưng giờ các nút nào chưa kịp "assign macro" mà nhấn ra ngoài nó đã biến mất rồi!
- Như vậy nó có tự xoá không hay mình phải ra tay và ra tay như thế nào để xoá
- Các button khác trong sheet muốn độc lập thực hiện 1 việc như không được mà toàn tự biến mất, phải assign macro main
 
Lần chỉnh sửa cuối:
Upvote 0
Hic bác ơi e làm theo bác nhưng giờ các nút nào chưa kịp "assign macro" mà nhấn ra ngoài nó đã biến mất rồi!
- Như vậy nó có tự xoá không hay mình phải ra tay và ra tay như thế nào để xoá
- Các button khác trong sheet muốn độc lập thực hiện 1 việc như không được mà toàn tự biến mất, phải assign macro main
Bạn nói cụ thể tí đi, chưa hiểu lắm
 
Upvote 0
Bạn ndu96081631 ơi, mình thấy cách bạn làm rất hay. Mình muốn hỏi bạn 1 xíu. Giả sử mình bấm vào nút control, thay vì nó chạy đến 1 sheet thì có cách nào mà làm cho nó lấy dữ liệu trên 1 sheet và xuất hiện ngay bên nút control k? Bạn xem giúp mình với! Tks bạn!
 
Upvote 0
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
Chào bác ndu chuyên gia GPE!
Nhờ bạn chỉ giúp các code sau:
-Tạo một nút đưa chuột về: cuối trang, lên đầu trang, về trang (Page) nào đó theo chỉ định (Nút bấm đi theo màn hình thì hay biết mấy).
-Tạo nút về trang chính (nút có tên tiếng anh là bach.. hay gì đó).
 
Lần chỉnh sửa cuối:
Upvote 0
Không ai ghé thăm! Bác NDU cũng không..! Chắc phải sửa lại lối viết " ở trên giống như mình đang ra lệnh".
 
Upvote 0
Không ai ghé thăm! Bác NDU cũng không..! Chắc phải sửa lại lối viết " ở trên giống như mình đang ra lệnh".
Không phải vậy!
Là vì không hiểu mấy yêu cầu của bạn
Sao bạn không thiết kế sẵn file rồi đưa lên đây (ghi rõ yêu cầu vào file)
 
Upvote 0

File đính kèm

Upvote 0
Upvote 0
Trong file bạn hỏi:

Bài 1 đã hướng dẫn rõ ràng rồi còn gì ---> Cứ thế mà làm thôi
Còn cái vụ bấm để di chuyển về 1 trang nào đó thì tôi không biết
Bác giúp tý đi!
- Nút xuống dòng dưới cùng của trang..ấy mà.
- Sang các Sheet rồi thì phải quay về (nút về trang, về lại trang A chẳng hạn)
 
Upvote 0
- Sang các Sheet rồi thì phải quay về (nút về trang, về lại trang A chẳng hạn)
Ah... xin lỗi, tôi lộn... Phải là bài 1 của topic này mới đúng:
http://www.giaiphapexcel.com/forum/showthread.php?37055-Tạo-nút-nhấn-để-link-đến-các-sheet
-------------------------------------------------
- Nút xuống dòng dưới cùng của trang..ấy mà.
Cái này thì tôi chẳng biết làm thế nào cả ---> Thôi thì bạn cứ bấm Ctrl + mũi tên xuống vậy!
 
Upvote 0
-Tạo một nút đưa chuột về trang (Page) nào đó theo chỉ định (Nút bấm đi theo màn hình thì hay biết mấy).
-Tạo nút về trang chính (nút có tên tiếng anh là bach.. hay gì đó).

Có cần thiết phải dùng Nút bấm trôi được hay không?. Excel là phần mềm bảng tính, có cần phải bảo nó biểu diển không?

Trong trang DATA bạn đã Freeze Panes rồi, chỉ cần đặt Nút ở cửa sổ cố định là xong thôi.

Ở đây mình không sử dụng Butons mà là AutoShape (có trong file của Bạn đó) và Mình góp ý thế này: trang DATA là Trang chính, tại trang này có n AutoShape để đến n Trang khác (Trang phụ) còn mỗi Trang phụ chỉ cần 1 AutoShape DATA (về trang DATA thôi).

Cứ mỗi AutoShape Bạn cần làm 2 bước sau (tương tự như Bác ndu96081631 đã nói phần trên rồi):
a) Gõ nhãn của AutoShape 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

Trên trang DATA Mình chỉ tạo 2 nút Cong_manh (để về trang Cong_manh) và Dem_manh thôi, các nút khác bạn làm tương tự.

Trên các Trang phụ ví dụ trang Cong_manh tạo 1 nút "Về DATA" có nhãn là DATA, Assign Macro chọn GotoSh. Bạn chỉ cần copy nút này dán vào các trang khác là xong - tự bạn làm để biết nhé.

Góp ý thêm: các AutoShape của Bạn khi in ra sẽ có trên trang tài liệu còn các AutoShape do mình tạo khi in ra không thấy. Cách làm: nhắp chuột phải vào AutoShape, chọn Format AutoShape\ Properties bỏ chọn trong hộp Print object.

File đính kèm: http://www.4shared.com/rar/DFzqn2Ht/Nho_tao_nut_bam_xong.html
 
Lần chỉnh sửa cuối:
Upvote 0
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
Em có áp dụng bài #16 và kết hợp thêm chế độ ẩn sheet
Ngoài các code bài 16, em có thêm các code sau
Mã:
Sub ShowAllShs_T()
    Dim sh As Worksheet
    Application.ScreenUpdating = False
    On Error Resume Next
    With Sheet3.shapes("Button 91").TextFrame.Characters
        For Each sh In ThisWorkbook.Worksheets
            If sh.name <> "Main" Then
            'sh.Visible = .text = "SHOW ALL"
                sh.Visible = (.text = "SHOW ALL") + 2
            End If
        Next
        .text = IIf(.text = "SHOW ALL", "HIDE ALL", "SHOW ALL")
    End With
    Application.ScreenUpdating = True
End Sub
Mã:
Sub Auto_Open()
    Dim wks As Worksheet, shp1 As Shape
    Set wks = Worksheets("Main")
    Set shp1 = wks.shapes("Button 91")
    If shp1.TextFrame.Characters.text = "HIDE ALL" Then ShowAllShs_T
End Sub
Khi đang chế độ ẩn Sheet thì khi chọn nút con (nút để Link đến các sheet) thì không thể nhảy đến sheet cần đến? Mà fải bật Show All (ở trong nút "Sổ Chi Tiết") thì nó mới chịu nhảy đến sheet em muốn!
---
Ý em muốn khi đang ở chế độ ẩn thì khi chọn nút con để có thể Link đến Sheet cần đến được không?
********************
Câu hỏi 2: Tại sheet "Main" khi em Khi em tạo khoảng 80 nút (vừa nút cha vừa nút con) thì không thể được, nó cho tạo khỏang 65 nút mà thôi, không biết có cách nào để tạo 80 nút nó trên?
Nếu tạo khoảng 80 nút thì code báo lỗi (chỗ em tô màu đỏ)
Mã:
Sub Reset()
  Dim shp As Shape
  With ActiveSheet
[COLOR=#ff0000][B]    .DrawingObjects.Visible = False[/B][/COLOR]
    For Each shp In .shapes
      If InStr(shp.OnAction, "Main_1") Then shp.Visible = True
    Next
  End With
End Sub
------------
Mong các Thầy cô & anh chị giúp em! Em cảm ơn
--------
P/s: Trường hợp không giải quyết được! xin cho em 1 ý kiến!
 

File đính kèm

Upvote 0
Sheet đang ẩn thì không thể select được.

[tip2= ]Code nào cũng để On Error Resume Next rồi không biết tại sao code không chạy đúng ý
Phải để code chạy tự do mới biết dòng lệnh nào lỗi, và lỗi gì để sửa chứ?
[/tip2]
 
Lần chỉnh sửa cuối:
Upvote 0
Câu hỏi 2: Tại sheet "Main" khi em Khi em tạo khoảng 80 nút (vừa nút cha vừa nút con) thì không thể được, nó cho tạo khỏang 65 nút mà thôi, không biết có cách nào để tạo 80 nút nó trên?
Nếu tạo khoảng 80 nút thì code báo lỗi (chỗ em tô màu đỏ)

Bỏ câu màu đỏ đi.

PHP:
Sub Reset()
  Dim shp As Shape
  With ActiveSheet
'    .DrawingObjects.Visible = False'
    For Each shp In .shapes
      If InStr(shp.OnAction, "Main_1") Then
        shp.Visible = True
      Else
        shp.Visible = False
      End If
    Next
  End With
End Sub

Tuy nhiên, nếu nhiều nút quá cửa sổ Main sẽ rối. Chẳng thà dùng 1 combobox hoặc listbox chọn tên sheet, rồi nhấn nút, thì chỉ 1 nút là đủ.
 
Lần chỉnh sửa cuối:
Upvote 0
Em có áp dụng bài #16 và kết hợp thêm chế độ ẩn sheet
Ngoài các code bài 16, em có thêm các code sau
Mã:
Sub ShowAllShs_T()
    Dim sh As Worksheet
    Application.ScreenUpdating = False
    On Error Resume Next
    With Sheet3.shapes("Button 91").TextFrame.Characters
        For Each sh In ThisWorkbook.Worksheets
            If sh.name <> "Main" Then
            'sh.Visible = .text = "SHOW ALL"
                sh.Visible = (.text = "SHOW ALL") + 2
            End If
        Next
        .text = IIf(.text = "SHOW ALL", "HIDE ALL", "SHOW ALL")
    End With
    Application.ScreenUpdating = True
End Sub
Mã:
Sub Auto_Open()
    Dim wks As Worksheet, shp1 As Shape
    Set wks = Worksheets("Main")
    Set shp1 = wks.shapes("Button 91")
    If shp1.TextFrame.Characters.text = "HIDE ALL" Then ShowAllShs_T
End Sub
Khi đang chế độ ẩn Sheet thì khi chọn nút con (nút để Link đến các sheet) thì không thể nhảy đến sheet cần đến? Mà fải bật Show All (ở trong nút "Sổ Chi Tiết") thì nó mới chịu nhảy đến sheet em muốn!
---
Ý em muốn khi đang ở chế độ ẩn thì khi chọn nút con để có thể Link đến Sheet cần đến được không?
********************
Câu hỏi 2: Tại sheet "Main" khi em Khi em tạo khoảng 80 nút (vừa nút cha vừa nút con) thì không thể được, nó cho tạo khỏang 65 nút mà thôi, không biết có cách nào để tạo 80 nút nó trên?
Nếu tạo khoảng 80 nút thì code báo lỗi (chỗ em tô màu đỏ)
Mã:
Sub Reset()
  Dim shp As Shape
  With ActiveSheet
[COLOR=#ff0000][B]    .DrawingObjects.Visible = False[/B][/COLOR]
    For Each shp In .shapes
      If InStr(shp.OnAction, "Main_1") Then shp.Visible = True
    Next
  End With
End Sub
------------
Mong các Thầy cô & anh chị giúp em! Em cảm ơn
--------
P/s: Trường hợp không giải quyết được! xin cho em 1 ý kiến!
Sửa thế này:
1> Thêm sự kiện cho Thisworkbook:
Mã:
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
  Sheets(Target.Name).Visible = -1
  Sh.Visible = 2
End Sub
2> Sửa lại code có sẵn:
Mã:
Sub Main_1()
  Dim shp As Shape, tmp
  On Error Resume Next
  Reset
  With ActiveSheet
    For Each shp In .shapes
      tmp = Split(shp.AlternativeText, ":")(0)
      If .shapes(Application.Caller).AlternativeText = tmp Then shp.Visible = True
    Next
    With Sheets(.shapes(Application.Caller).AlternativeText)
      .Visible = -1
      .Select
    End With
    .Visible = 2
  End With
End Sub
Sub GotoSh()
  Reset
  On Error Resume Next
  With ActiveSheet
    With Sheets(Split(.shapes(Application.Caller).AlternativeText, ":")(1))
      .Visible = -1
      .Select
    End With
    .Visible = 2
  End With
End Sub
3> Assign Macro lại lần nữa:
Riêng button Sổ Tổng Hợp, bạn hãy show các menu con rồi Assign Macro lại cho các menu con này đến Sub GotoSh nhé
--------------------------
Em cảm ơn Thầy
Em có thấy 1 bài của thầy Ndu mà khi ẩn thì vẫn chọn sheet được, em đã thử nhưng vẫn chưa được?
http://www.giaiphapexcel.com/forum/showthread.php?37055-Tạo-nút-nhấn-để-link-đến-các-sheet
Tại bạn không để ý thôi... Ẩn mà vẫn Select được là vì người ta cho sheet hiện ra trước ---> Bạn thiếu công đoạn này thì làm sao Select được
 
Lần chỉnh sửa cuối:
Upvote 0
Trời ơi!
Code ndu nè:

Mã:
[COLOR=#000000][COLOR=#0000BB]Sub Link2Sh[/COLOR][COLOR=#007700]()
  [/COLOR][COLOR=#0000BB]With ActiveSheet
    With Sheets[/COLOR][COLOR=#007700](.[/COLOR][COLOR=#0000BB]Shapes[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Caller[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]AlternativeText[/COLOR][COLOR=#007700])
      [/COLOR][/COLOR][COLOR=#ff0000].Visible = True:[/COLOR][COLOR=#000000][COLOR=#007700] .[/COLOR][COLOR=#0000BB]Select
    End With
    [/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Visible [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]2
  End With
End Sub  [/COLOR][/COLOR]
 
Upvote 0

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

Back
Top Bottom