đã xem file của bạn nhưng chưa rõ ý bạn muốn đánh thứ tự thể nào, có hai cách hiểu:
1/ Từ một list các ngày đã có ở cột E, điền số thứ tự vào cột D tương ứng
2/ Từ một danh sách có sẵn, khi thêm ngày ở cột E thì tự động điền số thứ tự vào cột D ở dòng vừa nhập.
vậy ý bạn là cách 1 hay cách 2 hay theo nghĩa nào khác? cần làm rõ yêu cầu thì mới giúp bạn, hay bạn muốn cả hai cách?
bạn thử dùng công thức sau:Nhờ các anh chị giúp em công thức hoặc code đánh số TT theo tháng.
Khi sang tháng mới thì số thứ tự bắt đầu là 1
Trân trọng
B3=TEXT(DAY(E3);"000")&"-"&TEXT(E3;"mm/yyyy")
Theo cách 2 đó jack nt
2/ Từ một danh sách có sẵn, khi thêm ngày ở cột E thì tự động điền số thứ tự vào cột D ở dòng vừa nhập.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim CurMonth&, CurYear&, CurID$, PreNum&, PreMonth&, PreYear&, PreID$, a$(), b$()
If Target.Column = 5 Then 'can than thi dung target(1)tranh truong hop paste nhieu cells
If IsDate(Target) Then 'chi dien so thu tu neu nhap vao ngay
CurMonth = Month(Target) 'thang vua nhap
CurYear = Year(Target) 'nam vua nhap
PreID = Target.Offset(-1, -1) 'ID cu
a = Split(PreID, "-") 'tach theo "-"
ReDim Preserve a(1) 'redim de tranh loi dinh dang cu khong dung
PreNum = Val(a(0)) 'so thu tu cu
b = Split(a(1), "/") 'tach theo "/"
ReDim Preserve b(1) 'redim de tranh loi dinh dang cu khong dung
PreMonth = Val(b(0)) 'thang cu
PreYear = Val(b(1)) 'nam cu
If CurMonth = PreMonth And CurYear = PreYear Then 'neu cung thang nam thi tang 1
CurID = Format(PreNum + 1, "000") & "-" & Format(CurMonth, "00") & "/" & CurYear
Else 'khac thang nam thi quay lai 1
CurID = "001" & "-" & Format(CurMonth, "00") & "/" & CurYear
End If
Target.Offset(0, -1) = CurID 'dien vao cot D
End If
End If
End Sub
Cám ơn bạn nhiều nhe!Mã:Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim CurMonth&, CurYear&, CurID$, PreNum&, PreMonth&, PreYear&, PreID$, a$(), b$() If Target.Column = 5 Then 'can than thi dung target(1)tranh truong hop paste nhieu cells If IsDate(Target) Then 'chi dien so thu tu neu nhap vao ngay CurMonth = Month(Target) 'thang vua nhap CurYear = Year(Target) 'nam vua nhap PreID = Target.Offset(-1, -1) 'ID cu a = Split(PreID, "-") 'tach theo "-" ReDim Preserve a(1) 'redim de tranh loi dinh dang cu khong dung PreNum = Val(a(0)) 'so thu tu cu b = Split(a(1), "/") 'tach theo "/" ReDim Preserve b(1) 'redim de tranh loi dinh dang cu khong dung PreMonth = Val(b(0)) 'thang cu PreYear = Val(b(1)) 'nam cu If CurMonth = PreMonth And CurYear = PreYear Then 'neu cung thang nam thi tang 1 CurID = Format(PreNum + 1, "000") & "-" & Format(CurMonth, "00") & "/" & CurYear Else 'khac thang nam thi quay lai 1 CurID = "001" & "-" & Format(CurMonth, "00") & "/" & CurYear End If Target.Offset(0, -1) = CurID 'dien vao cot D End If End If End Sub
trong file của bạn, dán cái này vô code trong sheet1, bảo đảm chạy tốt (đã thử). có thể sửa, bổ sung theo ý.