Tạo Tên chấm công tối đa số ký tự (4 người xem)

Liên hệ QC

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

Mình góp ý: Mã của bạn chưa thất sự khoa học cho lắm;
Vì như thế sẽ trùng rất nhiều trong ví dụ các tên khác nhau sau đây:
Trần Thị Hồng
Trần Như Hồng
Trần Khánh Hồng
Trần Mai Hồng
Trà Ninh Hồng
Trần Thị Ánh Hồng
Trần Anh Hồng
. . . .
Mình đề xuất với bạn cách mình hay làm như sau:
TMH00: Trần Mai Hồng
TMH01: Trần Thị Mỹ Hương
TMH02: Trần Bùi Minh Hương
TJH00: Trần Hà
TFH00: Trần Đức Hoan
TDH00: Trà Dưỡng Hoàn

Nếu bạn đồng í mình sẽ viết cho bạn macro tạo mã này luôn trong thời gian sớm nhất có thể!
Macro tạo mã của mình đã được thử sức với trường học gồm 1.600 em HS thì fần "định trị" chỉ đến con số 15 là cao nhất
Ngoài ra fần 'đặt tính' có tính giao tiếp cao giữa người có mã & bộ fận quản lý nhân sự, bạn thấy không?
 
Upvote 0
Mình góp ý: Mã của bạn chưa thất sự khoa học cho lắm;
Vì như thế sẽ trùng rất nhiều trong ví dụ các tên khác nhau sau đây:
Trần Thị Hồng
Trần Như Hồng
Trần Khánh Hồng
Trần Mai Hồng
Trà Ninh Hồng
Trần Thị Ánh Hồng
Trần Anh Hồng
. . . .
Mình đề xuất với bạn cách mình hay làm như sau:
TMH00: Trần Mai Hồng
TMH01: Trần Thị Mỹ Hương
TMH02: Trần Bùi Minh Hương
TJH00: Trần Hà
TFH00: Trần Đức Hoan
TDH00: Trà Dưỡng Hoàn

Nếu bạn đồng í mình sẽ viết cho bạn macro tạo mã này luôn trong thời gian sớm nhất có thể!
Macro tạo mã của mình đã được thử sức với trường học gồm 1.600 em HS thì fần "định trị" chỉ đến con số 15 là cao nhất
Ngoài ra fần 'đặt tính' có tính giao tiếp cao giữa người có mã & bộ fận quản lý nhân sự, bạn thấy không?
Cám ơn HYen17 rất nhiều.
Mục đích của mình là để thể hiện tên trên máy chấm công, để cho mỗi khi quẹt thẻ thì sẽ hiện thị tên của thẻ đó trên máy. . Chứ ko phải dùng mã đó để quản lý chấm công. Mã chấm công thì mình mình đã tạo theo máy rồi.
Trân trọng
 
Upvote 0
Mục đích của mình là để thể hiện tên trên máy chấm công, để cho mỗi khi quẹt thẻ thì sẽ hiện thị tên của thẻ đó trên máy. Trân trọng

Vậy bạn đã thử nghiệm khi quản lí với mã chấm công này chưa vậy?
Như vậy trong những trường hợp trùng nhau (cũng như không trùng) về mã chấm công thì vẫn fải xài mã NV duy nhất cũ.

Chắc bạn sẽ cho là tiện, nhưng mình hình dung công việc sẽ thêm ra hay sao í!
 
Upvote 0
Vậy bạn đã thử nghiệm khi quản lí với mã chấm công này chưa vậy?
Như vậy trong những trường hợp trùng nhau (cũng như không trùng) về mã chấm công thì vẫn fải xài mã NV duy nhất cũ.

Chắc bạn sẽ cho là tiện, nhưng mình hình dung công việc sẽ thêm ra hay sao í!
Vậy bạn đã thử nghiệm khi quản lí với mã chấm công này chưa vậy?
Cái này không phải mã chấm công bạn ơi, mà là tên hiển thị trên máy chấm công
 
Upvote 0
ĐOẠN CODE BÊN DƯỚI RẤT DÀI QUA BÊN PHẢI, CHÚ Ý COPY CHO HẾT RỒI DÁN VÀO MODULE

Đàng nào cũng phải dùng code (vì phải loại dấu tiếng Việt). Vậy thôi ta code toàn bộ luôn đi chứ vừa code vừa công thức cho phí.. cái code
Và nếu đã dùng code, tôi nghĩ nên tạo thành 1 Function chứ không nên là 1 Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Đàng nào cũng phải dùng code (vì phải loại dấu tiếng Việt). Vậy thôi ta code toàn bộ luôn đi chứ vừa code vừa công thức cho phí.. cái code
Và nếu đã dùng code, tôi nghĩ nên tạo thành 1 Function chứ không nên là 1 Sub

Vậy anh có thể gíup em đuợc ko.
 
Upvote 0
Công thức cho ô B2 của bạn (sau khi đã Bỏ dấu Tiếng Việt tại ô C2).

Mã:
 B2 =TRIM(LEFT(C2,8-LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(C2)," ",REPT(" ",LEN(C2))),LEN(C2))))-1)&" "&
TRIM(RIGHT(SUBSTITUTE(TRIM(C2)," ",REPT(" ",LEN(C2))),LEN(C2))))

Còn việc làm sao để bỏ dấu Tiếng Việt thì chắc phải đụng tới VBA. cái này bạn tìm trên diễn đàn. Mình có đọc đâu đo code của anh NDU thì phải, tự xóa dấu Tiếng Việt,mà giờ hok nhớ nó nằm ở topic nào. Bác ấy có ghé qua thì cho lại bạn vậy.........+-+-+-+/-*+/

--------------------------------------------------------------------------------------------------------------
P/s: đã tìm được đoạn code của anh Quanghai cho bạn, (anh QuangHai chứ không phải NDU)
Lưu ý: chạy code này thì toàn bộ chữ có dấu Tiếng Việt trong sheet bạn đang Active sẽ bị loại bỏ dấu hết đó nha. Tùy cẩn mà sử dụng.
Chạy code xong rồi dùng công thức như tôi nói ở trên sẽ đáp ứng được nhu cầu của bạn.

ĐOẠN CODE BÊN DƯỚI RẤT DÀI QUA BÊN PHẢI, CHÚ Ý COPY CHO HẾT RỒI DÁN VÀO MODULE
[GPECODE=vb]
Option Explicit
Function LoaiDauTV(ByVal Text As String) As String
Dim Charcode(), ResTxt(), i As Long, tmp As String
tmp = Text
Charcode = Array(224, 225, 226, 227, 259, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861, 7863, 273, 232, 233, 234, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 236, 237, 297, 7881, 7883, 242, 243, 244, 245, 417, 7885, 7887, 7889, 7891, 7893, 7895, 7897, 7899, 7901, 7903, 7905, 7907, 249, 250, 361, 432, 7909, 7911, 7913, 7915, 7917, 7919, 7921, 253, 7923, 7925, 7927, 7929)
ResTxt = Array("a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "d", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "i", "i", "i", "i", "i", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "u", "u", "u", "u", "u", "u", "u", "u", "u", "u", "u", "y", "y", "y", "y", "y")
For i = 0 To UBound(Charcode)
tmp = Replace(tmp, ChrW(Charcode(i)), ResTxt(i))
tmp = Replace(tmp, UCase(ChrW(Charcode(i))), UCase(ResTxt(i)))
Next
LoaiDauTV = tmp
End Function
Sub Main()
Dim arr(), i As Long, j As Long
arr = ActiveSheet.UsedRange.Value
For i = 1 To UBound(arr)
For j = 1 To UBound(arr, 2)
arr(i, j) = LoaiDauTV(arr(i, j))
Next
Next
ActiveSheet.UsedRange = arr
End Sub
[/GPECODE]
Cảm ơn bạn đã nhiệt tình giúp đỡ.
Hàm tạo tên chấm công của bạn mình có 1 số ý như sau:
Ý của mình là chỉ lấy Tên và Họ thôi. Riêng tên thi sẽ lấy đầy đủ. Còn phần họ (nếu tên + họ <= 8 ký tự) thì sẽ lấy hết phần họ,(không lấy phần chữ lót.)
Trường hợp nếu tên + họ > 8 ký tự) thì sẽ lấy các ký tự đầu của họ sao cho tổng số ký tự của họ + tên = 8 ký tự.
 
Upvote 0
anh NDU ơi!
A có thể tạo function LoaiDauTV thành 1 addin được không hả a?
 
Upvote 0
Nếu tên người Việt thường không quá 7 kí tự thì OK; nhưng vừa qua Nước ta cho fép tên dài thoải mái thì í đồ tác giả fải được chỉnh lại

Bạn xem file
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom