Đây là file của mình (ở đây). Theo yêu cầu của bạn thì bạn sửa lại Sub TaoSoPhieu thành:Dear All!
Làm phiền Mọi người xem file đính kèm và hoàn thiện giúp mình code này với.mò mấy ngày không ra.
Thanks
Private Sub TaoSoPhieu()
Dim Cll As Range
On Error Resume Next
Set Cll = Sheet1.Range("A:A").Find(CbbLoai.List(, 1) & "???/" & Format(Date, "MM-yy"), [A1], , , , xlPrevious)
If Cll Is Nothing Then
TxtSoPhieu = CbbLoai.List(, 1) & "001/" & Format(Date, "MM-yy")
Else
TxtSoPhieu = CbbLoai.List(, 1) & Format(Mid(Cll, 3, 3) + 1, "000") & "/" & Format(Date, "MM-yy")
End If
End Sub
Chào bạn Nghĩa Phúc ! Chúc bạn một ngày mới vui vẻĐây là file của mình (ở đây). Theo yêu cầu của bạn thì bạn sửa lại Sub TaoSoPhieu thành:
Trong file này còn nhiều vị trí cần sửa, chẳng hạn: khi chưa chọn giá trị trong ListBox1 thì chưa cho lưu thông tin, hoặc nếu sau khi nhập dữ liệu, có sự xáo trộn dữ liệu (sắp xếp theo 1 tiêu chí nào đó) thì code trên sẽ tạo số phiếu không đúng.PHP:Private Sub TaoSoPhieu() Dim Cll As Range On Error Resume Next Set Cll = Sheet1.Range("A:A").Find(CbbLoai.List(, 1) & "???/" & Format(Date, "MM-yy"), [A1], , , , xlPrevious) If Cll Is Nothing Then TxtSoPhieu = CbbLoai.List(, 1) & "001/" & Format(Date, "MM-yy") Else TxtSoPhieu = CbbLoai.List(, 1) & Format(Mid(Cll, 3, 3) + 1, "000") & "/" & Format(Date, "MM-yy") End If End Sub
Trước hết xin khẳng định rằng: Yêu cầu này hoàn toàn có thể thực hiện được. Mình cũng đã có một vài ý tưởng cho việc này. Có lẽ là cần phải thêm câu lệnh sắp xếp lại dữ liệu vào code của nút Lưu (theo tháng-năm rồi đến số phiếu). Thêm câu lệnh này cũng sẽ giải quyết được vấn đề tạo số phiếu đúng thứ tự.Chào bạn Nghĩa Phúc ! Chúc bạn một ngày mới vui vẻ
Về code này thì tạm thời ổn rồi . Còn ý bạn nói xáo trộn dữ liệu theo một tiêu chí nào đó code sẽ tạo số phiếu không đúng nếu vậy khi mình muốn cập nhật hoặc chỉnh sửa số phiếu cũ (mình dùng SpinButton ) trên form thêm 1 loại hàng nữa thì đó là điều có thể hay không thể ?
Thanks Bạn