Manhhungstone
Thành viên mới
![](/diendan/data/PhoToDanhHieu/gold.gif)
- Tham gia
- 13/4/10
- Bài viết
- 31
- Được thích
- 4
-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ì đó).
Em có áp dụng bài #16 và kết hợp thêm chế độ ẩn sheetThì 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
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
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
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
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 đỏ)
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
Em cảm ơn ThầySheet đang ẩn thì không thể select được.
Sửa thế này: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
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!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
---
Ý 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!
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Sheets(Target.Name).Visible = -1
Sh.Visible = 2
End Sub
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
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 đượcEm 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
[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]
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2