Cần giúp về cảnh báo sắp đến hạn ! (1 người xem)

Liên hệ QC

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

ryantang

Thành viên mới
Tham gia
28/6/11
Bài viết
21
Được thích
0
Dựa vào ngày hiện tại today()

Đối chiếu với ngày xóa:
- Nếu sắp đến ngày xóa 10 ngày thì row ngay tại HSSV đó sẽ chuyển sang màu đỏ.
- Nếu quá hạn vẫn chưa xóa thì sẽ chuyển sang màu xanh dương.
 

File đính kèm

Mã:
Sub CanhBao_GPE()
Dim i As Long, Arr(), Endr As Long, NgayXoa As Date, HienTai As Date
With Sheet1
    If .AutoFilterMode Then .AutoFilterMode = False
    Endr = .Range("D65500").End(xlUp).Row
    If Endr > 7 Then
        HienTai = DateSerial(Year(Now()), Month(Now()), Day(Now()))
        Arr = .Range("A8:R" & Endr)
        For i = 1 To Endr - 7
            If IsDate(Arr(i, 9)) Then
                NgayXoa = CDate(Arr(i, 9))
                If NgayXoa > HienTai Then
                    .Rows(i + 7).Interior.Color = 5296274
                ElseIf HienTai - NgayXoa <= 10 Then
                    .Rows(i + 7).Interior.Color = 255
                End If
            End If
        Next i
        .Range("A7:R" & Endr).AutoFilter
    Else
         Msgbox "KHONG CO DU LIEU DE LAM !", , GPE
    End If
End With
End Sub

Thử xem được chưa nha bạn ( do mình kiếm không ra màu xanh dương là số bao nhiêu nên dùng tạm màu xanh lá )
 
Upvote 0
lọc mới được hả bạn ?
mình cần là khi mở file ra xem tự nó chạy luôn !
chứ mình không cần thao tác lọc mới tìm được !
 
Lần chỉnh sửa cuối:
Upvote 0
lọc mới được hả bạn ?
mình cần là khi mở file ra xem tự nó chạy luôn !
chứ mình không cần thao tác lọc mới tìm được !
Nếu bạn muốn mở lên nó chạy thì bạn bấm Alt + F11 => chọn This workbook => chọn sự kiện cho nó là Workbook_Open() , rồi bạn chèn đoạn code kia vào là theo yêu cầu của bạn rồi !
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Thì thử với macro sự kiện:
PHP:
Option Explicit
Private Sub Worksheet_Activate()
 Dim Rws As Long, Rng As Range, Cls As Range
 
 Rws = [d7].CurrentRegion.Rows.Count
 Set Rng = [i8].Resize(Rws).SpecialCells(xlCellTypeConstants, 21)
 For Each Cls In Rng
    If Date - Cls.Value < 10 And Date > Cls.Value Then
        Cls.Resize(, 4).Interior.ColorIndex = 3
    ElseIf Date > Cls.Value Then
        Cls.Resize(, 4).Interior.ColorIndex = 5
    Else
        If Cls.Interior.ColorIndex > 2 Then _
            Cls.Resize(, 4).Interior.ColorIndex = 2
    End If
 Next Cls
End Sub
 
Upvote 0
hình như mấy bạn chưa hiểu ?
Cái này thấy vậy mà hơi rối !

<< Đối chiếu với ngày xóa:
- Nếu sắp đến ngày xóa 10 ngày thì row ngay tại HSSV đó sẽ chuyển sang màu đỏ.
- Nếu quá hạn vẫn chưa xóa thì sẽ chuyển sang màu xanh dương.>>

- Có nghĩa là Nếu đến ngày xóa (I6) và ngày hiện tại thì row hoặc dòng chữ chuyển sang màu đỏ.
- Nếu quá hạn vẫn chưa xóa thì có nghĩa là nó dựa M6 (Chưa xóa kỷ luật) và ngày hiện tại nó sẽ chuyển sang mà xanh, N6 (Đã xóa kỷ luật) thì sẽ không có màu !
- Còn chưa tới hạn thì dòng đó vẫn y nguyên không có thay đổi !
 
Lần chỉnh sửa cuối:
Upvote 0
Thì thử với macro sự kiện:
PHP:
Option Explicit
Private Sub Worksheet_Activate()
 Dim Rws As Long, Rng As Range, Cls As Range
 
 Rws = [d7].CurrentRegion.Rows.Count
 Set Rng = [i8].Resize(Rws).SpecialCells(xlCellTypeConstants, 21)
 For Each Cls In Rng
    If Date - Cls.Value < 10 And Date > Cls.Value Then
        Cls.Resize(, 4).Interior.ColorIndex = 3
    ElseIf Date > Cls.Value Then
        Cls.Resize(, 4).Interior.ColorIndex = 5
    Else
        If Cls.Interior.ColorIndex > 2 Then _
            Cls.Resize(, 4).Interior.ColorIndex = 2
    End If
 Next Cls
End Sub

cái này sao mình đưa vào không có gì vậy !
 
Upvote 0
[thongbao]cái này sao mình đưa vào không có gì vậy ![/thongbao]
Thấy trong file của bạn có macro nên chưa hướng dẫn kỹ cách xài:

Chép macro vô module sự kiện của trang tính
Sang trang tính khác & sau đó trở về trang tính vừa có macro thì được
Thử đi bạn, sẽ thích ngay mà!
 
Upvote 0
hình như mấy bạn chưa hiểu ?
bạn coi lại yêu cầu bài đầu tiên thử xem người đọc vào hiểu sao mà bạn nói chưa hiểu ? Thế tại sao bạn không miêu tả yêu cầu ngay từ đầu luôn

Nếu quá hạn vẫn chưa xóa thì có nghĩa là nó dựa M6 (Chưa xóa kỷ luật) và ngày hiện tại nó sẽ chuyển sang mà xanh, N6 (Đã xóa kỷ luật) thì sẽ không có màu !
Chỗ này mình hiểu như thế này đúng không ? Nếu quá hạn mà Cột N ( tức cột đã xóa kỷ luật ) có dấu "X" thì nó không tô màu, ngược lại nếu cột M( chưa xóa kỷ luật ) nếu có dấu "X" thì nó sẽ tô màu xanh lá. Nếu đúng thế thì mình làm tiếp !
 
Upvote 0
vâng ! nó là vậy.
tại cái ngày mình cũng nhờ 01 bạn trên GPE làm dùm ! Bạn ấy nói qua đây nhờ mấy bạn bên này hỗ trợ tiếp !
Sorry !
Nhưng bạn làm vô trực tiếp file của mình luôn để mình tải về nhé !
 
Upvote 0
[thongbao]cái này sao mình đưa vào không có gì vậy ![/thongbao]
Thấy trong file của bạn có macro nên chưa hướng dẫn kỹ cách xài:

Chép macro vô module sự kiện của trang tính
Sang trang tính khác & sau đó trở về trang tính vừa có macro thì được
Thử đi bạn, sẽ thích ngay mà!

chạy không đúng.
đã xóa nó vẫn tô màu. HSSV bị xóa tên và bảo lưu vẫn tô luôn ^_^
sắp đến hạn xóa 10 ngày thì chuyển sang màu đỏ. qua ngày đó màu đỏ luôn ^_^
 
Upvote 0
(*) chạy không đúng.
(1) đã xóa nó vẫn tô màu. HSSV bị xóa tên và bảo lưu vẫn tô luôn ^_^
(2)sắp đến hạn xóa 10 ngày thì chuyển sang màu đỏ. qua ngày đó màu đỏ luôn ^_^

Thứ nhứt, bạn ăn nói cộc lốc là không nên trên diễn đàn này; Thêm nữa, bạn chắc đang làm ngành giáo dục; Đã vậy lời viết cần chỉnh chu hơn!

Thứ đến: Đầu câu theo thông lệ là viết hoa; Bạn chú ý thêm về vấn đề này trước khi học excel hay những thứ cao siêu khác từ nay về sau.

(1) 'đã xóa nó vẫn tô màu' là sao?; Trong iêu cầu bạn có đề cập đến chuyện sinh viên đã bị xóa tên, hay xóa kỹ luật gì đâu khi cần tô màu?!

"Hãy viết cho người khác hiểu, chứ không fải viết những gì mình hiểu", nghe bạn!

(2) "Sắp đến hạn xóa 10 ngày thì sang màu đỏ; quá hạn thì tô màu xanh D" : E rằng cách làm này của bạn sẽ gây trở ngại nhiều cho bạn mà thôi. Vì sao ư?, Chuyện tô màu để người vận hành CSDL dễ nhận ra diều gì đó khác thường so với những 'bình thường'; nhưng làm như bạn thì chỉ cách mươi ngày thì tô màu, còn cách dưới hơn thì không tô;

Vậy những ngày dưới mươi ngày đó bạn sẽ lẫn với những ngày khác đa số trong CSDL thì sao fân biệt?!
Rồi nữa, nếu cách mươi ngày đúng vô chủ nhựt hay thứ bảy nghỉ thì sao?

Vài lời cùng bạn & tạm biệt!
 
Upvote 0
Xóa & chưa xóa kỷ luật HSSV sẽ đối chiếu với ngày hiện tại và ngày xóa kỷ luật !
1. Báo sắp đến hạn xóa kỷ luật (ngày hiện tại - ngày xóa - chưa xóa kỷ luật) => màu đỏ (cách 10 ngày là mình tính cho chủ nhật để cho tiện đó bạn).
2. Nếu đến hạn vẫn chưa xóa kỷ luật, hoặc quá ngày xóa kỷ luật (ngày hiện tại - ngày xóa - đã xóa kỷ luật) => màu xanh.
3. Còn nếu mà chưa tới hạn xóa kỷ luật (ngày hiện tại) => màu lam chẳng hạn ^_^
4. Nếu đã có x vào cột đã xóa kỷ luật, xóa tên hssv, bảo lưu kết quả thì bình thường (không cần có màu).

Tại cái này nó rắc rối nhiều khi minh cũng không biết nói sao !
Sorry mấy bạn ! ~.~
 
Upvote 0
Thứ nhứt, bạn ăn nói cộc lốc là không nên trên diễn đàn này; Thêm nữa, bạn chắc đang làm ngành giáo dục; Đã vậy lời viết cần chỉnh chu hơn!

...

Vài lời cùng bạn & tạm biệt!

Nguyên tắc chung là "Kỷ luật" chỉ giành cho người khác, không ai áp dụng cho chính mình!!!

Tôi toan góp cách giải. Nhưng thôi, tự kỷ luật :)
 
Upvote 0
Mình không biết mới nhờ giúp đỡ.

Nhìn vô để diễn giải cho người ta hiểu cách làm đâu dễ ! có xíu cũng bắt lỗi >_<
 
Upvote 0

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

Back
Top Bottom