Code Ẩn một số cột theo điều kiện, Hiện toàn bộ các cột

Liên hệ QC

AnhThu-1976

Thành viên tích cực
Tham gia
17/10/14
Bài viết
1,058
Được thích
170
Em chào Thầy/Cô và Anh/Chị!
Em có file đính kèm
Mục đích của em, vì số liệu rất nhiều, nên khi nhập liệu thì dễ nhập nhầm lẫn giữa cột này và cột khác, nên em muốn ẩn bớt các cột, chỉ hiện cột đang muốn nhập liệu
Em nhờ anh chị viết code,
(Chú thích: cột cuối có thể nhiều hoặc ít hơn, hiện cột cuối trong file là cột V)

Khi bấm nút ẨN thì chỉ ẩn từ cột O trở đi, với những điều kiện sau:
Dò từ cột O và dòng thứ 3:
Nếu cột nào tại dòng thứ 3 có số lớn hơn 0 thì ẩn
Đồng thời cũng ẩn luôn các cột, sau cột đầu tiên có dòng thứ 3 bằng 0
trong file của em thì code sẽ ẩn các cột O, P, Q (vì dòng thứ 3 có số lớn hơn 0)
Đến cột R thì không ẩn (vì ô R3=0), rồi tiếp tục ẩn các cột sau cột R
*********
Khi bấm nút HIỆN thì hiện toàn bộ các cột đã ẩn từ cột O trở đi
Em xin cảm ơn!
 

File đính kèm

  • An-Cot.xlsm
    220.6 KB · Đọc: 7
Nếu thêm cột T > 0 thì sẽ ẩn các cột nào?
 
Upvote 0
Đồng thời cũng ẩn luôn các cột, sau cột đầu tiên có dòng thứ 3 bằng 0
trong file của em thì code sẽ ẩn các cột O, P, Q (vì dòng thứ 3 có số lớn hơn 0)
Đến cột R thì không ẩn (vì ô R3=0), rồi tiếp tục ẩn các cột sau cột R
*********
Thử code này. Cái còn lại tự làm lấy
Mã:
Sub AnDong()
    Dim iCol&, i&
    With Sheets("NXT")
        iCol = .Cells(3, Columns.Count).End(xlToLeft).Column
        For i = 15 To iCol
            If .Cells(3, i).Value > 0 Then
                .Columns(i).EntireColumn.Hidden = True
            Else
                .Range(.Cells(3, i + 1), .Cells(3, iCol)).EntireColumn.Hidden = True
                Exit For
            End If
        Next
    End With
End Sub
 
Upvote 0
Thử code bên dưới:
Mã:
Option Explicit

Const Col_O& = 15
Const Rws& = 3
Sub An()
Dim lCol&, RngCol As Range, vblCol As Range
With Sheets("NXT")
    lCol = .Cells(1, Columns.Count).End(xlToLeft).Column
    If lCol > Col_O Then
        Set RngCol = .Range(.Cells(Rws, Col_O), .Cells(Rws, lCol))
        Set vblCol = RngCol.Find(0, , xlValues, xlWhole)
        If Not vblCol Is Nothing Then
            RngCol.EntireColumn.Hidden = True
            vblCol.EntireColumn.Hidden = False
        Else
            MsgBox "Không có côt nào bang 0"
        End If
    End If
End With
End Sub
Sub Hien()
With Sheets("NXT")
    .Range(.Columns(Col_O), .Columns(.Columns.Count)).Hidden = False
End With
End Sub
 
Upvote 0
Thử code này. Cái còn lại tự làm lấy
Thử code bên dưới:
Mã:
Option Explicit

Const Col_O& = 15
Const Rws& = 3
Sub An()
Dim lCol&, RngCol As Range, vblCol As Range
With Sheets("NXT")
    lCol = .Cells(1, Columns.Count).End(xlToLeft).Column
    If lCol > Col_O Then
        Set RngCol = .Range(.Cells(Rws, Col_O), .Cells(Rws, lCol))
        Set vblCol = RngCol.Find(0, , xlValues, xlWhole)
        If Not vblCol Is Nothing Then
            RngCol.EntireColumn.Hidden = True
            vblCol.EntireColumn.Hidden = False
        Else
            MsgBox "Không có côt nào bang 0"
        End If
    End If
End With
End Sub
Sub Hien()
With Sheets("NXT")
    .Range(.Columns(Col_O), .Columns(.Columns.Count)).Hidden = False
End With
End Sub
Sao không anh nào cho cái tiếp địa chống giật cho chị ấy cái.
 
Upvote 0
Thử code bên dưới:
Mã:
Option Explicit

Const Col_O& = 15
Const Rws& = 3
Sub An()
Dim lCol&, RngCol As Range, vblCol As Range
With Sheets("NXT")
    lCol = .Cells(1, Columns.Count).End(xlToLeft).Column
    If lCol > Col_O Then
        Set RngCol = .Range(.Cells(Rws, Col_O), .Cells(Rws, lCol))
        Set vblCol = RngCol.Find(0, , xlValues, xlWhole)
        If Not vblCol Is Nothing Then
            RngCol.EntireColumn.Hidden = True
            vblCol.EntireColumn.Hidden = False
        Else
            MsgBox "Không có côt nào bang 0"
        End If
    End If
End With
End Sub
Sub Hien()
With Sheets("NXT")
    .Range(.Columns(Col_O), .Columns(.Columns.Count)).Hidden = False
End With
End Sub
Các bạn cho hỏi, do em có thể ẩn số 0 trong option
thì code thông báo MsgBox "Không có côt nào bang 0"
vậy mình muốn code xét =0 hay bằng trống thì chỉnh code như thế nào. Em cảm ơn ạ
 
Upvote 0
Mục đích của em, vì số liệu rất nhiều, nên khi nhập liệu thì dễ nhập nhầm lẫn giữa cột này và cột khác, nên em muốn ẩn bớt các cột, chỉ hiện cột đang muốn nhập liệu
Ngồi đọc mục đích này mà nghĩ ra ẩn cột này có vẻ hơi tốn công. Chỉ đơn thuần tránh nhầm lẫn thì có thể hightlight cột được chọn lên là được mà
 
Upvote 0
Web KT

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

Back
Top Bottom