tự động hide/unhide trong excel?

Liên hệ QC

Cá ngừ F1

( ͡° ͜ʖ ͡°)
Thành viên BQT
Moderator
Tham gia
1/1/08
Bài viết
2,579
Được thích
3,715
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Quan hệ.. và quan hệ..
Các pro ơi, có cách nào để tự động hide một dòng nào đấy
vd nếu ô G15 bằng 0 thì hide dòng 15 đi, nếu khác 0 thì để nguyên.
regard.
 

File đính kèm

  • HD090.xls
    15.5 KB · Đọc: 586
vi file của tớ là file động, nên ô chứa 0 cũng thay đổi, hik autofiter pó tay rồi (mỗi lần cứ phải custom lại thật mất thời gian)..
 
He... he... Đúng như ThuNghi nói, nếu dòng 15 đã ẩn rồi thì bạn làm sao nhập giá trị vào cho nó hiện trở lại đây?
Rất có thể G15 phải là 1 công thức tham chiếu đến 1 cell khác chứ nhỉ? Nếu đúng vậy thì còn có cách!
ANH TUẤN
 
Giải pháp theo p/a thử

He... he... Đúng như ThuNghi nói, nếu dòng 15 đã ẩn rồi thì bạn làm sao nhập giá trị vào cho nó hiện trở lại đây?
Rất có thể G15 phải là 1 công thức tham chiếu đến 1 cell khác chứ nhỉ? Nếu đúng vậy thì còn có cách!
ANH TUẤN


thê thì tại
G15 chẳng hạn có công thức =H1
tại H1 gõ 0 hoặc 1 (khác 0 là được) -> ẩn hoặc hiện dòng 15

thì CODE thế này

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Intersect([H1], Target) Is Nothing Then
            If [G15].Value = 0 Then
                Rows("15:15").EntireRow.Hidden = True
            Else: Rows("15:15").EntireRow.Hidden = False: End If
      End If
End Sub

down file gửi kèm
 

File đính kèm

  • an dong 15.xls
    28 KB · Đọc: 426
Để xem tác giã nói thêm 1 chút... rất có thể "hên" thì khỏi If ét gì hết luôn cũng ko chừng...
Chẳng hạn.. đặt name:
Mã:
 KT = $G$15=0
và cuối cùng là code:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
      KT = Evaluate("KT")
      If Target.Address = "$H$1" Then
        Rows("15:15").EntireRow.Hidden = KT
      End If
End Sub
 
Không cần name lun

THế thì thế này, khỏi name lun

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Intersect([H1], Target) Is Nothing Then
                Rows("15:15").EntireRow.Hidden = [G15].Value = 0
      End If
End Sub
 
Bạn ởi,khi ẩn đi rồi,muốn copy dữ liệu vào côt hoặc dòng (chứa cả cột hoặc dòng ẩn đó) nhưng chỉ muốn copy vào những dòng hiện thôi thì làm thế nào ban?
 
Bạn ởi,khi ẩn đi rồi,muốn copy dữ liệu vào côt hoặc dòng (chứa cả cột hoặc dòng ẩn đó) nhưng chỉ muốn copy vào những dòng hiện thôi thì làm thế nào ban?
Bạn chọn vùng cần copy (vùng có chứa cell ẩn)... Bấm Ctrl + G, chọn Special\Visible Cells Only, OK... Tiếp theo bấm Ctrl + C để copy... sang vùng cần Paste, bấm Ctrl + V
Làm như vậy nó chỉ copy những cell nào đang hiện mà thôi
 
Bổ sung thêm (cái này em cũng học từ một bạn nào đó trên GPE). Bạn bôi đen vùng cần copy nhấn ALT+; sau đó copy bình thường và dán vào bình thường là xong.
 
Các Bro ơi! làm ơn chỉ cho tớ nếu H1 nằm ở Sheet khác!
Và đặc biệt là tớ không có tác động vào ô H1 gì cả thì nó có hide không?
 
Các Bro ơi! làm ơn chỉ cho tớ nếu H1 nằm ở Sheet khác!
Và đặc biệt là tớ không có tác động vào ô H1 gì cả thì nó có hide không?
Đương nhiên là được, nhưng xin bạn nói cụ thể 1 chút:
- Yêu cầu là gì? Muốn ẩn cái gì? Có điều kiện gì đi kèm khi ẩn dòng không? (càng rõ càng tốt)
 
Hi,

Xin nói lại:
Tôi muốn nếu ô A1 có giá trị bằng 0 thì tự động hide nguyên dòng đó.
Trong ô A1 chứa công thức!

Nếu vẫn chưa rõ xin xem file dính kèm. Xem Sheet Printform, hy vọng rất rõ ràng ! tôi muốn hide những dòng đó
Thanks
 

File đính kèm

  • auto hide row.xls
    39 KB · Đọc: 136
Lần chỉnh sửa cuối:
Hi,

Xin nói lại:
Tôi muốn nếu ô A1 có giá trị bằng 0 thì tự động hide nguyên dòng đó.
Trong ô A1 chứa công thức!

Nếu vẫn chưa rõ xin xem file dính kèm. Xem Sheet Printform, hy vọng rất rõ ràng ! tôi muốn hide những dòng đó
Thanks
Ái chà chà... Cái này thì bạn AutoFilter\Custom\Does not Equal = 0 là xong chứ gì
Muốn "tự động" thì ghi nó thành 1 macro
Nói chung: Cái gì ta làm "bằng tay" được thì gần như có thể "tự động hóa" nó được... Chính vì thế mà vấn đề đặt ra là: phải nghĩ rằng công việc ta nêu ra liệu có thể làm bằng tay được không?
 
Ái chà chà... Cái này thì bạn AutoFilter\Custom\Does not Equal = 0 là xong chứ gì
Muốn "tự động" thì ghi nó thành 1 macro
Nói chung: Cái gì ta làm "bằng tay" được thì gần như có thể "tự động hóa" nó được... Chính vì thế mà vấn đề đặt ra là: phải nghĩ rằng công việc ta nêu ra liệu có thể làm bằng tay được không?


Sorry, tự động hoàn toàn cơ! Tớ không muốn làm gì phải bấm bấm như cách bạn nói!

Nhu cầu là như thế, vì nếu mà ghi macro theo cách vậy rồi lại phải bấm cho chạy macro đó mất công lắm!
Tớ làm dữ liệu ở một sheet kế bên và chỉ việc in ra cái form này! Bạn rõ chứ?
 
Sorry, tự động hoàn toàn cơ! Tớ không muốn làm gì phải bấm bấm như cách bạn nói!

Nhu cầu là như thế, vì nếu mà ghi macro theo cách vậy rồi lại phải bấm cho chạy macro đó mất công lắm!
Tớ làm dữ liệu ở một sheet kế bên và chỉ việc in ra cái form này! Bạn rõ chứ?
Chài... ai... Hướng dẩn trên là quá rõ rồi còn gì... Quy trình là thế, còn việc "tự động" còn lại phải thuộc về bạn chứ!
Nếu là tôi thì tôi sẽ:
- Record macro quá trình AutoFilter theo điều kiện
- Xem code, chỉnh sửa lại cho gọn
- Tiếp theo sẽ đặt code vào 1 sự kiện nào đó mà tôi cho là hợp lý để tự động hóa hoàn toàn công việc
Code sơ bộ:
PHP:
Option Explicit
Private Sub Worksheet_Activate()
   Dim Rng As Range
   Set Rng = [A8].CurrentRegion
   Rng.AutoFilter Field:=1, Criteria1:="<>0"
End Sub
Với file đính kèm này, nếu bạn thay đổi dử liệu ở nguồn, thì mổi khi bạn chọn vào sheet PrintForm bạn sẽ thấy việc Hide row được tự động hóa hoàn toàn
 

File đính kèm

  • AutoHideRow_01.xls
    42.5 KB · Đọc: 260
Quá chính xác! Đó là những giải pháp cực kỳ hiệu quả cao.
Tôi có biết gì về VBA đâu nên không nghĩ ra được thế đâu bạn à.

Vấn đề là tôi không biết code để làm sao khi chọn đổi sheet hay đổi dữ liệu thì nó thực thi một macro nào đó. Bây giờ file này quá ngắn gọn và chính xác rồi! Thanks
 
Nhờ các bro giúp đỡ auto hide

THế thì thế này, khỏi name lun

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Intersect([H1], Target) Is Nothing Then
                Rows("15:15").EntireRow.Hidden = [G15].Value = 0
      End If
End Sub

Hi các bro,

Mình là lính mới tò te, nhờ các bro giúp mình đoạn code auto hide row những cell có giá trị True trong cột Y.

Các bro xem file đính kèm nhé. Thank nhiều.
 

File đính kèm

  • FileLoc QC.xls
    71 KB · Đọc: 60
Ý bạn là trong Sheet DATA các ô ở cột Y = TRUE thì ẩn hết phải không? Nếu vậy thì bạn sửa code Worksheet_Activate của Sheet DATA lại thành như vầy là được.
PHP:
Private Sub Worksheet_Activate() ''Me.ScrollArea = "A1:Y70"    Dim Rng As Range    Set Rng = [Y8].CurrentRegion    Rng.AutoFilter Field:=25, Criteria1:="FALSE" End Sub
Thân.
 

File đính kèm

  • FileLoc QC.rar
    17.8 KB · Đọc: 115
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom