Xác định mã số tiếp theo (1 người xem)

  • Thread starter Thread starter Excel365
  • Ngày gửi Ngày gửi

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

Excel365

Thành viên tích cực
Tham gia
29/10/10
Bài viết
866
Được thích
127
Giới tính
Nam
MSNV
S1237
S1238
S1239
S1240

Em Có dãy mã số như trên, dùng công thức gì để em biết được mã số tiếp theo sẽ là S1241,
Nhờ các anh chị giúp em. Trân trọng cảm ơn
 
Có nhiều cách lắm. Ví dụ
Mã:
="S"&MAX(--Right(A2:A5,4))+1
Ctrl + Shift + Enter
 
MSNV
S1237
S1238
S1239
S1240

Em Có dãy mã số như trên, dùng công thức gì để em biết được mã số tiếp theo sẽ là S1241,
Nhờ các anh chị giúp em. Trân trọng cảm ơn
Nếu mã cứ theo quy cách như vậy thì mã tiếp theo sẽ là =LEFT(A4)&RIGHT(A4,LEN(A4)-1)+1 với A4 là cái ô chứa mã S1240.

Góp ý: Khi mở một topic hoặc gửi một bài thì bạn nên nhấn nút Coi lại bài trước khi gửi để tránh trường hợp như 2 topic kia nhé.
 
MSNV
S1237
S1238
S1239
S1240

Em Có dãy mã số như trên, dùng công thức gì để em biết được mã số tiếp theo sẽ là S1241,
Nhờ các anh chị giúp em. Trân trọng cảm ơn
Không biết máy bạn thế nào chứ máy tôi chỉ cần kéo Fill xuống là được ngay mà đâu cần công thức.
 
Không biết máy bạn thế nào chứ máy tôi chỉ cần kéo Fill xuống là được ngay mà đâu cần công thức.
PHP:
biết được mã số tiếp theo sẽ là S1241
Đúng kéo xuống thì nó tự động tăng, nhưng ý của em là muốn xác định số tiếp theo thôi.
 
Khi mã là
S01993
S01995
S01996
Xài 2 công thức trên sẽ lỗi to!

Mà mã nhân viên nên có độ dài như nhau, các bạn à!
 
/(/ếu độ dài mã luôn là 6 thì xài hàm tự tạo này:

PHP:
Option Explicit
Function MaNV(Ma As String) As String
 MaNV = Left(Ma, 1) & Right("0000" & CStr(CLng(Mid(Ma, 2, 9) + 1)), 5)
End Function
(Chắc bạn tùy chỉnh được nếu độ dài mã <> 6!))(&&@@

Chúc vui nhân cuối tuần!
}}}}}
 
/(/ếu độ dài mã luôn là 6 thì xài hàm tự tạo này:

PHP:
Option Explicit
Function MaNV(Ma As String) As String
 MaNV = Left(Ma, 1) & Right("0000" & CStr(CLng(Mid(Ma, 2, 9) + 1)), 5)
End Function
(Chắc bạn tùy chỉnh được nếu độ dài mã <> 6!))(&&@@

Chúc vui nhân cuối tuần!
}}}}}
Giúp em đưa code vào form, khi Bộ phận <> " " , thì mã số sẽ tạo ra mã số tăng dần đều.
Tran trong cam on
 

File đính kèm

Bạn sửa lại macro hiện hữu chút đĩnh & thêm hàm tạo mã đó vô, như vầy:

PHP:
Private Sub CommandButton1_Click()
    Dim iRow As Long
    Dim wS As Worksheet
    
    Set wS = Worksheets("Sheet1")
    iRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
    wS.Cells(iRow + 1, "A").Value = MaNV(Cells(iRow, "A").Value)
    wS.Cells(iRow + 1, "B").Value = Me.bophan.Value
End Sub
Mã:
[B]Function MaNV(Ma As String) As String
[/B] MaNV = Left(Ma, 1) & Right("000" & CStr(CLng(Mid(Ma, 2, 5) + 1)), 4)
[B]End Function
[/B]
 
PHP:
Private Sub CommandButton1_Click()
    Dim iRow As Long
    Dim wS As Worksheet
    
    Set wS = Worksheets("Sheet1")
    iRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
    wS.Cells(iRow + 1, "A").Value = MaNV(Cells(iRow, "A").Value)
    wS.Cells(iRow + 1, "B").Value = Me.bophan.Value
End Sub
Mã:
[B]Function MaNV(Ma As String) As String
[/B] MaNV = Left(Ma, 1) & Right("000" & CStr(CLng(Mid(Ma, 2, 5) + 1)), 4)
[B]End Function
[/B]
Cám ơn HYEN17 nhiều. Chúc ngày mới tốt lành.
Thân!
 
PHP:
Private Sub CommandButton1_Click()
    Dim iRow As Long
    Dim wS As Worksheet
    
    Set wS = Worksheets("Sheet1")
    iRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
    wS.Cells(iRow + 1, "A").Value = MaNV(Cells(iRow, "A").Value)
    wS.Cells(iRow + 1, "B").Value = Me.bophan.Value
End Sub
Mã:
[B]Function MaNV(Ma As String) As String
[/B] MaNV = Left(Ma, 1) & Right("000" & CStr(CLng(Mid(Ma, 2, 5) + 1)), 4)
[B]End Function
[/B]
Cho em hỏi thêm cái nữa nhe.
nếu mình muốn khi mở form lên thì textbox maso sẽ hiện thị mã số mới. khi mình bấm nút thêm thì nó sẽ xuống sheet.
Trân trọng cảm ơn
 
Lần chỉnh sửa cuối:
Ngoài macro đã có của bạn, bạn cần thêm 2 cái này:

[thongbao]Của bạn nguyên xi:
PHP:
Private Sub CommandButton1_Click()
    Dim iRow As Long
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")
    iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    ws.Cells(iRow, 1).Value = Me.maso.Value
    ws.Cells(iRow, 2).Value = Me.bophan.Value
End Sub
[/thongbao]
Cần thêm
PHP:
Private Sub UserForm_Initialize()
    Me.maso.Value = MaNV(Sheet1.[A1].End(xlDown).Value)
End Sub
&
Mã:
[B]Function MaNV(Ma As String) As String[/B]
 MaNV = Left(Ma, 1) & Right("000" & CStr(CLng(Mid(Ma, 2, 5) + 1)), 4)
[B]End Function[/B]
 
[thongbao]Của bạn nguyên xi:
PHP:
Private Sub CommandButton1_Click()
    Dim iRow As Long
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")
    iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    ws.Cells(iRow, 1).Value = Me.maso.Value
    ws.Cells(iRow, 2).Value = Me.bophan.Value
End Sub
[/thongbao]
Cần thêm
PHP:
Private Sub UserForm_Initialize()
    Me.maso.Value = MaNV(Sheet1.[A1].End(xlDown).Value)
End Sub
&
Mã:
[B]Function MaNV(Ma As String) As String[/B]
 MaNV = Left(Ma, 1) & Right("000" & CStr(CLng(Mid(Ma, 2, 5) + 1)), 4)
[B]End Function[/B]
Cám ơn ChanhTQ@ nhiều
Nhưng cho em hỏi, là sao khi mình bấm nút thêm thì mã số hồ sơ trên Form no không tăng lên. Khi thoát Form mở lại thì nó mới được. Ý của em là khi bấm nút thêm xong thì mã số tren form sẽ tự động tăng lên.
 
Cám ơn nhiều
Nhưng cho em hỏi, là sao khi mình bấm nút thêm thì mã số hồ sơ trên Form no không tăng lên. Khi thoát Form mở lại thì nó mới được. Ý của em là khi bấm nút thêm xong thì mã số tren form sẽ tự động tăng lên.

Lúc đó bạn thêm câu lệnh triệu gọi macro

UserForm_Initialize 1 lần nữa trong macro cũ của bạn.

Hay cách khác là . . . .
 
Lúc đó bạn thêm câu lệnh triệu gọi macro

UserForm_Initialize 1 lần nữa trong macro cũ của bạn.

Hay cách khác là . . . .
Em cũng có thêm câu lệnh đó, nhưng bị lỗi.
PHP:
Hay cách khác là . . . .
là gì vậy chỉ em với
 
Cám ơn ChanhTQ@ nhiều
Nhưng cho em hỏi, là sao khi mình bấm nút thêm thì mã số hồ sơ trên Form no không tăng lên. Khi thoát Form mở lại thì nó mới được. Ý của em là khi bấm nút thêm xong thì mã số tren form sẽ tự động tăng lên.

thêm dòng code này vào dòng cuối trước End Sub của sub: Private Sub CommandButton1_Click()
PHP:
Me.maso.Value = wS.Cells(iRow + 1, "A").Value

hoặc thích tăng lên, thì thay bằng dùng dòng này

PHP:
Me.maso.Value = MaNV(wS.Cells(iRow + 1, "A").Value)
(thức là cho vào hàm MaNV)
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom