Cần giúp tự động ẩn hàng với điều kiện

Liên hệ QC

goodwin999

Thành viên mới
Tham gia
16/12/12
Bài viết
23
Được thích
1
Chào các bác,
Mình đang có bảng tính như sau:
1640164483383.png

Với điều kiện cột "Tổng" (cột J) của từng công tác (J2, J19, J20, J21, J25,...) có giá trị bằng 0 hoặc không có giá trị thì sẽ tự động ẩn công tác đó và các hàng liên quan đến công tác.
Ví dụ công tác STT-5 (hàng số 2) như trên:
- Nếu ô J2=0 hoặc J2 không có giá trị
- Thì tự động ẩn các hàng từ số 2 đến số 18.

Mong được các bác quan tâm và giúp đỡ. Cám ơn nhiều!!!
 

File đính kèm

  • test.xlsx
    33.9 KB · Đọc: 11
Chào các bác,
Mình đang có bảng tính như sau:
View attachment 270593

Với điều kiện cột "Tổng" (cột J) của từng công tác (J2, J19, J20, J21, J25,...) có giá trị bằng 0 hoặc không có giá trị thì sẽ tự động ẩn công tác đó và các hàng liên quan đến công tác.
Ví dụ công tác STT-5 (hàng số 2) như trên:
- Nếu ô J2=0 hoặc J2 không có giá trị
- Thì tự động ẩn các hàng từ số 2 đến số 18.

Mong được các bác quan tâm và giúp đỡ. Cám ơn nhiều!!!
Bạn thử dùng code củ chuối này xem.
Hy vọng cũng đúng ý.
 

File đính kèm

  • test(An-Hien Dong theo ĐK).xlsm
    43.6 KB · Đọc: 14
Upvote 0
Góp vui 1 đoạn code.
Mã:
Public Sub Hide()
    On Error GoTo Loi
    Dim Rng As Range, hRng As Range, aCell As Range, i%, n%
    Call UnHide
    Set Rng = Columns("A:A").SpecialCells(xlCellTypeConstants, 1)
    n = Sheet4.Cells(Rows.Count, 2).End(xlUp).Row
    Set hRng = Nothing
    For Each aCell In Rng
        If aCell.Offset(, 9).Value2 = 0 Then
            i = 1
            Do While aCell.Offset(i).Value2 = 0 And i <= n
                i = i + 1
            Loop

            If hRng Is Nothing Then
                Set hRng = aCell.Resize(i)
            Else
                Set hRng = Union(hRng, aCell.Resize(i))
            End If
           
        End If
    Next aCell
    If Not hRng Is Nothing Then
        hRng.EntireRow.Hidden = True
    End If
    MsgBox "Da an xong"
    Exit Sub
Loi:
    MsgBox "Da co loi xay ra"
End Sub
Public Sub UnHide()
    Columns("A:A").EntireRow.Hidden = False
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử dùng code củ chuối này xem.
Hy vọng cũng đúng ý.

Góp vui 1 đoạn code.
Mã:
Public Sub Hide()
    On Error GoTo Loi
    Dim Rng As Range, hRng As Range, aCell As Range, i%, n%
    Call UnHide
    Set Rng = Columns("A:A").SpecialCells(xlCellTypeConstants, 1)
    n = Sheet4.Cells(Rows.Count, 2).End(xlUp).Row
    Set hRng = Nothing
    For Each aCell In Rng
        If aCell.Offset(, 9).Value2 = 0 Then
            i = 1
            Do While aCell.Offset(i).Value2 = 0 And i <= n
                i = i + 1
            Loop

            If hRng Is Nothing Then
                Set hRng = aCell.Resize(i)
            Else
                Set hRng = Union(hRng, aCell.Resize(i))
            End If
         
        End If
    Next aCell
    If Not hRng Is Nothing Then
        hRng.EntireRow.Hidden = True
    End If
    MsgBox "Da an xong"
    Exit Sub
Loi:
    MsgBox "Da co loi xay ra"
End Sub
Public Sub UnHide()
    Columns("A:A").EntireRow.Hidden = False
End Sub
Cám ơn 2 bác nhiều nhé!!!
 
Upvote 0
Upvote 0
em hỏi thêm chút với ạ... em cần cùng tác động ẩn hiện của đoạn code từ dòng thứ 10 đến hết thì đoạn code trên cần thêm gì vào ạ.... mong anh giúp
Nếu bạn muốn ẩn những dòng (Từ dòng 11 trở đi ) có điều kiện như ở bài #1, thì bạn thay
For i = 2 To Lr
thành
For i = 11 To Lr
là được thôi mà.
 
Upvote 0
Web KT

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

Back
Top Bottom