Code ẩn - hiện dòng theo điều kiện

Liên hệ QC

ultima_86

Thành viên mới
Tham gia
31/1/09
Bài viết
27
Được thích
1
Mình có file excel như đính kèm và tại ô D9 và D10 mình có để nhập số lượng mẫu tạp định danh (12 dòng - từ dòng 31 tới 42, mình hiện tại đã ẩn đi 11 dòng dưới) và không định danh (22 dòng, từ dòng 45 tới 66, mình cũng đã ẩn đi 21 dòng dưới). Mình nhờ các bạn có thể hỗ trợ mình 1 đoạn VBA mà khi mình nhập con số vào ô D9 và D10 nó sẽ tự hiện ra số dòng tương ứng và nếu mình nhập là 0 thì ẩn luôn cả dòng mình đang chừa lại. Cám ơn các bạn
 

File đính kèm

  • Imp - Type 1.xlsm
    22.5 KB · Đọc: 16
Mình có file excel như đính kèm và tại ô D9 và D10 mình có để nhập số lượng mẫu tạp định danh (12 dòng - từ dòng 31 tới 42, mình hiện tại đã ẩn đi 11 dòng dưới) và không định danh (22 dòng, từ dòng 45 tới 66, mình cũng đã ẩn đi 21 dòng dưới). Mình nhờ các bạn có thể hỗ trợ mình 1 đoạn VBA mà khi mình nhập con số vào ô D9 và D10 nó sẽ tự hiện ra số dòng tương ứng và nếu mình nhập là 0 thì ẩn luôn cả dòng mình đang chừa lại. Cám ơn các bạn
Dùng thử đoạn code này xem sao?
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "D9" Then
    [31:42].EntireRow.Hidden = True
    If Target.Value > 0 Then
        Range("A31").Resize(Target.Value).EntireRow.Hidden = False
    End If
ElseIf Target.Address(0, 0) = "D10" Then
    [45:66].EntireRow.Hidden = True
    If Target.Value > 0 Then
        Range("A45").Resize(Target.Value).EntireRow.Hidden = False
    End If
End If
End Sub
 
Cám ơn giaiphap, đoạn code của bạn hoạt động đúng ý mình rồi
 
Mình vừa gặp sự cố ở chỗ phải khóa bảng tính lại, nhưng nếu khóa thì đoạn mã của bạn báo lỗi. Có cách nào khắc phục không bạn?
 
Mình vừa gặp sự cố ở chỗ phải khóa bảng tính lại, nhưng nếu khóa thì đoạn mã của bạn báo lỗi. Có cách nào khắc phục không bạn?
Vậy sửa lại code thế này.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "D9" Then
    Sheet1.Unprotect "GPE"
    [31:42].EntireRow.Hidden = True
    If Target.Value > 0 Then
        Range("A31").Resize(Target.Value).EntireRow.Hidden = False
    End If
    Sheet1.Protect "GPE"
ElseIf Target.Address(0, 0) = "D10" Then
    Sheet1.Unprotect "GPE"
    [45:66].EntireRow.Hidden = True
    If Target.Value > 0 Then
        Range("A45").Resize(Target.Value).EntireRow.Hidden = False
    End If
    Sheet1.Protect "GPE"
End If
End Sub
 
Web KT
Back
Top Bottom