trinhduykhanh02091991nb
Thành viên mới
- Tham gia
- 30/6/17
- Bài viết
- 11
- Được thích
- 0
- Giới tính
- Nam
Cả nhà cho mình xin mẫu bảng chấm công tự động. thanks
các cty có chính sách # nhau . sao bạn không tao from rồi nhờ mọi người viết công thức hộCả nhà cho mình xin mẫu bảng chấm công tự động. Cảm ơn
------------ không được viết hoa là sao ạ ?
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.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 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.)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.
: Chưa rành chỗ này lắm!những chỗ có số sẽ không lấy dữ liệu bên cột phân ca sang
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ộ 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!
(1) Thêm tiếp đầu 'ID' chi cho dài mã ra & máy sẽ vất vã(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.
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.(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.
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.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.
ý bạn là muốn chấm C1 C2 rồi vvv phải k ?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.
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.
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 ạ.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 ạ. ^^!