Nhờ các tiền bối sửa giúp em file VBA

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

huyhoangjo

Thành viên mới
Tham gia
8/9/20
Bài viết
12
Được thích
1
hiện tại e có đoạn code cũ chạy lỗi
yêu cầu : Tài xê lái xe phải chấm công vào buổi sáng( không chấm tính không đi làm) và giờ về buổi chiều
- nếu chấm giờ trưa thì không tính tăng ca thêm 1 tiếng
- nếu không chấm giờ trưa thì được tính thêm 1 tiếng tăng ca
Hiện tại file em chay không hiểu cữ mặc định đc công 1 tiếng tăng ca
Ai biết chỉ em fix với ah.
Function SOGIOLAM_TANGCA(GR As Variant, ByVal BOPHAN As String, MNV, RNG As Range)
Dim Phut As Byte
GR = GR - Int(GR)
'DIEU CHINH GIO VAO RA
Select Case MNV
Case 23, 304, 141, 202, 304, 290, 16, 252, 53, 419, 431, 152, 338
SOGIOLAM_TANGCA = 0
Exit Function
'GIO TANG CA LAI XE
Case 89
'TANG CA LO XE
tc = 1

If MNV = 89 Then
For I = 1 To 5
If RNG(1, 1) = "" Or GR < TimeSerial(12, 0, 0) Then
tc = 0
Exit For
End If
If RNG(1, I) >= TimeSerial(10, 30, 0) And RNG(1, I) <= TimeSerial(11, 15, 0) Then
tc = 0
Exit For
End If
Next
If GR > TimeSerial(16, 25, 0) Then
SOGIOLAM_TANGCA = TimeSerial(tc, 0, 0) + GR - TimeSerial(16, 0, 0)
If Minute(SOGIOLAM_TANGCA) >= 55 Then
SOGIOLAM_TANGCA = Hour(SOGIOLAM_TANGCA) + 60 / 60
ElseIf Minute(SOGIOLAM_TANGCA) >= 25 Then
SOGIOLAM_TANGCA = Hour(SOGIOLAM_TANGCA) + 30 / 60
Else
SOGIOLAM_TANGCA = Hour(SOGIOLAM_TANGCA) + 0 / 60
End If
Else
SOGIOLAM_TANGCA = tc
End If
Else '338
'TANG CA LAI XE
For I = 1 To 5
If RNG(1, 1) = "" Or GR < TimeSerial(13, 0, 0) Then
tc = 0
Exit For
End If
If RNG(1, I) >= TimeSerial(11, 30, 0) And RNG(1, I) <= TimeSerial(12, 15, 0) Then
tc = 0
Exit For
End If
Next
If GR > TimeSerial(17, 25, 0) Then
SOGIOLAM_TANGCA = TimeSerial(tc, 0, 0) + GR - TimeSerial(17, 0, 0)
If Minute(SOGIOLAM_TANGCA) >= 55 Then
SOGIOLAM_TANGCA = Hour(SOGIOLAM_TANGCA) + 60 / 60
ElseIf Minute(SOGIOLAM_TANGCA) >= 25 Then
SOGIOLAM_TANGCA = Hour(SOGIOLAM_TANGCA) + 30 / 60
Else
SOGIOLAM_TANGCA = Hour(SOGIOLAM_TANGCA) + 0 / 60
End If
Else
SOGIOLAM_TANGCA = tc
End If
End If
Exit Function
End Select
Code này được viết trong Module_FUNCTION

Sau đó lấy code SOGIOLAM_TANGCA bỏ vào Module_DULIEUCHAMCONG
 

File đính kèm

  • BANG CHAM CONG THANG 11 - 2022 - TUYEN.xlsm
    734.8 KB · Đọc: 15
Theo mình bạn tạo mã NV chưa thật hợp lý; Thấy rõ theo bảng trích sau:

MNVFULL NAMESO NGAY PHEP DA NGHI
01​
02​
03​
04​
05​
06​
07​
08​
09​
10​
11​
12​
1​
Marc Bregeault
276​
Phạm Thành Cường
101​
Lê Thị Huyền
3​
306​
Lê Thị Hoài Mến
17​
Nguyễn Vũ Phi Phượng
1​
1​

& bảng này:

Mã nhân viênTrạng Thái Làm ViệcTên
00001ACTIVEMarc Bregeault
00002ACTIVEPhùng Thị Sĩ
00004ACTIVENguyễn Thị Ngọc Tuyền
00092ACTIVEPhạm Trung Tuyến Nhi
00017ACTIVENguyễn Vũ Phi Phượng
00096ACTIVENguyễn Thị Kim Cúc
00563ACTIVEVõ Thị Chiến
00625ACTIVELê Thanh Thanh Nga
00115ACTIVEVincent Thomas Binh Minh

Theo mình để thống nhất ta nên như sau:

10001​
Marc Bregeault
10276​
Phạm Thành Cường
10101​
Lê Thị Huyền
10306​
Lê Thị Hoài Mến
10017​
Nguyễn Vũ Phi Phượng
10092​
Phạm Trung Tuyến Nhi
 
Upvote 0
Theo mình bạn tạo mã NV chưa thật hợp lý; Thấy rõ theo bảng trích sau:

MNVFULL NAMESO NGAY PHEP DA NGHI
01​
02​
03​
04​
05​
06​
07​
08​
09​
10​
11​
12​
1​
Marc Bregeault
276​
Phạm Thành Cường
101​
Lê Thị Huyền
3​
306​
Lê Thị Hoài Mến
17​
Nguyễn Vũ Phi Phượng
1​
1​

& bảng này:

Mã nhân viênTrạng Thái Làm ViệcTên
00001ACTIVEMarc Bregeault
00002ACTIVEPhùng Thị Sĩ
00004ACTIVENguyễn Thị Ngọc Tuyền
00092ACTIVEPhạm Trung Tuyến Nhi
00017ACTIVENguyễn Vũ Phi Phượng
00096ACTIVENguyễn Thị Kim Cúc
00563ACTIVEVõ Thị Chiến
00625ACTIVELê Thanh Thanh Nga
00115ACTIVEVincent Thomas Binh Minh

Theo mình để thống nhất ta nên như sau:

10001​
Marc Bregeault
10276​
Phạm Thành Cường
10101​
Lê Thị Huyền
10306​
Lê Thị Hoài Mến
10017​
Nguyễn Vũ Phi Phượng
10092​
Phạm Trung Tuyến Nhi
mã nhân viên mình lấy trung mã chấm công nên thế,bạn fix có thể fix lỗi chấm công cho lái xe đc ko ah.mình bị lỗi đó lâu nay
 
Upvote 0
Web KT

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

Back
Top Bottom