Ẩ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
Web KT

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

Back
Top Bottom