XIN BẢNG CHẤM CÔNG TỰ ĐỘNG

Liên hệ QC
123
Bài đã được tự động gộp:

123
 

File đính kèm

  • Bang_Luong_Tu_Bang_Cham_cong_ExcelKetoan.vn.xls
    74 KB · Đọc: 101
  • bang_cham_cong.xlsx
    92.9 KB · Đọc: 129
LÀ SAO, TA?​
Cả nhà cho mình xin mẫu bảng chấm công tự động. Cảm ơn
Mình mường tượng như thế này, không biết có phải không?:
Từ dữ liệu máy chấm công (quẹt thẻ chẳng hạn) chuyển 1 cách tự động sang bảng chấm công như qui định.

Từ:
215220

Chuyển thành:

215221
 
LÀ SAO, TA?​

Mình mường tượng như thế này, không biết có phải không?:
Từ dữ liệu máy chấm công (quẹt thẻ chẳng hạn) chuyển 1 cách tự động sang bảng chấm công như qui định.

Từ:
View attachment 215220

Chuyển thành:

View attachment 215221
Bạn ơi, cho mình hỏi làm thế nào để chuyển đc như vậy? Mình cũng muốn làm bảng chấm công thành dạng hàng ngang mà không biết cách chuyển, toàn phải đánh bằng tay.
 
Chuyện này phải xài VBA; Bạn tham khảo 2 file này sẽ rõ hơn & chúc vui.
 

File đính kèm

  • BCC.rar
    65.5 KB · Đọc: 69
Chuyện này phải xài VBA; Bạn tham khảo 2 file này sẽ rõ hơn & chúc vui.
bạn hướng dẫn mình làm cái này được không? hay mình có file này, bạn giúp mình thiết lập với, bên mình hơn 100 công nhân (những chỗ có số sẽ không lấy dữ liệu bên cột phân ca sang.)
Thanks!
 

File đính kèm

  • mau cham cong 15-3.xlsx
    291.1 KB · Đọc: 22
Bộ mã NV của bạn khó xài trong Excel lắm & mình đã đề xuất bộ mã mới trong file
những chỗ có số sẽ không lấy dữ liệu bên cột phân ca sang
: Chưa rành chỗ này lắm!
 

File đính kèm

  • BCC.rar
    133.6 KB · Đọc: 24
Bộ mã NV của bạn khó xài trong Excel lắm & mình đã đề xuất bộ mã mới trong file
: Chưa rành chỗ này lắm!
Bộ mã NV đó chính là ID của nhân viên đó trên máy chấm công, giờ mà thay thì không biết được ID của họ (vậy mình có thể thay thế mã nv là 00003 thành ID0003 được không, thêm chữ ID trước mã ), vậy khi có nhân viên mới ngoài mấy mã này thì sao bạn?
bảng chấm công bên mình chấm công bằng ký hiệu ca làm việc như trong file mình gửi lại ở đây.
 

File đính kèm

  • mau cham cong 15-3.xlsx
    292.3 KB · Đọc: 16
(1) Bộ mã NV đó chính là ID của nhân viên đó trên máy chấm công, giờ mà thay thì không biết được ID của họ (vậy mình có thể thay thế mã nv là 00003 thành ID0003 được không, thêm chữ ID trước mã ), vậy khi có nhân viên mới ngoài mấy mã này thì sao bạn?
(2) Bảng chấm công bên mình chấm công bằng ký hiệu ca làm việc như trong file mình gửi lại ở đây.
(1) Thêm tiếp đầu 'ID' chi cho dài mã ra & máy sẽ vất vã
Chỉ cần tao mã bắt đầu là 1000 là được; ví dụ hiện giờ là 0003 thì sẽ là 1003 là được rồi
Nếu CQ bạn luôn biến động lao động lớn thì mỗi năm cho 1 chữ cái cũng được, như năm 2019 sẽ là H0000, H0001, . . .
Năm sau sẽ là I0000, I0001,. . . . .
. . . . . .
(1.1) Bộ mã của mình tạo ra có tính tương tác cao giữa người có mã & bộ phân quản lý mã đó nha
Tất nhiên với 100 LĐ thì điều này ít thấy quan trọng hơn.

(2) Trong macro của mình viết, nó đang chép số liệu của cột 'Q'; Như bạn cần thì chép từ cột 'R'
(Bạn thử thay xem sao?!)
(3) Tên trang tính không nên xài tiếng Việt có dấu & rất nên xúc tích

Thân ái.
 
(1) Thêm tiếp đầu 'ID' chi cho dài mã ra & máy sẽ vất vã
Chỉ cần tao mã bắt đầu là 1000 là được; ví dụ hiện giờ là 0003 thì sẽ là 1003 là được rồi
Nếu CQ bạn luôn biến động lao động lớn thì mỗi năm cho 1 chữ cái cũng được, như năm 2019 sẽ là H0000, H0001, . . .
Năm sau sẽ là I0000, I0001,. . . . .
. . . . . .
(1.1) Bộ mã của mình tạo ra có tính tương tác cao giữa người có mã & bộ phân quản lý mã đó nha
Tất nhiên với 100 LĐ thì điều này ít thấy quan trọng hơn.

(2) Trong macro của mình viết, nó đang chép số liệu của cột 'Q'; Như bạn cần thì chép từ cột 'R'
(Bạn thử thay xem sao?!)
(3) Tên trang tính không nên xài tiếng Việt có dấu & rất nên xúc tích

Thân ái.
mình không biết gì về macro nên bạn nói vậy khó với mình quá, mình có coppy cột R sang Q nó cũng không hiện ra C1 và C2 như mình cần.
 
Sau khi xem lại CSDL của bạn, mình thấy 1 số vấn đề sau:
(1) Ở cột 'Ma NV' (cột C) vừa có chứa mã NV (dạng số) vừa có dãng chuỗi (như 00009 Total) là không thể chấp nhận trong 1 CSDL bình thường
Theo mình, ta chữa cháy bằng cách bỏ những từ cuối & khoảng trắng đó đi)
(2)Tiếp đến ta thêm 1 cột ngay bên phải của cột này
(3) Tại ô D6 ta lập công thức =10^5+C6 & tiến hành sao chép công thức xuống hết CSDL
(Đây là việc chuyển mã NV dạng 00009 thành 10009 (Thích hợp trong việc xử lý với mã NV trong Excel))
(4) Chép cột công thức vừa tạo & dán thành dạng Value
(5) Côp pi 2 cột D & E (Họ & Tên) sang 2 cột trống nào đó & tiến hành xóa trùng (Mục đích là tạo danh sách toàn thể NV của CQ bạn cho trang bên
(5.1) Đổi tên Trang tính vừa chép danh sách tới này đi; Ví dụ là 'BCC'

Bạn tiến hành các việc này xong thì gởi file lên
Chỉ khi đó mình viết macro cho bạn
& từ khi có macro bạn sẽ chỉ cho chạy macro sau khi tiến hành các bước xử lý CSDL đã viết như trên

Chờ tập tin từ bạn.
 
Sau khi xem lại CSDL của bạn, mình thấy 1 số vấn đề sau:
(1) Ở cột 'Ma NV' (cột C) vừa có chứa mã NV (dạng số) vừa có dãng chuỗi (như 00009 Total) là không thể chấp nhận trong 1 CSDL bình thường
Theo mình, ta chữa cháy bằng cách bỏ những từ cuối & khoảng trắng đó đi)
(2)Tiếp đến ta thêm 1 cột ngay bên phải của cột này
(3) Tại ô D6 ta lập công thức =10^5+C6 & tiến hành sao chép công thức xuống hết CSDL
(Đây là việc chuyển mã NV dạng 00009 thành 10009 (Thích hợp trong việc xử lý với mã NV trong Excel))
(4) Chép cột công thức vừa tạo & dán thành dạng Value
(5) Côp pi 2 cột D & E (Họ & Tên) sang 2 cột trống nào đó & tiến hành xóa trùng (Mục đích là tạo danh sách toàn thể NV của CQ bạn cho trang bên
(5.1) Đổi tên Trang tính vừa chép danh sách tới này đi; Ví dụ là 'BCC'

Bạn tiến hành các việc này xong thì gởi file lên
Chỉ khi đó mình viết macro cho bạn
& từ khi có macro bạn sẽ chỉ cho chạy macro sau khi tiến hành các bước xử lý CSDL đã viết như trên

Chờ tập tin từ bạn.
DẠ đây là bản em đã chỉnh theo như anh hướng dẫn, anh xem giúp em nhé. Em cảm ơn.
 

File đính kèm

  • mau cham cong 20-4.xlsx
    302.9 KB · Đọc: 22
Bạn chép macro này vô module1 & cho chạy (& những mong là khỏi đưa file lên!):
PHP:
Sub ChuyenCong()
Dim Cls As Range, Arr()
Dim Rws As Long, J As Long, W As Long, Ngay As Byte

With Sheets("BCCVT")
    Rws = .[C6].CurrentRegion.Rows.Count
    Arr() = .[A6].Resize(Rws, 19).Value
End With
Sheets("BCC").Select
Application.ScreenUpdating = False
For W = 5 To [B5].End(xlDown).Row              'Duyêt Theo "BCC"           '
    ReDim dArr(1 To 1, 1 To 31)   
    For J = 1 To UBound(Arr())                      'Duyêt Theo "BCCVT"         '
        If Cells(W, "B").Value = Arr(J, 4) Then     'Nêu Mã Nhu Nhau        '
            Ngay = Day(Arr(J, 1))
            dArr(1, Ngay) = Arr(J, 19)
        End If
    Next J
    Cells(W, "F").Resize(, 31).Value = dArr()
Next W
Application.ScreenUpdating = True
MsgBox "Chép Xong!", , "GPE.COM Xin Chào"
End Sub
 
Bạn chép macro này vô module1 & cho chạy (& những mong là khỏi đưa file lên!):
PHP:
Sub ChuyenCong()
Dim Cls As Range, Arr()
Dim Rws As Long, J As Long, W As Long, Ngay As Byte

With Sheets("BCCVT")
    Rws = .[C6].CurrentRegion.Rows.Count
    Arr() = .[A6].Resize(Rws, 19).Value
End With
Sheets("BCC").Select
Application.ScreenUpdating = False
For W = 5 To [B5].End(xlDown).Row              'Duyêt Theo "BCC"           '
    ReDim dArr(1 To 1, 1 To 31)
   
    For J = 1 To UBound(Arr())                      'Duyêt Theo "BCCVT"         '
        If Cells(W, "B").Value = Arr(J, 4) Then     'Nêu Mã Nhu Nhau        '
            Ngay = Day(Arr(J, 1))
            dArr(1, Ngay) = Arr(J, 19)
        End If
    Next J
    Cells(W, "F").Resize(, 31).Value = dArr()
Next W
Application.ScreenUpdating = True
MsgBox "Chép Xong!", , "GPE.COM Xin Chào"
End Sub
Thầy lại dùng dao mổ trâu để làm thịt chim sẽ rồi ạ.
chúc thầy một buổi tối cuối tuần vv ạ. ^^!
 
Thầy lại dùng dao mổ trâu để làm thịt chim sẽ rồi ạ.
chúc thầy một buổi tối cuối tuần vv ạ. ^^!

Không đâu! Bạn chưa thấy file lần trước đến mấy vạn dòng dữ liệu lựng đó!
 
Web KT
Back
Top Bottom