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

le_vis

Thành viên tích cực
Tham gia ngày
23 Tháng bảy 2009
Bài viết
868
Được thích
448
Điểm
735
Tuổi
36
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

be09

TNMT_Đồng Nai
Tham gia ngày
9 Tháng tư 2011
Bài viết
8,936
Được thích
8,621
Điểm
560
Tuổi
62
Nơi ở
Biên Hòa, Đồng Nai
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:

le_vis

Thành viên tích cực
Tham gia ngày
23 Tháng bảy 2009
Bài viết
868
Được thích
448
Điểm
735
Tuổi
36
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:

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
6,660
Được thích
10,803
Điểm
1,860
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
 

le_vis

Thành viên tích cực
Tham gia ngày
23 Tháng bảy 2009
Bài viết
868
Được thích
448
Điểm
735
Tuổi
36
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

be09

TNMT_Đồng Nai
Tham gia ngày
9 Tháng tư 2011
Bài viết
8,936
Được thích
8,621
Điểm
560
Tuổi
62
Nơi ở
Biên Hòa, Đồng Nai
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

le_vis

Thành viên tích cực
Tham gia ngày
23 Tháng bảy 2009
Bài viết
868
Được thích
448
Điểm
735
Tuổi
36
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
 

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
6,660
Được thích
10,803
Điểm
1,860
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
 

be09

TNMT_Đồng Nai
Tham gia ngày
9 Tháng tư 2011
Bài viết
8,936
Được thích
8,621
Điểm
560
Tuổi
62
Nơi ở
Biên Hòa, Đồng Nai
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.
 

Ba Tê

Cạo Rồi Khỏi Gội
Tham gia ngày
5 Tháng năm 2009
Bài viết
11,368
Được thích
16,204
Điểm
1,860
Tuổi
61
Nơi ở
An Giang
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
 
Top Bottom