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

  • Thread starter Thread starter le_vis
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

le_vis

Thành viên tích cực
Tham gia
23/7/09
Bài viết
1,327
Được thích
815
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

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

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

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

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

Back
Top Bottom