Xin được trợ giúp Ẩn cột theo điều kiện là tháng

Liên hệ QC

le_vis

Thành viên tích cực
Tham gia
23/7/09
Bài viết
1,242
Được thích
753
Tôi có sử dụng đoạn code :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, [AR4]) Is Nothing Then

Dim Cls As Range, Rws As Long

Columns("AL:AN").Hidden = False

Rws = [D8].CurrentRegion.Rows.Count

For Each Cls In [AL6].Resize(, 3)

If Month(Cls.Value) <> Target.Value Then

Cls.EntireColumn.Hidden = True

End If

Next Cls

End If

End Sub

Với mục tiêu là ẩn cột theo điều kiện từng tháng . nhưng code chạy không theo ý muốn - Nhưng sửa mãi không được - Kính mong nhận được sự hỗ trợ của quý thầy cô và các bạn (Mọi chi tiết xin được diễn giải trong File đính kèm) - Xin trân trọng cảm ơn.
 

File đính kèm

  • MAU_1.xlsm
    45.8 KB · Đọc: 11
Với mục tiêu là ẩn cột theo điều kiện từng tháng . nhưng code chạy không theo ý muốn - Nhưng sửa mãi không được - Kính mong nhận được sự hỗ trợ của quý thầy cô và các bạn (Mọi chi tiết xin được diễn giải trong File đính kèm) - Xin trân trọng cảm ơn.
Thử File, thay đổi tháng trong AR4, code dựa theo số ngày tại AR6.
Tôi sửa lại code và chuyển File xuống bài 6.
 
Lần chỉnh sửa cuối:
Upvote 0
Thử File, thay đổi tháng trong AR4, code dựa theo số ngày tại AR6.
Tôi sửa lại code và chuyển File xuống bài 6.
Tôi đặt điều kiện thừa nên tôi sửa lại code.
Cảm ơn thầy (Còn trường hợp những năm tháng 2 chỉ có 28 ngày) dựa trên code thầy cho tôi đã tùy biến xong nếu thử thay đổi xuống 2/2019 thì code chạy đúng sau đó giữ nguyên chỉ thay đổi thành năm 2020 thì nó không đánh bài ì . Xin thầy chỉ giáo thêm. Cảm ơn thầy nhiều nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn tham khảo macro sự kiện này để tiếp tục công việc của bạn:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [AR4]) Is Nothing Then
    Dim Cls As Range
    Dim SoNgay As Integer
    Columns("AL:AN").Hidden = True
    
    SoNgay = Day(DateSerial(Year(Target.Value), 1 + Month(Target.Value), 0))
    MsgBox SoNgay

 End If
End Sub
 
Upvote 0
Bạn tham khảo macro sự kiện này để tiếp tục công việc của bạn:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [AR4]) Is Nothing Then
    Dim Cls As Range
    Dim SoNgay As Integer
    Columns("AL:AN").Hidden = True
  
    SoNgay = Day(DateSerial(Year(Target.Value), 1 + Month(Target.Value), 0))
    MsgBox SoNgay

End If
End Sub
Nhờ thầy tét lại và chỉnh cho tý. Thay đối tháng nào nó cũng ẩn hết từ AL đến AN chỉ để 28 ngày thôi - Cảm ơn thày đã phải dậy sớm
 

File đính kèm

  • An cot theo Dieu kien (2).xlsm
    49.8 KB · Đọc: 3
Upvote 0
Nhờ thầy tét lại và chỉnh cho tý.
- Cảm ơn thày đã phải dậy sớm
Tôi chỉnh lại code theo trường hợp, code cũ thiếu trường hợp tháng 2 có 28 ngày.
Bổ sung thêm thứ và định dạng thứ bảy màu vàng, chúa nhật màu hường để bạn áp dụng File này cho nhiều năm sau..
 

File đính kèm

  • An cot theo DK va Dinh Dang.xlsm
    57.5 KB · Đọc: 9
Upvote 0
Tôi chỉnh lại code theo trường hợp, code cũ thiếu trường hợp tháng 2 có 28 ngày.
Bổ sung thêm thứ và định dạng thứ bảy màu vàng, chúa nhật màu hường để bạn áp dụng File này cho nhiều năm sau..
Xin cảm ơn Thầy rất nhiều; Code đã đáp ứng đúng công việc tôi cần. Xa quá không có điều kiện gặp để bái tạ, nhưng tôi nghĩ chắc Thầy là người luôn Tận tình-Chu đáo-sáng tạo và đức độ. Xin cảm ơn Thầy
 
Upvote 0
THÀY LƯỜI QUÁ ĐÓ NHA​
Nhờ thầy tét lại và chỉnh cho tý. Thay đối tháng nào nó cũng ẩn hết từ AL đến AN chỉ để 28 ngày thôi

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [AR4]) Is Nothing Then
    Dim Cls As Range
    Dim SoNgay As Integer
    Columns("AL:AN").Hidden = True
    
    SoNgay = Day(DateSerial(Year(Target.Value), 1 + Month(Target.Value), 0))
    Columns("J:J").Resize(, SoNgay).Hidden = False
 End If
End Sub
:D
 
Upvote 0
THÀY LƯỜI QUÁ ĐÓ NHA​


PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [AR4]) Is Nothing Then
    Dim Cls As Range
    Dim SoNgay As Integer
    Columns("AL:AN").Hidden = True
   
    SoNgay = Day(DateSerial(Year(Target.Value), 1 + Month(Target.Value), 0))
    Columns("J:J").Resize(, SoNgay).Hidden = False
End If
End Sub
:D
Trong code thừa biến Cls anh ơi.
 
Upvote 0
Ngược với bài #13:
PHP:
Public Sub AnCot()
Const CoL As Long = 40
Dim X As Long
Columns("AL:AN").EntireColumn.Hidden = False
   X = 31 - Day(DateSerial(Year(Range("AR4")), Month(Range("AR4")) + 1, 0))
If X Then Cells(1, CoL - X + 1).Resize(, X).EntireColumn.Hidden = True
End Sub
 
Upvote 0
Web KT
Back
Top Bottom