tự động hide/unhide trong excel?

Quảng cáo

Cá ngừ F1

Thành viên gắn bó
Thành viên BQT
Moderator
Tham gia ngày
1 Tháng một 2008
Bài viết
2,121
Được thích
3,241
Điểm
1,918
Tuổi
38
Nơi ở
Đảo Đào Hoa
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.
 

TKT

Thành viên tiêu biểu
Tham gia ngày
2 Tháng một 2008
Bài viết
674
Được thích
1,335
Điểm
0
Nơi ở
.....

File đính kèm

  • HD090.xls
    15.5 KB · Đọc: 555

Cá ngừ F1

Thành viên gắn bó
Thành viên BQT
Moderator
Tham gia ngày
1 Tháng một 2008
Bài viết
2,121
Được thích
3,241
Điểm
1,918
Tuổi
38
Nơi ở
Đảo Đào Hoa
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)..
 

anhtuan1066

Thành viên gạo cội
Tham gia ngày
10 Tháng ba 2007
Bài viết
5,814
Được thích
6,859
Điểm
0
Tuổi
54
Nơi ở
Biên Hòa, Đồng Nai
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
 

tigertiger

Coming back ...
Tham gia ngày
25 Tháng một 2007
Bài viết
1,782
Được thích
1,658
Điểm
1,168
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: 402

anhtuan1066

Thành viên gạo cội
Tham gia ngày
10 Tháng ba 2007
Bài viết
5,814
Được thích
6,859
Điểm
0
Tuổi
54
Nơi ở
Biên Hòa, Đồng Nai
Để 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
 

tigertiger

Coming back ...
Tham gia ngày
25 Tháng một 2007
Bài viết
1,782
Được thích
1,658
Điểm
1,168
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
 

binh191983

Thành viên mới
Tham gia ngày
14 Tháng mười một 2007
Bài viết
3
Được thích
0
Điểm
0
Tuổi
37
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?
 

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
30,725
Được thích
53,557
Điểm
50
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
 

LikeIt

Thành viên tiêu biểu
Tham gia ngày
16 Tháng sáu 2006
Bài viết
415
Được thích
253
Điểm
0
Nơi ở
BacNinh
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.
 

hoangexcell

Thành viên tiêu biểu
Tham gia ngày
8 Tháng một 2008
Bài viết
406
Được thích
110
Điểm
0
Nơi ở
Thủ Đức
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?
 

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
30,725
Được thích
53,557
Điểm
50
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)
 

hoangexcell

Thành viên tiêu biểu
Tham gia ngày
8 Tháng một 2008
Bài viết
406
Được thích
110
Điểm
0
Nơi ở
Thủ Đức
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: 124
Lần chỉnh sửa cuối:

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
30,725
Được thích
53,557
Điểm
50
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?
 

hoangexcell

Thành viên tiêu biểu
Tham gia ngày
8 Tháng một 2008
Bài viết
406
Được thích
110
Điểm
0
Nơi ở
Thủ Đức
Á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ứ?
 

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
30,725
Được thích
53,557
Điểm
50
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: 239

hoangexcell

Thành viên tiêu biểu
Tham gia ngày
8 Tháng một 2008
Bài viết
406
Được thích
110
Điểm
0
Nơi ở
Thủ Đức
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
 

redhot

Thành viên mới
Tham gia ngày
1 Tháng mười 2008
Bài viết
8
Được thích
0
Điểm
0
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: 52

Po_Pikachu

Po_pikachu@ymail.com
Tham gia ngày
29 Tháng tư 2008
Bài viết
2,209
Được thích
3,567
Điểm
0
Nơi ở
#VALUE!
Ý 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: 107
Lần chỉnh sửa cuối:
Quảng cáo
Top Bottom