giaiphapexcel93@
Thành viên mới

- Tham gia
- 17/12/21
- Bài viết
- 17
- Được thích
- 1
Tại Sheet YCNT dùng sự kiện Worksheet_Activate
Vùng cần ẩn/hiện/dãn dòng là vùng ô gộp
Ô C15 đến C23 và Ô N15
Yêu cầu:
Khi có 1 dữ liệu duy nhất tại dòng 15 thì các dòng từ 16 đến 23 sẽ ẩn, đồng thời kiểm tra xem dữ liệu bên ô gộp C15 và N15 bên nào có chiều cao vượt quá ô thì chọn làm ô điều kiện để dãn dòng tự động
Khi có hơn 2 dòng đồng thời kiểm tra và cộng chiều cao các ô gộp 15 đến...và so sánh với ô N15 bên nào có chiều cao lớn nhất thì chọn làm điều kiện để dãn dòng tự động
Private Sub Worksheet_Activate()
Dim rng As Range
Application.ScreenUpdating = False
'Tự động dãn dòng khi có dữ liệu
Call dandongtudong(ActiveSheet.Name, "C15:C23")
'Ẩn/hiện các dòng khi không có/có dữ liệu
For Each rng In [AD15:AD23]
If rng.Value <> 0 Then
rng.EntireRow.Hidden = False
Else
rng.EntireRow.Hidden = True
End If
Next rng
With Worksheets("YCNT")
.Rows("27").PageBreak = xlPageBreakNone '27 la dong dat dau ngat trang
If (.Range(.PageSetup.PrintArea).Height > (800 * 1)) Then
.Rows("27").PageBreak = xlPageBreakManual
End If
End With
Application.ScreenUpdating = True
End Sub
Vùng cần ẩn/hiện/dãn dòng là vùng ô gộp
Ô C15 đến C23 và Ô N15
Yêu cầu:
Khi có 1 dữ liệu duy nhất tại dòng 15 thì các dòng từ 16 đến 23 sẽ ẩn, đồng thời kiểm tra xem dữ liệu bên ô gộp C15 và N15 bên nào có chiều cao vượt quá ô thì chọn làm ô điều kiện để dãn dòng tự động
Khi có hơn 2 dòng đồng thời kiểm tra và cộng chiều cao các ô gộp 15 đến...và so sánh với ô N15 bên nào có chiều cao lớn nhất thì chọn làm điều kiện để dãn dòng tự động
Private Sub Worksheet_Activate()
Dim rng As Range
Application.ScreenUpdating = False
'Tự động dãn dòng khi có dữ liệu
Call dandongtudong(ActiveSheet.Name, "C15:C23")
'Ẩn/hiện các dòng khi không có/có dữ liệu
For Each rng In [AD15:AD23]
If rng.Value <> 0 Then
rng.EntireRow.Hidden = False
Else
rng.EntireRow.Hidden = True
End If
Next rng
With Worksheets("YCNT")
.Rows("27").PageBreak = xlPageBreakNone '27 la dong dat dau ngat trang
If (.Range(.PageSetup.PrintArea).Height > (800 * 1)) Then
.Rows("27").PageBreak = xlPageBreakManual
End If
End With
Application.ScreenUpdating = True
End Sub