Ẩn hàng có điều kiện? (1 người xem)

  • Thread starter Thread starter 311280
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

311280

Thành viên hoạt động
Tham gia
12/7/09
Bài viết
111
Được thích
8
Chào các bác, nhờ các bác viết giùm marco ẩn hàng.
Mình cần ẩn hiện hàng E10 đến E34 với điều kiện như sau:
-Nếu E35 trống thì không ẩn hàng E10 đến E34, nếu E35 có giá trị thì sẽ ẩn những hàng từ E10 đến E34 trống, còn những hàng có giá trị không ẩn.
Chân thành cảm ơn trước.
 

File đính kèm

Chào các bác, nhờ các bác viết giùm marco ẩn hàng.
Mình cần ẩn hiện hàng E10 đến E34 với điều kiện như sau:
-Nếu E35 trống thì không ẩn hàng E10 đến E34, nếu E35 có giá trị thì sẽ ẩn những hàng từ E10 đến E34 trống, còn những hàng có giá trị không ẩn.
Chân thành cảm ơn trước.
Bạn tham khảo Code sau:
PHP:
Option Explicit
Sub AnDong()
    Dim i As Long
    Application.ScreenUpdating = False
    For i = 34 To 10 Step -1
        If Len(Range("E35")) = 0 Then
            Rows(i).Hidden = Application.CountA(Rows(i)) = 0
        End If
    Next i
    Application.ScreenUpdating = True
End Sub
Sub BoAn()
    ActiveSheet.Cells.EntireRow.Hidden = False
End Sub
 
Upvote 0
Bạn tham khảo Code sau:
PHP:
Option Explicit
Sub AnDong()
    Dim i As Long
    Application.ScreenUpdating = False
    For i = 34 To 10 Step -1
        If Len(Range("E35")) = 0 Then
            Rows(i).Hidden = Application.CountA(Rows(i)) = 0
        End If
    Next i
    Application.ScreenUpdating = True
End Sub
Sub BoAn()
    ActiveSheet.Cells.EntireRow.Hidden = False
End Sub
Bác kiểm tra lại sao marco không chạy bác ah? Cảm ơn bác.
 

File đính kèm

Upvote 0
Tôi có bổ sung thêm 1 số dòng có số liệu, khi bạn bấm nút sẽ chỉ ẩn các dòng trống( Đúng như mong muốn của bạn).
Mời bạn xem File.
Không có cách nào khi cell E35 có giá trị thì chạy macro ẩn, còn trống chạy macro bỏ ẩn sao bác? Chân thành cảm ơn bác.
 
Upvote 0
Không có cách nào khi cell E35 có giá trị thì chạy macro ẩn, còn trống chạy macro bỏ ẩn sao bác? Chân thành cảm ơn bác.
Vậy thì bạn thay:
PHP:
 If Len(Range("E35")) <> 0 Then
            Rows(i).Hidden = Application.CountA(Rows(i)) = 0
         End If
bằng:
PHP:
Rows(i).EntireRow.Hidden = True
Thử đi bạn.
 
Upvote 0
Vậy thì bạn thay:
PHP:
 If Len(Range("E35")) <> 0 Then
            Rows(i).Hidden = Application.CountA(Rows(i)) = 0
         End If
bằng:
PHP:
Rows(i).EntireRow.Hidden = True
Thử đi bạn.
Đã thử nhưng không chạy bạn ah, bạn kiểm lại giùm mình với. Cảm ơn bạn nhiệt tình giúp đỡ.
 

File đính kèm

Upvote 0
Tôi đã kiểm tra, vẫn chạy bình thường mà bạn.
Cho dù Cell E35 có hay không có dữ liệu.
Bác xem lại bài 7 của e nói là e muốn nếu ô E35 có giá trị thì chạy macro ẨN, và khi trống thì chạy marco BỎ ẨN, và bài 8 bác nói đã sửa lại. Sao bài này bác lại nói nó chạy CHO DÙ E35 CÓ HAY KHÔNG CÓ DỮ LIỆU. Bác xem lại giúp e với, E MUỐN CHẠY MARCO TỪ ĐIỀU KIỆN Ô E35 CHỨ KHÔNG MUỐN TỪ NÚT BẤM. Xin lỗi vì làm phiền bác nhiều lần.
 
Upvote 0
Bác xem lại bài 7 của e nói là e muốn nếu ô E35 có giá trị thì chạy macro ẨN, và khi trống thì chạy marco BỎ ẨN, .
Lấy file dữ liệu bài #6, Right Click vào Sheet1, chọn View Code dán em này vào
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$E$35" Then
        If Target.Value <> "" Then
            AnDong
        Else
            BoAn
        End If
    End If
End Sub
 
Upvote 0
Bác xem lại bài 7 của e nói là e muốn nếu ô E35 có giá trị thì chạy macro ẨN, và khi trống thì chạy marco BỎ ẨN, và bài 8 bác nói đã sửa lại. Sao bài này bác lại nói nó chạy CHO DÙ E35 CÓ HAY KHÔNG CÓ DỮ LIỆU. Bác xem lại giúp e với, E MUỐN CHẠY MARCO TỪ ĐIỀU KIỆN Ô E35 CHỨ KHÔNG MUỐN TỪ NÚT BẤM. Xin lỗi vì làm phiền bác nhiều lần.
Bạn nhập dữ liệu vào Cell E35 hoặc bỏ đi xem thế nào nhé
 

File đính kèm

Upvote 0
Bạn nhập dữ liệu vào Cell E35 hoặc bỏ đi xem thế nào nhé
Cảm ơn bác và bác concogia. Nhưng code đang ẩn hiện hàng vẫn phụ thuộc vào các hàng trong cột khác. Nếu các hàng trong cột khác có giá trị thì code không chạy theo ý. Mình muốn nó ẩn hiện hàng theo điều kiện các ô trong cột E thôi. Mình gửi file đính kèm trong đó nếu hàng trong cột khác có giá trị thì code không chạy như ý muốn.
 

File đính kèm

Upvote 0
Cảm ơn bác và bác concogia. Nhưng code đang ẩn hiện hàng vẫn phụ thuộc vào các hàng trong cột khác. Nếu các hàng trong cột khác có giá trị thì code không chạy theo ý. Mình muốn nó ẩn hiện hàng theo điều kiện các ô trong cột E thôi. Mình gửi file đính kèm trong đó nếu hàng trong cột khác có giá trị thì code không chạy như ý muốn.
Chép đè em này lên Sub Andong của bạn thử xem sao:
Mã:
Sub AnDong()
    Dim i As Long
    Application.ScreenUpdating = False
    For i = 34 To 10 Step -1
        If IsEmpty(Cells(i, 5)) Then Rows(i).Hidden = True
    Next i
    Application.ScreenUpdating = True
End Sub
Thân
 
Upvote 0
Chép đè em này lên Sub Andong của bạn thử xem sao:
Mã:
Sub AnDong()
    Dim i As Long
    Application.ScreenUpdating = False
    For i = 34 To 10 Step -1
        If IsEmpty(Cells(i, 5)) Then Rows(i).Hidden = True
    Next i
    Application.ScreenUpdating = True
End Sub
Thân
Cảm ơn bác đã nhiệt tình giúp đỡ, e có 1 phát sinh muốn bác giúp. Trong file có 5 sheet, bác giúp e nếu sheet1 ẩn hàng nào thì 4 sheet còn lại cũng ẩn mấy hàng đó. Gửi bác file đính kèm.
 

File đính kèm

Upvote 0
Cảm ơn bác đã nhiệt tình giúp đỡ, e có 1 phát sinh muốn bác giúp. Trong file có 5 sheet, bác giúp e nếu sheet1 ẩn hàng nào thì 4 sheet còn lại cũng ẩn mấy hàng đó. Gửi bác file đính kèm.
Sub AnDong:
Mã:
Sub AnDong()
    Dim I As Long, A
    Application.ScreenUpdating = False
        A = Sheets("sheet1").Range("E10:E34").SpecialCells(4).Address
        For I = 1 To 5
            Sheets("sheet" & I).Range(A).EntireRow.Hidden = True
        Next I
    Application.ScreenUpdating = True
End Sub
Sub BoAn:
Mã:
Sub BoAn()
     Dim I
     For I = 1 To 5
           Sheets("sheet" & I).Cells.EntireRow.Hidden = False
     Next I
 End Sub
Thân
 
Upvote 0
Sub AnDong:
Mã:
Sub AnDong()
    Dim I As Long, A
    Application.ScreenUpdating = False
        A = Sheets("sheet1").Range("E10:E34").SpecialCells(4).Address
        For I = 1 To 5
            Sheets("sheet" & I).Range(A).EntireRow.Hidden = True
        Next I
    Application.ScreenUpdating = True
End Sub
Sub BoAn:
Mã:
Sub BoAn()
     Dim I
     For I = 1 To 5
           Sheets("sheet" & I).Cells.EntireRow.Hidden = False
     Next I
 End Sub
Thân
Cảm ơn bác, code chạy tốt nhưng khi e đổi tên sheet thì phải sửa lại code như thế nào vậy bác? Bác giúp e tí nữa nha.
 

File đính kèm

Upvote 0
Cảm ơn bác, code chạy tốt nhưng khi e đổi tên sheet thì phải sửa lại code như thế nào vậy bác? Bác giúp e tí nữa nha.
Sub AnDong:
Mã:
Sub AnDong()
    Dim I As Long, A, B
    Application.ScreenUpdating = False
        A = Sheets("COLY").Range("E10:E34").SpecialCells(4).Address
        For Each B In ThisWorkbook.Sheets
           B.Range(A).EntireRow.Hidden = True
        Next B
    Application.ScreenUpdating = True
End Sub
Tên Sheet "CO LY" bỏ khoảng trắng đi, đặt tên Sheet tránh dấu tiếng Việt, khoảng trắng ( nếu cần cho dễ hiểu thì thêm "gạch nối")
Sub BoAn:
Mã:
Sub BoAn()
     Dim M
     For Each M In ThisWorkbook.Sheets
           M.Cells.EntireRow.Hidden = False
     Next M
 End Sub
Còn....sửa nữa hông ????
Híc+-+-+-++-+-+-++-+-+-+
Thân
 
Upvote 0
Sub AnDong:
Mã:
Sub AnDong()
    Dim I As Long, A, B
    Application.ScreenUpdating = False
        A = Sheets("COLY").Range("E10:E34").SpecialCells(4).Address
        For Each B In ThisWorkbook.Sheets
           B.Range(A).EntireRow.Hidden = True
        Next B
    Application.ScreenUpdating = True
End Sub
Tên Sheet "CO LY" bỏ khoảng trắng đi, đặt tên Sheet tránh dấu tiếng Việt, khoảng trắng ( nếu cần cho dễ hiểu thì thêm "gạch nối")
Sub BoAn:
Mã:
Sub BoAn()
     Dim M
     For Each M In ThisWorkbook.Sheets
           M.Cells.EntireRow.Hidden = False
     Next M
 End Sub
Còn....sửa nữa hông ????
Híc+-+-+-++-+-+-++-+-+-+
Thân
Dạ thôi, hoàn chỉnh cái này là e mang ơn bác nhiều lắm rồi. Có một lỗi nhỏ là code đang ẩn tất cả các sheet giống như sheet COLY. Ý e là trong file có rất nhiều sheet nhưng 4 sheet gần kề sheet COLY là ẩn theo thôi bác ah. Phiền bác giúp e lần cuối nha.
 
Upvote 0
Dạ thôi, hoàn chỉnh cái này là e mang ơn bác nhiều lắm rồi. Có một lỗi nhỏ là code đang ẩn tất cả các sheet giống như sheet COLY. Ý e là trong file có rất nhiều sheet nhưng 4 sheet gần kề sheet COLY là ẩn theo thôi bác ah. Phiền bác giúp e lần cuối nha.
Cái này phải nói rõ mới làm được, thế nào là gần kề, liên tục từ Sheet1 ==> Sheet5 (CodeName) hay bạn đặt tên Sheet lung tung không theo thứ tự nào cả rồi sắp xếp 5 sheet (muốn ẩn) chúng nó ở gần nhau
Tốt nhất bạn đưa file có cấu trúc như file thật (không cần dữ liệu) hoặc tên thật của 5 sheet muốn ẩn ( nhớ tên sheet không dấu tiếng Việt, không khoảng trắng nhé)
Híc
 
Upvote 0
Sheet1-->sheet5 trong cửa sổ khi ta nhấn Alt-f11 ấy bác. Chẳng hạn Sheet1(COLY), Sheet2(SPT)....bác ơi. Chân thành cảm ơn bác lần nữa.
 

File đính kèm

Upvote 0
Sheet1-->sheet5 trong cửa sổ khi ta nhấn Alt-f11 ấy bác. Chẳng hạn Sheet1(COLY), Sheet2(SPT)....bác ơi. Chân thành cảm ơn bác lần nữa.
Sub AnDong:
Mã:
Sub AnDong()
    Dim A, B
    Application.ScreenUpdating = False
        A = Sheets("CO-LY").Range("E10:E34").SpecialCells(4).Address
        For Each B In ThisWorkbook.Sheets
           If B.Index < 6 Then B.Range(A).EntireRow.Hidden = True
        Next B
    Application.ScreenUpdating = True
End Sub
Sub BoAn:
Mã:
Sub BoAn()
     Dim M
     For Each M In ThisWorkbook.Sheets
         If M.Index < 6 Then M.Cells.EntireRow.Hidden = False
     Next M
End Sub
Thân
 
Upvote 0

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

Back
Top Bottom