Manhhungstone
Thành viên mới

- Tham gia
- 13/4/10
- Bài viết
- 31
- Được thích
- 4
Tặng bạn code này:Xin hướng mọi người hướng dẫn giùm à/
Sub Main()
ActiveSheet.Buttons.Visible = True
End Sub
Sub GotoSh()
ActiveSheet.Buttons.Visible = False
ActiveSheet.Buttons("Cmd").Visible = True
Sheets(ActiveSheet.Buttons(Application.Caller).Characters.Text).Select
End Sub
Khó à nha! Vì khi ấy bạn lại phải viết thêm codeCả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.
Sub Main1()
Dim Bt
For Each Bt In ActiveSheet.Buttons
If InStr(Bt.OnAction, "GotoSh1") Then Bt.Visible = True
Next
End Sub
Sub Main2()
Dim Bt
For Each Bt In ActiveSheet.Buttons
If InStr(Bt.OnAction, "GotoSh2") Then Bt.Visible = True
Next
End Sub
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
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
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útNhờ 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
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
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
Không cần viết thêm sub đâu, sửa lại sub Main 1 chút là được: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/
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
Thì bạn muốn vẽ hình gì mà chẳng được... trong file bạn đang vẽ hình Oval đấy thôiTiế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 -> Main1Tiế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ì 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ứcEm 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
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ử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 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ườiEm 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
http://www.giaiphapexcel.com/showthread.php?p=305874#post305874 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é!
Cảm ơn bạn rất nhiều. Tuy nhiên mình mong bạn hướng dẫn mình tự làm được như bạn vậy. Chân thành cảm ơn bạn!Bạn xem đúng ý bạn không nhé
Cảm ơn bác đã hướng dẫn, mình đã làm theo nhưng vẫn không điều khiển được. Làm phiền bác cho em xin một hướng dẫn cụ thể hơn nhé! Cảm ơn thật nhiều!Cái này cần gì đến code hả viethoai? Vào Properties, chỉnh LinkedCell = A11 là được rồi
View attachment 62268
Bạn Xem hình đi, rồi sẽ rõ. ThânCảm ơn bác đã hướng dẫn, mình đã làm theo nhưng vẫn không điều khiển được. Làm phiền bác cho em xin một hướng dẫn cụ thể hơn nhé! Cảm ơn thật nhiều!
Cảm ơn các bạn thật nhiều, mình đã làm được rồi! Khi dán code xong mình phải nhấn run nữa thì nút nhấn mới điều khiển được. Thế mà mình cứ mò mẩm mãi. Cảm ơn tất cả!Bạn Xem hình đi, rồi sẽ rõ. Thân
Cái này dùng Hyperlink là được rồiSẵ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.
Cái này dùng Hyperlink là được rồi
ndu đã viết:Không cần viết thêm sub đâu, sửa lại sub Main 1 chút là được:
Bạn nói cụ thể tí đi, chưa hiểu lắmHic 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
Chào bác ndu chuyên gia GPE!Tặng bạn code này:
PHP:Sub Main() ActiveSheet.Buttons.Visible = True End Sub
Việc của bạn là:PHP:Sub GotoSh() ActiveSheet.Buttons.Visible = False ActiveSheet.Buttons("Cmd").Visible = True Sheets(ActiveSheet.Buttons(Application.Caller).Characters.Text).Select End Sub
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 và 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
Không phải vậy!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".
Cảm ơn! bác xem FileKhô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)
Trong file bạn hỏi:Cảm ơn! bác xem File
Bài 1 đã hướng dẫn rõ ràng rồi còn gì ---> Cứ thế mà làm thôiTạo nút bấm nút bấm chuyển sang các sheet trong wo,,b . Rồi từ các Sheet về trang này
Bác giúp tý đi!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
Ah... xin lỗi, tôi lộn... Phải là bài 1 của topic này mới đúng:- Sang các Sheet rồi thì phải quay về (nút về trang, về lại trang A chẳng hạn)
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!- Nút xuống dòng dưới cùng của trang..ấy mà.
Cảm ơn, thấy quê hơn bao giờ hết.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!
-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]