Hide, Unhide Button

Liên hệ QC

Hoksilato

Thành viên mới
Tham gia
4/3/08
Bài viết
5
Được thích
0
Mình đang cần làm 1 bảng tổng hợp thông tin. Để người xem không phải dùng đến thanh trượt đứng mình nghĩ sẽ dùng đến 1 cái button có công dụng hide và unhide 1 số dòng (giống cái button của bạn anhtuan1066 trong topic này).

Do hơi gấp (thứ 5 nộp bài rồi) nên không có thời gian nghiên cứu nên đành cầu cứu mọi người (mặc dù đã nghiên cứu qua topic này, nhưng vẫn chưa hiểu rõ lắm).

Ai giúp hướng dẫn giùm mình cách thức để thiết kế một button như vậy trong file excel.

- Code như thế nào ?
- Add nó vào sheet như thế nào ?

Hoặc nếu có cách nào để import cái button đó vào worksheet thì hướng dẫn dùm mình với nha.

Cám ơn mọi người nhiều. Bài đầu tiên mà đi nhờ vả thế này ^^!

Chỉ có cái thanh trượt thì không cần. Mục đích mình cần cái button đó là để cho nội dung cần đọc sẽ luôn ở page đầu tiên.

Hiện giờ thì mình đã có thể attach cái button của bạn vào văn bản được rồi (sau 1 hồi quậy phá). Tức là mình chỉnh cái macro security lên mức very high để cấm nó hoạt động, sau đó mình copy nó qua từng worksheet, và có lẽ sắp tới sẽ multiple thêm vài cái trong worksheet.

Nhưng chưa biết cách để làm ra cái button đó, cũng như cách attach nó vào từ code.

Cám ơn bạn rất nhiều :).
 
Chỉnh sửa lần cuối bởi điều hành viên:
Yêu cầu của bạn là:
1> Tạo 1 macro có tác dụng Hide Vertical Scroll bar
2> Tạo 1 macro có tác dụng Hide 1 số dòng nào đó
3> Tạo 1 Button đễ chạy macro
Vậy bạn xem nhé:
2 yêu cầu 1 và 2 hoàn toàn có thể làm dc bằng tay, thế thì bạn hảy Record macro quá trình thao tác bằng tay, sau đó chỉnh sửa lại tí là xong
Yêu cầu 3 thì càng dễ, click phải chuột trên thanh Toolbars, chọn Control Toolbox.. trong thanh này bạn sẽ thấy 1 nút có tên Command Button.. bấm vào nó rồi vẽ ra bảng tính là xong...
Tôi record macro sẽ dc đoạn code như sau:
PHP:
Sub Macro1()
    ActiveWindow.DisplayVerticalScrollBar = False
    Rows("14:17").EntireRow.Hidden = True
End Sub
Giờ thì bạn vẽ ra bảng tính cái Command Button ấy rồi click phải lên nó, chọn View code.. lấy code trên paste vào rồi chỉnh tí sẽ dc:
PHP:
Private Sub CommandButton1_Click()
   If Sheet1.CommandButton1.Caption = "Hide" Then
       ActiveWindow.DisplayVerticalScrollBar = False
       Rows("14:17").EntireRow.Hidden = True
       Sheet1.CommandButton1.Caption = "UnHide"
   Else:
       ActiveWindow.DisplayVerticalScrollBar = True
       Rows("14:17").EntireRow.Hidden = False
       Sheet1.CommandButton1.Caption = "Hide"
   End If
End Sub
Xem file! Ở đây tôi hide dòng 14 đến 17, bạn muốn khác thì hảy sửa tùy ý
ANH TUẤN
 

File đính kèm

Upvote 0
Cám ơn bạn rất nhiều :).

Mình có thắc mắc tí ^^ :
- Sau khi thực thi các macro kèm trong file excel, sau mỗi lần tắt file excel đều được hỏi có save lại không. Vậy mình có thể disable cái vụ "hỏi save lại" này không ?
- Có cách nào để khi send file excel có macro qua máy khác, và tại "máy khác" này có cách nào để cho cái macro chắc chắn chạy được mà không cần phải chỉnh Macro Security xuống mức Medium hoặc Low không ? (Mình nghĩ cái này chắc khó mà thực hiện, vì đây là quyền bảo mật cá nhân, không biết nghĩ vậy có đúng không :P).

Thanks.
 
Upvote 0
Câu 1: tất nhiên là dc... thêm code trong This Workbook:
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
   ThisWorkbook.Close (False)
End Sub
File trên cải tiến thêm 1 chút, cho bạn 1 InputBox đễ bạn quét chọn vùng cần ẩn, khỏi sửa code!
PHP:
Private Sub CommandButton1_Click()
   Dim Vung As Range
   On Error Resume Next
   Set Vung = Selection
   Set Vung = Application.InputBox(Prompt:="Quet chon vung can Hide hoac UnHide", Default:=Selection.Address, Type:=8)
   If Sheet1.CommandButton1.Caption = "Hide" Then
      ActiveWindow.DisplayVerticalScrollBar = False
     Vung.EntireRow.Hidden = True
     Sheet1.CommandButton1.Caption = "UnHide"
   Else:
     ActiveWindow.DisplayVerticalScrollBar = True
     Vung.EntireRow.Hidden = False
     Sheet1.CommandButton1.Caption = "Hide"
   End If
End Sub
Xem file đính kèm đã sửa lại!
Câu hỏi 2 đã dc mọi người hỏi rất nhiều nhưng hầu như chưa có giãi pháp hửu hiệu... Tuy nhiên giã sử có giãi pháp ấy thì máy tính của bạn sẽ nguy hiểm, vì cánh cửa Security đã mở toan cho phép bất cứ macro nào cũng dc quyền xâm nhập, kể cả virus... Đành chấp nhận "Kiểm tra qua cổng" vậy!
ANH TUẤN
 

File đính kèm

Upvote 0
Bạn có thể chuyển định dạng nó qua *.EXE thì thằng Security sẽ bị "phế" luốn. Muốn biết thêm chi tiết thì qua đây. Chúc bạn thành công!
 
Lần chỉnh sửa cuối:
Upvote 0
boong đã viết:
Bạn có thể chuyển định dạng nó qua *.EXE thì thằng Security sẽ bị "phế" luốn.
Với những file phức tạp về xử lý và tính toán thì tôi nghĩ chuyển sang exe nó sẽ ko chạy nổi... Ví du như trong file có công thức mãng và name động...
Các bạn nghĩ sao?
ANH TUẤN
 
Upvote 0
Đúng vậy, vì thằng EXE này chạy chậm hơn Excel nhiều nên nếu quá nhiều hàm hay công thức thì nó chạy rất chậm.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom