Giúp mình tạo Macro copy có điều kiện với

Liên hệ QC

HyperVN

Thành viên mới
Tham gia
20/6/06
Bài viết
2
Được thích
9
Mình có 2 sheet:
Sheet 1:
Ô A1 chứa tham số điều kiện (ví dụ là dãy 1,2,3,4...)
Ô A2 chứa giá trị cần Copy
Sheet 2:
Ô A1 = 1
Ô B1 = 2
Ô C1 = 3.....
Là các tham số điều kiện tương ứng với giá trị có thể trong sheet1!A1.

Các Ô A2, B2, C2 ... sẽ chứa giá trị cần Copy từ Sheet1!A2 theo điều kiện tương ứng của giá trị điều kiện A1.

Ví dụ A1 = 3, A2 = 4 thì Marco thực hiện Copy giá trị 4 vào Ô C2 (tương ứng với giá trị sheet2!C1=3)

Mong các bạn giúp đỡ. Rất cảm ơn.
 
Lần chỉnh sửa cuối:
Dear all,
----------
Đây là "ý đồ" của bác HyperVN:
HyperVN đã viết:
HyperVN viet76: Mình có thiết kế một bảng chấm công chung cho các tháng
HyperVN viet76: chấm tháng nào thì cập nhật tháng đó, chấm xong thì lưu trữ thông tin số công sang một bảng liệt kê theo tháng (đó là bảng tổng hợp công của từng nhân viên của cả năm, các tháng được trình bày theo cột - Đào Việt Cường)
HyperVN viet76: sang tháng mới thì xóa dữ liệu chấm công cũ đi, chấm lại và lại thực hiện thao tác lưu trữ
HyperVN viet76: mình muốn là sau khi chấm công của một tháng thì dữ liệu tổng hợp sẽ phải được ghi sang một bảng tổng hợp được liệt kê theo từng tháng
HyperVN viet76: các dòng họ tên, chức vụ thì fix rồi (nghĩa là thứ tự họ tên nhân viên giữa bảng chấm công và bảng tổng hợp là như nhau - Đào Việt Cường - Hơi chủ quan đấy bác HyperVN ạ!)

Mình đưa giải pháp lên đây, các bạn tham khảo thêm trong file đính kèm để cải tiến!
 

File đính kèm

  • CONG.zip
    17.4 KB · Đọc: 326
Lần chỉnh sửa cuối:
Cường thử "design" cái database trên Excel cho 2 công việc:
- Nhập bảng chấm công chi tiết theo tháng
- Hiển thị và sửa bảng chấm công Tổng hợp theo tháng

Chú ý:
Bảng chấm công chi tiết:
- Có thể chấm đến đơn vị giờ
- Cho phép chấm chi tiết trong 1 ngày có thể nhiều chế độ đi làm (ví dụ đi làm n giờ/ngày (n < 8h), (8 - n) giờ còn lại là nghỉ phép hoặc nghỉ bù, hoặc nghỉ ốm, nghỉ ko lương, v.v...)
- Cho phép hiệu chỉnh giờ làm thêm trong bảng chấm công chi tiết

Bảng chấm công tổng hợp tháng:
- Tự động tính tổng cộng các loại ngày làm việc, nghỉ ko lương, nghỉ ốm, nghỉ phép,...
- Cho phép sửa lại bảng tổng hợp (theo khuôn khổ nhất định)

Chú ý:
- Có các sheets lưu trữ CSDL đối tượng như danh mục nhân viên, danh mục phòng ban, danh mục tổ nhóm,...
- Có 2 sheets trên Excel được thiết kế kiểu Database (tương đương với 2 tables), cho phép lưu dữ liệu chấm công trong thời gian dài mà ko cần xóa.
- Có 2 Sheets hiển thị và nhập thông tin chấm công chi tiết & tổng hợp (dùng làm báo cáo luôn). Dữ liệu lấy từ 2 sheets dữ liệu ở trên, chỉ cần chọn năm/tháng làm việc là tự lấy từ database và tự động tính toán. nếu là tháng mới thì tự động tạo dữ liệu mới. Yêu cầu 2 sheets báo cáo trên cần được Group by Phòng ban, v.v...

Cách thiết kế kiểu trên là cách thiết kế kiểu Database nhưng lại làm trên Excel. Làm như trên, ta sẽ có 1 "ứng dụng" chấm công tay bằng excel chứ ko phải là file "Chấm công" excel thông thường. Với cách thiết kế trên thì lập báo cáo tổng hợp chấm công theo năm cũng được.

Nếu có thể thì tách phần Database ra thành 1 file riêng, còn 1 file là chương trình.
 
Lần chỉnh sửa cuối:
Good

Tổng quát thì để làm "cái việc" theo yêu cầu của bạn công việc cụ thể như sau:
_Quét và kiểm tra các giá trị theo yêu cầu.
_Đưa các giá trị vào sheet khác theo yêu cầu của bạn.

Đoạn code ví dụ như sau:
Mã:
Sub Copy()
Dim iValue as Integer, iValueCom as Integer
Dim i as Integer, j as Integer
Dim iValueCopy1 as Integer, iValueCopy2 as Integer
For i=1 To 10 ' Giả sử tôi quét 10 hàng mà thôi
    'Lấy giá trị và so sánh
    'Giả sử giá trị ở cột 1 và sheet 1 sẽ so sánh với giá trị cột 2
    iValue=WorkSheets("Sheet1").Range("A1").Offset(i-1,0)
    iValueCom=WorkSheets("Sheet1").Range("A1").Offset(i-1,1)
    iValueCopy1=WorkSheets("Sheet1").Range("A1").Offset(i-1,2)
    iValueCopy2=WorkSheets("Sheet1").Range("A1").Offset(i-1,3)
    if iValue=iValueCom then
        'Bắt đầu copy
        WorkSheets("Sheet2").Range("A1").Offset(j,0)=iValueCopy1
        WorkSheets("Sheet2").Range("A1").Offset(j,1)=iValueCopy2
        j=j+1
    End If
    'nếu bạn muốn nhìn kết quả thì bạn dùng đoạn code sau
    WorkSheets("Sheet2").Range("A1").Select
Next i
End Sub

Bạn cũng có thể dùng cấu trúc
With WorkSheets("Sheet2").Range("A1")
'Code của bạn ở đây
End with
để viết gọn lại.
Trong ví dụ trên bạn sẽ không dùng phương thức Select cho tới khi bạn muốn xem kết quả cuối cùng.
Trong trường hợp dữ liệu của bạn có nhiều công thức thì bạn nên thêm một vài đoạn code ở đầu và cuối thủ tục ở trên nhằm tăng tốc độ chương trình.
Bạn có thể tham khảo tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?t=37
Thân,
 
Chỉnh sửa lần cuối bởi điều hành viên:
Cải tiến thủ tục cmbTonghop_Click

Dear all,
--------
Private Sub cmbTonghop_Click()
Application.ScreenUpdating = False
Dim lngThang As Long
Dim rgCONG As Range
Dim rgTONGHOP As Range
lngThang = BANGCHAMCONG.Range("THANG").Value
Set rgCONG = BANGCHAMCONG.Range("CONG")
Set rgTONGHOP = TONGHOP.Range("Thang" & lngThang)
rgCONG.Copy
rgTONGHOP.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
If MsgBox("Đã tổng hợp xong, bạn có muốn xem số liệu tổng hợp cả năm?", vbQuestion + vbYesNo, "Tổng hợp công trong tháng " & lngThang) = vbNo Then Exit Sub
TONGHOP.Activate
End Sub
Thủ tục cmbTonghop_Click trong giải pháp mà em gửi lên đã giải quyết được cơ bản yêu cầu của bài toán. Tuy nhiên, có một điểm em cảm thấy chưa được tối ưu là việc sử dụng mỗi Name cho một tháng. Dựa vào tháng hiện hành chúng ta xác định được Name nào để xác định vị trí Copy - Paste cho vùng dữ liệu 2 cột:

Set rgTONGHOP = TONGHOP.Range("Thang" & lngThang)

Đây là phương pháp khá đơn giản và nhanh. Tuy nhiên em có cảm giác quá dư thừa trong việc sử dụng name.
Chúng ta hoàn toàn có thể xác định vị trí cột cần Paste nếu như biết được vị trí cột của Tháng 1 thông qua việc tính cấp số cộng với công sai (bước nhảy) là D=2:

Un=U1+(x - 1)*D
Trong đó:
Un là chỉ số cột cần copy
U1 là chỉ số cột của tháng 1
x là số tháng hiện hành
D là công sai (D=2)
Với công thức này chúng ta có thể loại bỏ đi 11 name - gọn nhẹ hơn rất nhiều!:_
 
HyperVN đã viết:
Mình có 2 sheet:
Sheet 1:
Ô A1 chứa tham số điều kiện (ví dụ là dãy 1,2,3,4...)
Ô A2 chứa giá trị cần Copy
Sheet 2:
Ô A1 = 1
Ô B1 = 2
Ô C1 = 3.....
Là các tham số điều kiện tương ứng với giá trị có thể trong sheet1!A1.

Các Ô A2, B2, C2 ... sẽ chứa giá trị cần Copy từ Sheet1!A2 theo điều kiện tương ứng của giá trị điều kiện A1.

Ví dụ A1 = 3, A2 = 4 thì Marco thực hiện Copy giá trị 4 vào Ô C2 (tương ứng với giá trị sheet2!C1=3)

Mong các bạn giúp đỡ. Rất cảm ơn.

Giải pháp con con cho vấn đề nho nhỏ của bạn:
Bạn tạo một nút copy ở ngay cạnh ô b1 của Sheet1
copy đoạn mã này:
Sub Copy_Click()
i = Range("A1").Value
Range("b1").Select
Selection.Copy
Sheets("Sheet2").Select
Range("a1").Select
Selection.Offset(1, i-1).Select
ActiveSheet.Paste
Sheets("Sheet1").Select
End Sub

Bạn thử nhập số từ 1-256 tại ô A1 của Sheet1, điền bất cứ cái gì vào B1 của Sheet1 và nhấn nút copy xem sao nhé! mình đã chạy thử thấy đáp ứng được đúng yêu cầu của bạn.
 
Lần chỉnh sửa cuối:
Về bảng chấm công, áp dụng theo cách bạn Hyper nghĩ ra mình thiết kế bảng chấm công nho nhỏ kèm theo: bảng gồm 1 sheet "Chấm công" theo ngày và 1 sheet "lưu" chấm công theo ngày.
 

File đính kèm

  • Bang cham cong.xls
    40.5 KB · Đọc: 138
Chấm công chỉ có 3 giá trị là không đủ rồi bạn ạ
1 = HC = Hành chính
Ngoài ra còn có các trường hợp sau:
- Nghỉ bù
- Ngày lễ
- Nghỉ ốm
- Phỉ phép
- Nghỉ Không lương
- Nghỉ chế độ
- Đi làm 0,5 ngày, còn lại (0,5 ngày) là nghỉ bù
- Đi làm 0,5 ngày, còn lại (0,5 ngày) là nghỉ phép
- Đi làm 0,5 ngày, còn lại (0,5 ngày) là nghỉ ốm (Ví dụ sáng đi làm, chiều nghỉ ốm)
- Đi làm 0,5 ngày, còn lại (0,5 ngày) là nghỉ không lương
- Đi làm 0,5 ngày, còn lại (0,5 ngày) là nghỉ chế độ
- Đi làm 0,5 ngày, còn lại (0,5 ngày) là nghỉ lễ

Đấy là còn chưa chi ly là sáng đi được 2 giờ (tính thời gian theo giờ chứ ko theo buổi), còn lại là nghỉ các trường hợp khác.

Ngoài ra còn phải có chỗ để nhập Overtime nữa. Như vậy bảng chấm công ko hề đơn giản đâu.
 
hai2hai đã viết:
Chấm công chỉ có 3 giá trị là không đủ rồi bạn ạ
1 = HC = Hành chính
Ngoài ra còn có các trường hợp sau:
- Nghỉ bù
.....
- Nghỉ chế độ
- Đi làm 0,5 ngày, còn lại (0,5 ngày) là nghỉ bù
.......
Đấy là còn chưa chi ly là sáng đi được 2 giờ (tính thời gian theo giờ chứ ko theo buổi), còn lại là nghỉ các trường hợp khác.
Ngoài ra còn phải có chỗ để nhập Overtime nữa. Như vậy bảng chấm công ko hề đơn giản đâu.

Bác nói đúng, rất không đơn giản, Nếu y án làm theo thực tế thì khó xử lý lắm, nhiều khi có thể thực tế theo máy tính, sao cho tiện lợi nhất.
Bảng tính trên mình chỉ thiết kế khoảng 30' dựa trên ý tưởng cuả bạn Hyper, có thể áp dụng cho các trường hợp đơn giản, ít biến động. Trường hợp biến động nhiều có khả năng xảy ra nhiều trường hợp thì nên quy về dạng giá trị đó, ví dụ
-----Đi làm 0,5 ngày, còn lại (0,5 ngày) là nghỉ bù
Lúc này người chấm công sẽ phải chấm công cho NV là 1
Hoặc mình có thể linh động sử dụng giá trị chấm công từ 0 đến 2 thậm trí sử dụng giá trị âm cho các trường hợp đi muộn, về sớm mà không xin phép, và sử dụng cho các khoảng thời gian làm thêm giờ, ví dụ:
Nghỉ phép chỉ được hưởng 70% lương thì có thể chấm công =0,7
Làm thêm hai giờ thì có thể chấm công = 1+0,25 =1,25
Làm thêm 4 h mà giờ làm thêm nhân hệ số 2 thì chấm công 1+0,5*2=2
và rất nhiều cách khác nữa...
 
Nguyễn Đức Duy đã viết:
Bác nói đúng, rất không đơn giản, Nếu y án làm theo thực tế thì khó xử lý lắm, nhiều khi có thể thực tế theo máy tính, sao cho tiện lợi nhất.
Bảng tính trên mình chỉ thiết kế khoảng 30' dựa trên ý tưởng cuả bạn Hyper, có thể áp dụng cho các trường hợp đơn giản, ít biến động. Trường hợp biến động nhiều có khả năng xảy ra nhiều trường hợp thì nên quy về dạng giá trị đó, ví dụ
-----Đi làm 0,5 ngày, còn lại (0,5 ngày) là nghỉ bù
Lúc này người chấm công sẽ phải chấm công cho NV là 1
Hoặc mình có thể linh động sử dụng giá trị chấm công từ 0 đến 2 thậm trí sử dụng giá trị âm cho các trường hợp đi muộn, về sớm mà không xin phép, và sử dụng cho các khoảng thời gian làm thêm giờ, ví dụ:
Nghỉ phép chỉ được hưởng 70% lương thì có thể chấm công =0,7
Làm thêm hai giờ thì có thể chấm công = 1+0,25 =1,25
Làm thêm 4 h mà giờ làm thêm nhân hệ số 2 thì chấm công 1+0,5*2=2
và rất nhiều cách khác nữa...

-----Đi làm 0,5 ngày, còn lại (0,5 ngày) là nghỉ bù
Lúc này người chấm công sẽ phải chấm công cho NV là 1

Không thể chấm cho NV là 1 được vì 1 chỉ là tổng ngày công, nhưng nếu chỉ gõ mỗi số 1 thì về sau sẽ ko tổng hợp trong tháng là có bao nhiều ngày đi làm thực tế (là 0,5 ngày đó), bao nhiêu ngày nghỉ bù được (0,5 ngày bù).

Nếu làm như vậy thì làm bảng tổng hợp chấm công tháng sẽ ko thể tổng hợp được.
Ở bảng tổng hợp chấm công tháng sẽ có những cột như "Tổng những ngày đi làm hành chính", tổng những ngày nghỉ bù, tổng những ngày nghỉ phép, tổng những ngày nghỉ ốm, tổng những ngày nghỉ chế độ, tổng những ngày nghỉ ko lương, v.v... Nếu gộp lại thì chỉ tính được ngày công làm việc chứ ko thể tách bạch được ngày công đó bao gồm có những loại công gì.

Mới đầu mình nghĩ chấm công tay đơn giản nhưng khi viết chương trình để cover các trường hợp thì mình phải thay đổi thiết kế dữ liệu rất nhiều lần và phải sử dụng những câu SQL tinh tế nhất mới có thể chấm chi tiết từng ngày cho mỗi nhân viên mà lại thể hiện trên báo cáo chấm công chi tiết và tổng hợp của từng tháng. Quả thật là ko đơn giản.

Tóm lại, mỗi một ngày, giá trị chấm công ko thể là 1 trường (hay 1 ô được, vì một ô ko thể hiện hết kiểu giá trị đó).

Đừng ai làm cứng cho tương ngay 31 ngày (tương ứng với 31 cột/fields) trong 1 tháng nhé. Làm như vậy thì dễ nhưng ko thể đáp ứng hết các yêu cầu được.
 
Lần chỉnh sửa cuối:
Nguyễn Đức Duy đã viết:
Bảng tính trên mình chỉ thiết kế khoảng 30' dựa trên ý tưởng cuả bạn Hyper, có thể áp dụng cho các trường hợp đơn giản, ít biến động...

Dear Nguyễn Đức Duy,
---------------------
Mình đã tham khảo workbook của bạn và thấy rằng việc bạn tạo ra thêm một màn hình chấm công như vậy theo mình là không cần thiết. Sao bạn không vào thẳng trực tiếp worksheet Luu để chấm công?
Hơn nữa, trong bài tập này, mình đã lưu ý HyperVN:
Đào Việt Cường đã viết:
HyperVN viet76: các dòng họ tên, chức vụ thì fix rồi (nghĩa là thứ tự họ tên nhân viên giữa bảng chấm công và bảng tổng hợp là như nhau - Đào Việt Cường - Hơi chủ quan đấy bác HyperVN ạ!)
Một khi thứ tự của nhân viên giữa bảng nguồn và bảng tổng hợp bị đảo lộn (có thể do sắp xếp, tìm kiếm) thì lệnh copy sẽ làm đảo lộn công của người này cho người khác mà bạn không thể biết sai sót từ đâu (rõ ràng mình chấm công đúng!).

Dear all,
-------
Hệ thống chấm công tuỳ thuộc vào quy mô và yêu cầu quản lý lao động của từng đơn vị. Theo em, yêu cầu của anh HyperVN là đơn giản và nhu cầu ở đây là tổng hợp lại kết quả chấm công (chứ không phải chấm công).
Tất nhiên giải pháp Excel sẽ cung cấp nhiều giải pháp cho từng lĩnh vực, song theo em nó phải xuất phát từ nhu cầu thực tế. Việc xây dựng một hệ thống chấm công chi tiết chỉ còn là vấn đề nhu cầu, chứ không phải là vấn kỹ thuật!
 
Lần chỉnh sửa cuối:
Đào Việt Cường đã viết:
Tất nhiên giải pháp Excel sẽ cung cấp nhiều giải pháp cho từng lĩnh vực, song theo em nó phải xuất phát từ nhu cầu thực tế. Việc xây dựng một hệ thống chấm công chi tiết chỉ còn là vấn đề nhu cầu, chứ không phải là vấn kỹ thuật!

Anh đang làm thực tế cho khách hàng đây, deadline là 17 mà giờ vẫn chưa xong.
 
hai2hai đã viết:
Không thể chấm cho NV là 1 được vì 1 chỉ là tổng ngày công, nhưng nếu chỉ gõ mỗi số 1 thì về sau sẽ ko tổng hợp trong tháng là có bao nhiều ngày đi làm thực tế (là 0,5 ngày đó), bao nhiêu ngày nghỉ bù được (0,5 ngày bù).
Nếu làm như vậy thì làm bảng tổng hợp chấm công tháng sẽ ko thể tổng hợp được.
Lý luận của bác rất chính xác đối với việc thông tin phụ (các thông tin nghỉ bù, nghỉ phép...) quan trọng không kém thông tin chính (tổng số ngày công được hưởng- không phải ngày công thực tế).
Việc chấm công thực tế hiện nay là của các doanh nghiệp đang phổ biến:
+ Chấm bằng cách ký sổ, ghi rõ giờ đến giờ nghỉ trưa, giờ về... vào 1 quyển số và ký vào đó, cuối tháng nhân viên phụ trách sẽ tổng hợp ngày công và giờ muộn để trừ lương. Ai không ký sổ coi như nghỉ nếu không có đơn xin nghỉ hoặc một loại giấy tờ gì đó tương đương. Cuối tháng nhân viên phụ trách cứ căng hết mắt ra mà dò, mà dò nhầm cuả ông nào khó tính thì thôi rồi lượm ơi ngay. Cách này bọn Trung Quốc hay áp dụng nhất, vì ông khó lòng mà nhờ người khác "điểm danh" hộ.

+ Dập thẻ cơ (bìa cứng)-dùng đồng hồ điện tử, ai không dập thẻ sẽ bị coi là nghỉ nếu không đánh dấu bằng tay vào ô trống lý do nghỉ + với đơn xin nghỉ. Cuối tháng nhân viên phụ trách sẽ thu các thẻ đó lại và nhập các ngày đi làm, nghỉ... vào máy vi tính và tính ra công thực tế, công nghệ này rất dễ bị điểm danh hộ nếu có nhỡ ngủ quên một chút thì chỉ cần một cái aloo là xong.

+ Chấm công bằng bảng chấm công thủ công mà các cơ quan nhà nước hay dùng là mỗi tháng in một bảng chấm công to đùng dán ở nơi làm việc và trưởng phòng hoặc người phụ trách có trách nhiệm đánh dấu "X" hoặc "/" hoặc "B" hoặc "Ô" hoặc "CT" hoặc "N" vào các ô đó và cuối tháng nhân viên phụ trách sẽ tổng hợp lại BCC đó và nộp cho kế toán - xong, Với cách làm này thì nhân viên nào đến cuối tháng cũng có thể chấm công vào ngày đầu tháng cho mình được (với điều kiện chỉ có một mình ở văn phòng-chuyển nửa ngày thành 1 ngày "/" -> "X" hoặc chữ "N" có mờ mờ ảo ảo thì sửa lại thành "X" luôn). Nhưng mình thấy đa số các cơ quan đều tránh ghi chữ "N" (nghỉ) mà để ô đó trống rồi cuối tháng tuỳ cơ ứng biến.

+ Chấm công dùng thẻ từ mỗi nhân viên một mã từ, tất cả trong một luôn. Cực kỳ hiện đại và không ai gian lận được, rất chính xác trong giờ đến, giờ về, giờ ra giờ vào và nó được export ra một file Excel luôn để dễ bề xử lý và đến đó thì dễ rồi (xem file chấm công do dùng thẻ từ). Cuối tháng chỉ việc lấy file Excel đó ra và tính ra ngày công thực tế (nhưng không tính được là nhân viên nào nghỉ ốm, nghỉ phép...)

+ Và còn một vài cách chấm công khác...

Căn cứ theo thực tế đó, và một số bài viết trên của mình, mình ưu tiên xử lý tổng số ngày công được hưởng hơn là xử lý tất cả mọi thứ trên cùng một bảng chấm công đó, vì các cách trên chẳng có cách nào làm được việc "tất cả trong một" cả, mỗi cái có ưu nhược khác nhau và điểm mạnh khác nhau, nên nếu dùng máy tính chấm công (không dùng thẻ từ) thì làm sao quy (gò) thông tin về dạng của thẻ từ (hoặc giống thế) thì xử lý dễ hơn nhiều. Nếu khi NV nghỉ bù, phép, cưới xin thì mình vẫn chấm công bình thường vì người ta thực tế được hưởng, và theo dõi riêng những trưởng hợp đó qua các đơn xin nghỉ, lịch nghỉ,...

Trên đây là mình vừa phân tích và đúc kết các kiểu chấm công trong thực tế và vận dụng vào máy tính và mình gửi một bảng chấm công dùng thẻ từ để các bạn tham khảo.
 

File đính kèm

  • Daily_General_Report.rar
    47.9 KB · Đọc: 90
Đúng vậy, hiện mình đang cung cấp tất cả các loại chấm công. Và mình đang hợp nhất cách thiết kế sao cho chấm công thẻ lẫn chấm công tay đều được, chỉ khác nhau ở cách vào số liệu mà thôi. Nhưng database là ko phải tách riêng từng loại. Nói chung, chấm công tưởng chừng đơn giản nhưng đó là bài toán khá phức tạp (nhất là những ai đã từng làm chấm công cho các nhà máy nhiều ca làm việc với khoảng chục ngàn nhân viên là biết ngay).

Hiện nay cũng có 1 vài đơn vị cung cấp giải pháp này trên thị trường nhưng ko phải đơn vị nào cũng hiểu cặn kẽ và giải quyết triệt để bài toán chấm công cho các nhà máy cỡ trung bình lớn (khoảng 1000 nhân viên trở lên). Hầu hết chỉ đáp ứng bài toán chấm công tay cho các công ty ít người nhưng vẫn ko đáp ứng được tính chi tiết của việc chấm công.

Cuối tháng chỉ việc lấy file Excel đó ra và tính ra ngày công thực tế (nhưng không tính được là nhân viên nào nghỉ ốm, nghỉ phép...)

Cách làm này ko ổn rồi. Các nhà máy sau khi quẹt thẻ thì việc nhận dữ liệu và xử lý là hàng ngày, thậm chí là online (nếu dùng thêm thiết bị như switch nhiều cổng - có thể tham khảo nhà máy Honda, Canon, v.v...). Và nếu ai ko quét thẻ thì các tổ trưởng (chủ yếu là người trợ lý chứ tổ trưởng họ bận lắm) sẽ duyệt lại kết quả chấm công hàng ngày và những trường hợp nghỉ việc sẽ được nhập lý do trực tiếp ngay trong chương trình - đương nhiên là ai nghỉ thì phải báo cáo lý do rồi, nếu ko báo cáo lý do thì là nghỉ không lý do (chương trình được chạy ở tất cả các máy tính của họ và chỉ những người nào có quyền mới vào và chỉ sửa dữ liệu của họ được quyền mà thôi).

Màn hình ví dụ:
1. Bảng chấm công chi tiết theo tháng (Chấm công tay - nhưng chấm công thẻ cũng tổng hợp lên được màn hình như thế này): http://vnuni.net/downloads/products/hrm/DailyTimeKeepingInDetail.JPG

DailyTimeKeepingInDetail.JPG


2. Bảng tổng hợp chấm công theo tháng: http://vnuni.net/downloads/products/hrm/MonthlyTimeKeepingInTotal.JPG

MonthlyTimeKeepingInTotal.JPG
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom