


Dùng VBA có được không bạn?Nhờ các anh, chị giúp em lập công thức tạo mã tăng dần theo ký tự đàu (từ trái sang)
Trân trọng cảm ơn
Nhờ các anh, chị giúp em lập công thức tạo mã tăng dần theo ký tự đàu (từ trái sang)
Trân trọng cảm ơn


Vẫn được bạn ơi. Thank!Dùng VBA có được không bạn?


Vậy bác giúp em làm sao cho nó co độ dài như nhau nhe.Mình xin góp với chủ topic 1 ý hoàn toàn khác:
Đó là mã nên có độ dài như nhau; Nhất là xài trong excel.
Sau này bạn lọc, hay dùng các hàm CSDL không vấp sai sót không đáng có!



Đã có các bạn khác giúp bạn rồi mà.Vẫn được bạn ơi. Thank!


Nhưng em muốn tìm hiểu thêm 1 cách làm mới ạĐã có các bạn khác giúp bạn rồi mà.



Muốn tìm hiểu thì dùng code này thử xem!Nhưng em muốn tìm hiểu thêm 1 cách làm mới ạ
Public Sub STT()
Dim i As Long, j As Long, k As Long, rng As Range
Set rng = Sheet1.Range("A2:B" & Sheet1.Range("B65500").End(xlUp).Row)
For i = 1 To rng.Rows.Count
j = j + 1
rng(i, 1) = Left(rng(i, 2), 1) & j
If Left(rng(i + 1, 2), 1) <> Left(rng(i, 2), 1) And rng(i + 1, 1) <> "" Then
j = -1
j = j + 1
rng(i + 1, 1) = Left(rng(i + 1, 2), 1) & j
End If
Next i
End Sub
Lấy 1 ký tự từ trái, và nối với 1 số (Số này tăng dần lên theo ký tự )



Public Sub STT()
Dim i As Long, j As Long, k As Long, rng As Range
Set rng = Sheet1.Range("A2:B" & Sheet1.Range("B65500").End(xlUp).Row)
For i = 1 To rng.Rows.Count
If Left(rng(i - 1, 2), 1) = Left(rng(i, 2), 1) Then
j = j + 1
rng(i, 1) = Left(rng(i, 2), 1) & j
ElseIf Left(rng(i - 1, 2), 1) <> Left(rng(i, 2), 1) And rng(i + 1, 2) <> "" Then
j = 0: j = j + 1
rng(i, 1) = Left(rng(i, 2), 1) & j
End If
Next i
End Sub
vậy bác giúp em làm sao cho nó co độ dài như nhau nhe.
Trân trọng



Vì mã này là do nối các chuỗi lại mà thành nên không có công thức nào có thể tô màu lẫn lộn như bạn yêu cầu được đâu.Nhờ các anh, chị xem vàgiúp em Rút gon công thức tạo mã hồ sơ, vàtô màu như trong file đính kèm ạ.
Trân trọng cảm ơn
Bạn xem File đính kèm.Nhờ các anh, chị xem vàgiúp em Rút gon công thức tạo mã hồ sơ, vàtô màu như trong file đính kèm ạ.
Trân trọng cảm ơn



Nhấn nút tạo mã và xem kết quả đã đúng ý chưa nhé? Nhớ hồi âm lại cho tôi sau khi Test xong.Nhờ các anh, chị xem vàgiúp em Rút gon công thức tạo mã hồ sơ, vàtô màu như trong file đính kèm ạ.
Trân trọng cảm ơn


Cám ơn chuot0106 nhiều.Muốn tô màu thì dùng thằng này xem sao.



Muốn tự động tạo mã thì dùng cái này. Tôi không hiểu tại sao mã đầu tiên thì là 1 chữ S và 4 kí tự số nhưng sang mã thứ 2 thì lại là 2 kí tự chữ và 3 kí tự số mà không phải là 4 kí tự số như ở mã 1. Theo tôi thì nên tạo mã có dạng như sau:Cám ơn chuot0106 nhiều.
Nhưng có cách nào khi mình nhập Tổ, và Ngày nhận thì mã sẽ tự sinh ra không cần phải Click vô nút tạo mã hả anh
Với lại Chuỗi S**** nó là tăng dần điều.
VD: S0001, S0002, S0003, .....S9999
ANh xem lại giúp em
Tức số kí tự số ử 2 đoạn mã đều là 4. Tất nhiên cái này là do bạn thôi.S0001/PC0001/01/2014





Muốn tự động tạo mã thì dùng cái này. Tôi không hiểu tại sao mã đầu tiên thì là 1 chữ S và 4 kí tự số nhưng sang mã thứ 2 thì lại là 2 kí tự chữ và 3 kí tự số mà không phải là 4 kí tự số như ở mã 1. Theo tôi thì nên tạo mã có dạng như sau:
S0001/PC0001/01/2014
Tức số kí tự số ử 2 đoạn mã đều là 4. Tất nhiên cái này là do bạn thôi.
Tôi viết code này là dựa theo các dữ liệu có trên File bạn gửi nên và tôi thấy 1 số điều như sau:
+ Các mã của bạn đều gồm 18 kí tự. Không biết điều tôi thấy có luôn đúng hay không?
+ Mã tổ gồm 2 kí tự. Không biết có thay đổi gì không?
Nếu như có thay đổi gì khác bạn phải nói hết ra. Tôi không phải là người cấn nên tôi không thể lường hết các trường hợp được và để tránh mất thời gian cho bạn và cho tôi thì bạn nên nêu thật rõ ràng ra!



Bạn Test File tôi mới gửi chưa? Mà bạn gửi cái gì vậy?S= Ký hiệu tến viết tắt của Công ty và 4 số phía sau là số thứ tự lao động nhận thêm trong năm
Mã Tổ và 3 số ngoài sau là số thứ tẹ lao động nhận cho Tổ/năm
Riêng mã tổ thì thực tế hiện tại trong công ty có 1 số Tổ lại nhiều hơn 2 ký tự
[TABLE="class: outer_border, width: 500"]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]BTGĐ[/TD]
[TD]Ban Tổng giám đốc[/TD]
[/TR]
[TR]
[TD]TCHC[/TD]
[TD]Tổ chức hành chánh[/TD]
[/TR]
[TR]
[TD]NVKD[/TD]
[TD]Nghiệp vụ kinh doanh[/TD]
[/TR]
[TR]
[TD]KT[/TD]
[TD]Kỹ thuật - XD Cơ bản[/TD]
[/TR]
[TR]
[TD]QA[/TD]
[TD]Quản lý chất lượng[/TD]
[/TR]
[TR]
[TD]VS[/TD]
[TD]Vệ sinh[/TD]
[/TR]
[TR]
[TD]GĐXN[/TD]
[TD]Ban giám đốc xí nghiệp[/TD]
[/TR]
[TR]
[TD]BĐH[/TD]
[TD]Ban điều hành sản xuất[/TD]
[/TR]
[TR]
[TD]KCS[/TD]
[TD]Tổ KCS
[/TD]
[/TR]
[TR]
[TD]MH[/TD]
[TD]Mua hàng
[/TD]
[/TR]
[TR]
[TD]KH[/TD]
[TD]Kiểm hàng[/TD]
[/TR]
[TR]
[TD]TK[/TD]
[TD]Thống kê[/TD]
[/TR]
[TR]
[TD]ĐHCN[/TD]
[TD]Điều hành công nhật[/TD]
[/TR]
[TR]
[TD]PC[/TD]
[TD]Phân cỡ[/TD]
[/TR]
[TR]
[TD]DC[/TD]
[TD]Dạt cỡ[/TD]
[/TR]
[TR]
[TD]XH[/TD]
[TD]Xếp hộp[/TD]
[/TR]
[TR]
[TD]CĐ[/TD]
[TD]Cấp đông[/TD]
[/TR]
[TR]
[TD]PVBX[/TD]
[TD]Tổ phục vụ - Bốc xếp[/TD]
[/TR]
[TR]
[TD]KHO[/TD]
[TD]Kho thành phẩm[/TD]
[/TR]
[/TABLE]
Đó là những bộ phận thực tế tại công ty em.
Nhờ Chuot0106 xem giúp em cách đặt mã Bộ phận như vậy có vấn đề gì ko ạ. Nhờ anh giúp em đặt lại mã Bp cho nó thống nhất luôn


Rồi anh, Em gởi bảng bộ phận tại công ty. Nhờ anh xem cách đạt mã như vậy có vấn đề gi ko? nhờ anh đặt mã BP lại dùm e,Bạn Test File tôi mới gửi chưa? Mà bạn gửi cái gì vậy?



Giữa File này với File bạn đưa nên diễn đàn chẳng thấy mối liên quan gì cả? Công việc của tôi chưa bao giờ phải đặt mã phức tạp như bạn cả. Tuy nhiên khi nói đến mã là phải duy nhất thế thôi. Bạn cứ đặt sao cho bạn cảm thấy hợp lí là được. Tôi ví dụ công ty bạn có 1000 công nhân chẳng hạn thì mã sẽ là: CN0001, CN0002, ...,CN0023,CN0024,..., CN0999, CN1000. Tức vùng kí tự chữ số sẽ có số lượng chữ số(4 chữ số) đúng bằng số chữ số của số lớn nhất(1000).Rồi anh, Em gởi bảng bộ phận tại công ty. Nhờ anh xem cách đạt mã như vậy có vấn đề gi ko? nhờ anh đặt mã BP lại dùm e,


Mã S và 4 số phía sau chưa ổn hả gì đó anh, số TT nhảy chưa đúng anh ơiMuốn tự động tạo mã thì dùng cái này. Tôi không hiểu tại sao mã đầu tiên thì là 1 chữ S và 4 kí tự số nhưng sang mã thứ 2 thì lại là 2 kí tự chữ và 3 kí tự số mà không phải là 4 kí tự số như ở mã 1. Theo tôi thì nên tạo mã có dạng như sau:
Tức số kí tự số ử 2 đoạn mã đều là 4. Tất nhiên cái này là do bạn thôi.



Bạn viết tôi chả hiểu gì cả?(Chỗ màu đỏ), nhảy chưa đúng là sao? Nó nhảy thế nào?(Chỗ màu xanh)Mã S và 4 số phía sau chưa ổn hả gì đó anh, số TT nhảy chưa đúng anh ơi


Em goi lại file anh xem dùm emBạn viết tôi chả hiểu gì cả?(Chỗ màu đỏ), nhảy chưa đúng là sao? Nó nhảy thế nào?(Chỗ màu xanh)



Số thứ thự đi kèm với S hôm trước của bạn đâu có như vậy? Bạn xem lại ở File bạn đưa nên hôm trước xem hay tôi nhìn nhầm.Em goi lại file anh xem dùm em


chắc file truoc em làm sai đó anh.Số thứ thự đi kèm với S hôm trước của bạn đâu có như vậy? Bạn xem lại ở File bạn đưa nên hôm trước xem hay tôi nhìn nhầm.



Tôi hộ bạn lần cuối cùng với cách lập mã như sau, bạn xem nếu đồng ý thì tôi giúp tiếp còn không thì đưa ý kiến luôn! Tôi bắt đầu ngán lắm rồi!chắc file truoc em làm sai đó anh.
Anh chỉnh lại giúp em nhé


Tôi hộ bạn lần cuối cùng với cách lập mã như sau, bạn xem nếu đồng ý thì tôi giúp tiếp còn không thì đưa ý kiến luôn! Tôi bắt đầu ngán lắm rồi!
+ Đi cùng với S sẽ tăng dần, ví dụ: S0001 hay S00001(Cái này phụ thuộc số lương nhiều hay ít?)
+ Đi cùng với mã tổ cũng sẽ có dạng như đi cùng với S, ví dụ: PC0001 hoặc PC00001
Bạn thấy sao????


Không phải vậy anhNếu vậy thì khó viết code lắm. Chẳng hạn nếu mã S là S9999 thì mã tổ sẽ là bao nhiêu vậy bạn? Theo tôi mã tổ khi đó phải là, ví dụ PC9999 chứ? Bạn định khi mã S lên đến 9999 thì mã tổ là bao nhiêu? PC999 ah????



Tôi nghĩ chỗ đỏ đỏ phải là S0001 chứ???Không phải vậy anh
Mã số TT (S0001) là số Công nhân nhận vào Công ty trong 1 năm
Mã Tổ là Số Công nhân nhận vào Tổ đó trong 1 năm, chứ nó ko tăng theo Số Thứ tự S0001 thi mã Tổ phải là PC001
VD:
Nếu nhận người 1 ngời vào Tổ PC thì có mã số TT là S0002 và mã Tổ là PC001, vài hôm sau nhận 1 người khác vào tổ TK thì mã số TT là S0002 mã Tổ là TK001.
Tiếp tuc mấy ngày sau nưa nhận thêm 1 người nữa vào Tổ PC thì mã số TT là S0003 và mã số Tổ sẽ là PC002


Em làm phiền tí nữa nhe anhDownload lại File tôi mới gửi lại, File trước code nhầm tý!



Tôi chán với các yêu cầu cứ thay dổi xoành xoạch của bạn rồi. Lúc đầu tạo nút bấm sau đó bạn muốn tự động "Ừ thì tự động" Giờ thì lại ...Thôi chờ người khác dễ tính giúp bạn vậy. Tôi chịu rồi!Em làm phiền tí nữa nhe anh
Có cách nào khi mình nhập thêm 1 dòng mới ( Tổ và ngày nhận hồ sơ) thì code không duyệt chay lại những dòng phí trên, mà chỉ tao ra 1 mã hồ sơ tường ứng ở bên cột B. ngay dòng hiẹn tại mới vừa nhập


Cảm ơn anh rất nhiều. Trân trọng!Tôi chán với các yêu cầu cứ thay dổi xoành xoạch của bạn rồi. Lúc đầu tạo nút bấm sau đó bạn muốn tự động "Ừ thì tự động" Giờ thì lại ...Thôi chờ người khác dễ tính giúp bạn vậy. Tôi chịu rồi!


Bạn lên nói rõ yêu cầu ra. Đọc Topic thấy câu hỏi của bạn lắt nhắt quá!Cảm ơn anh rất nhiều. Trân trọng!



Code này tôi dùng mảng nên tốc độ cải thiện rất nhiều. Tôi nghĩ bạn thay đổi lựa chọn của mình liên tục cũng do vấn đề tốc độ cả thôi có đúng không???Cảm ơn anh rất nhiều. Trân trọng!


Đúng là Code nhanh hơn rất nhiều. Cám ơn anh rất nhiều. Chúc anh vui vẻ, gặp nhièu may mắn trong cuộc sống. Trân trọngCode này tôi dùng mảng nên tốc độ cải thiện rất nhiều. Tôi nghĩ bạn thay đổi lựa chọn của mình liên tục cũng do vấn đề tốc độ cả thôi có đúng không???
Code này tôi tách phần tô màu riêng ra. Sau khi tạo mã xong thì nhấn nút "TÔ MÀU" nhé! Nếu gộp chung vào cũng được nhưng như thế code sẽ chậm hơn 1 chút. Bạn muốn gộp chung cũng được(Tùy bạn). Theo tôi nên để riêng ra!



Nhiều lúc căng thẳng quá (vì suy nghĩ về việc của bạn)nên có những lời hơi gay gắt với bạn. Có gì mong bạn bỏ qua. Bạn Test thử code đi, nhập số liệu với các mã khoảng 9999 mã xem tốc độ có còn nhanh không? Tôi ngại Test vì ngại phải bịa mã lắm! Có gì hồi âm lại cho tôi!Đúng là Code nhanh hơn rất nhiều. Cám ơn anh rất nhiều. Chúc anh vui vẻ, gặp nhièu may mắn trong cuộc sống. Trân trọng


Không có gì đâu anh.Nhiều lúc căng thẳng quá (vì suy nghĩ về việc của bạn)nên có những lời hơi gay gắt với bạn. Có gì mong bạn bỏ qua. Bạn Test thử code đi, nhập số liệu với các mã khoảng 9999 mã xem tốc độ có còn nhanh không? Tôi ngại Test vì ngại phải bịa mã lắm! Có gì hồi âm lại cho tôi!



Nếu nhập trên Form thì bạn làm như sau:Không có gì đâu anh.
Em có 1 vấn đề này không biết hỏi tại đây có đúng ko. Có gi anh bỏ qua nhe
Hiện tại có 1 số người lại xin việc, nhưng trên CMND của họ lại ghi chỉ có năm (không có ngày tháng), 1 số người khác thì lại có đầy đủ ngày tháng.
Nếu năm không thì em chỉ nhập là 4 số . Ví dụ: 1985 -> Kiểu số
Nếu có đầy đủ ngày tháng thì sẽ nhập theo dang dd/mm/yyyy. VD 11/12/1985
Rất là tốn thời gian cho việc đinh dạng vừa kiểu số, vừa kiểu dd/mm/yyyy trên cùng 1 côt.
Không biết có cách nào để mình tạo ra 1 macro cho đinh dang tự động:
VD: Nếu mình nhập 1985 thì sẽ hiện thị thành 1985
Nếu nhập 11121985 thì sẽ hiện thị thành 11/12/1985
[FONT=Verdana]Private Sub comantbutton()[/FONT]
[FONT=Verdana]With Sheet1[/FONT]
[FONT=Verdana].................[/FONT]
[FONT=Verdana]If Len(ngaysinh) = 4 Then[/FONT]
[FONT=Verdana].Cells(i, 1) = Val(ngaysinh)[/FONT]
[FONT=Verdana]Else[/FONT]
[FONT=Verdana].Cells(i, 1) = Format(ngaysinh, "mm/dd/yyyy")[/FONT]
[FONT=Verdana]End If[/FONT]
[FONT=Verdana]End Sub[/FONT]


Hiện em cũng đang làm 1 From để nhập liệu, để em test thử. Cám ơn anhNếu nhập trên Form thì bạn làm như sau:
"ngaysinh" ở đây là 1 texbox để nhập ngày sinh.Mã:[FONT=Verdana]Private Sub comantbutton()[/FONT] [FONT=Verdana]With Sheet1[/FONT] [FONT=Verdana].................[/FONT] [FONT=Verdana]If Len(ns) = 4 Then[/FONT] [FONT=Verdana].Cells(i, 1) = Val(ns)[/FONT] [FONT=Verdana]Else[/FONT] [FONT=Verdana].Cells(i, 1) = Format(ngaysinh, "mm/dd/yyyy")[/FONT] [FONT=Verdana]End If[/FONT] [FONT=Verdana]End Sub[/FONT]
Hiện tại có 1 số người lại xin việc, nhưng trên CMND của họ lại ghi chỉ có năm (không có ngày tháng), 1 số người khác thì lại có đầy đủ ngày tháng.
Nếu năm không thì em chỉ nhập là 4 số . Ví dụ: 1985 -> Kiểu số
Nếu có đầy đủ ngày tháng thì sẽ nhập theo dang dd/mm/yyyy. VD 11/12/1985
Rất là tốn thời gian cho việc đinh dạng vừa kiểu số, vừa kiểu dd/mm/yyyy trên cùng 1 côt.


Code này tôi dùng mảng nên tốc độ cải thiện rất nhiều. Tôi nghĩ bạn thay đổi lựa chọn của mình liên tục cũng do vấn đề tốc độ cả thôi có đúng không???
Code này tôi tách phần tô màu riêng ra. Sau khi tạo mã xong thì nhấn nút "TÔ MÀU" nhé! Nếu gộp chung vào cũng được nhưng như thế code sẽ chậm hơn 1 chút. Bạn muốn gộp chung cũng được(Tùy bạn). Theo tôi nên để riêng ra!


Tôi xin nhắc lại lần cuối, Nước ta 'Chủ nghĩa lí lịch' vẫn rất nặng nề;
Nếu bạn & người LĐ nào đó đang thiếu ngày hay tháng sinh mà không chấp nhận thêm cho đủ ngày sinh có dạng Đ/MM/yyyy thì nên từ chối nhận vô CQ bạn;
Bạn hãy từ bỏ cách khác để cùng NLĐ lách, hay bỏ qua chuyện này;
Sau này còn chuyện sổ BHXH hay những giấy tờ khác mà giờ bạn làm vậy, sau này NLĐ gánh hậu quả bạn có đan tâm?
Cũng lưu í mọi thành viên khác: "Cố tình giúp cách nào đó để 'lách' chuyện này cũng là không tốt lắm đâu!"