Dùng VBA trích xuất dữ liệu báo cáo theo ngày tháng (1 người xem)

  • Thread starter Thread starter vungoc
  • Ngày gửi Ngày gửi
Liên hệ QC

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

vungoc

Find Sexy Womans from your town for night
Tham gia
2/8/06
Bài viết
633
Được thích
2,604
Giới tính
Nam
Nghề nghiệp
Search
Chào tất cả mọi người !

Mình mong muốn được sự giúp đỡ của mọi người về phương thức dùng VBA để trích xuất dữ liệu báo cáo theo ngày tháng, mô tả sơ lược như sau:

- Dữ liệu mình có sẵn trong sheet input
- Từ data dữ liệu bên sheet input này mình muốn trích dữ liệu theo thời gian mình gõ vào (từ ngày - đến ngày) để đưa vào một bảng báo cáo bên sheet khác.
* Để cụ thể hơn, mình đã ghi rõ nội dung trong các comment của file đính kèm

(Tương tự nội dung này mình thấy bạn nvson va voda đã thực hiện trên diễn đàn - mong tiếp tục nhận được sự quan tâm cho bài này).

Thanks !
 

File đính kèm

Lần chỉnh sửa cuối:
Gửi bạn ví dụ đính kèm để tham khảo
 

File đính kèm

Tôi vận dụng code của các anh trên diễn đàn làm cho bạn file trên, mới làm sh bc_laodongtang thôi, sh còn lại bạn tự làm. Trong đó có tính ngày CN nghỉ, còn ngày lễ thì chưa tính vì chưa biết dl của bạn theo năm hay 10 năm nên không cập nhật ngày lễ của năm 2007 + i. Bạn trêỉn khai tiếp
 
Lần chỉnh sửa cuối:
Cảm ơn bạn ThuNghi nhiều, hẹn gặp lại bạn sau !
Chúc bạn luôn vui, khỏe và thành đạt !
 
------- Vui lòng xem bài kế tiếp !
 
Lần chỉnh sửa cuối:
Dear ThuNghi cùng tất cả các bạn !

Mình đã thử qua file của ThuNghi gửi lên, với khỏang thời gian ngắn mà bạn đã nhiệt tình giúp đỡ tạo ra được 1 báo cáo như vậy là đã khá tốt – mình xin chân thành cảm ơn bạn, tuy nhiên cũng còn một số vấn đề cần xem xét và giải quyết mà mình sẽ nêu ra sau đây, mong được ThuNghi và các bạn trên diễn đàn tiếp tục quan tâm giúp đỡ:

1 – Ví dụ: Người làm việc từ 01/01/2007 đến 31/01/2007 = 27 ngày công, vì mình tính luôn ngày vào làm cho NLĐ (chứ không phải 26 ngày công).

2- Tính ngày công, lương cần phải thực hiện theo quy định về thời gian thử việc đối với người lao động như sau:
2.1 - Các mã chức danh (Mã CD): 21; 23; 27 và 28 thì thời gian thử việc = 30 ngày (tính luôn cả Chủ Nhật – Ngày lễ ).
2.2 - Các mã chức danh khác 2.1 (nêu trên) thì thời gian thử việc = 60 ngày (tính luôn cả Chủ Nhật - Ngày lễ).
Ghi chú:
- Lương thử việc bằng cột lương thử việc chia 26 nhân với số ngày công thử việc
- Lương chính thức bằng cột lương chính thức + Phụ cấp (TN khác) chia 26 nhân với số ngày công chính thức

Như vậy: Trong bảng BC_Lao dong tang, tại cột lương thử việc, lương chính thức, xảy ra các trường hợp sau:

Trường hợp 1 - Nếu người lao động có số ngày công từ ngày vào làm tới ngày báo cáo (ô E3) mà bằng hoặc nhỏ hơn quy định tại 2.1 & 2.2 (nêu trên) thì ngày công, chỉ hiển thị bên phần thử việc (ngày công và tiền lương của lương chính thức phải bỏ trống).

Trường hợp 2 - Nếu người lao động có số ngày công từ ngày vào làm tới ngày báo cáo (ô E3) mà lớn hơn quy định tại 2.1 & 2.2 (nêu trên) thì số ngày công, tiền lương nằm trong quy định thử việc hiển thị bên cột công, lương thử việc. Còn lại số ngày công và tiền lương lớn hơn quy định sẽ hiển thị bên công và lương của của lương chính thức)

Trường hợp 3 - Nếu người lao động đã qua thời gian thử việc theo quy định tại 2.1 & 2.2 (nêu trên) thì số ngày công, tiền lương chỉ hiển thị bên công và lương của của lương chính thức).

Số ngày công để tính lương chỉ trừ ra Chủ Nhật, không cần trừ ngày lễ (vì các ngày lễ vẫn được hưởng nguyên lương).

Phần này có thể hơi khó hiểu, nhưng có thể hiểu nôm na là: Một người lao động vào làm thì trong thời gian thử việc (quy định tại 2.1 & 2.2 nêu trên) sẽ chỉ hưởng công và lương thử việc, hết thời gian thử việc nêu trên thì mới được hưởng lương chính thức cộng với phụ cấp / TN khác.

3 – Format của báo chưa tự động thay đổi khi báo cáo thay đổi (về số dòng row chẳng hạn).

Nếu các bạn có ý kiến và giúp đỡ xin download file của ThuNghi đã up ở bài kế trên để xem xét, chỉnh sửa và tiếp tục up lên khi thực hiện xong

Mong sớm nhận được hồi đáp từ ThuNghi và các bạn trên diễn đàn
Trân trọng cảm ơn !
 
Lần chỉnh sửa cuối:
Nếu một ng có ngày cuối trừ ngày vào làm là 69 ngày, thử việc 60 ngày thì coi như ng đó mói ăn lương thử việc, vì 9 ngày kia là ngày CN. Có phải vậy không. Nếu OK thì ...
Mời bạn xem file V02. Trong file có sử dụng 4 names do làm biếng.
 
Lần chỉnh sửa cuối:
Cảm ơn bạn ThuNghi, mình xem lại và có ý kiến với bạn sau !
Chúc bạn luôn mạnh khỏe !
 
ThuNghi đã viết:
Nếu một ng có ngày cuối trừ ngày vào làm là 69 ngày, thử việc 60 ngày thì coi như ng đó mói ăn lương thử việc, vì 9 ngày kia là ngày CN. Có phải vậy không. Nếu OK thì ...

Dear bạn ThuNghi !
hìhì, không phải vậy, mình xin được giải thích cho rõ như sau;

1/- Bạn thử nhập ngày báo cáo từ 01/01/2007 đến 01/03/2007, nhấn nút báo cáo để mình xem kết quả về công, lương của người Nguyễn Văn A1 xem sao nhé:
o Kết quả: Ngày công = 60 ngày (Chưa đạt như ý)
o Điều kiện mình cần là ngày công bên cột lương thử việc = 52 ngày;
Bởi vì:
. Tháng 01/2007 là 31 ngày trừ ra 4 Chủ Nhật = 27 ngày công.
. Tháng 02/2007 là 28 ngày trừ ra 4 Chủ Nhật = 24 ngày công.
. Cộng với ngày 01/03/2007 = 01 ngày công
. TỔNG CỘNG = 52 ngày)


2/- Thử nhập ngày báo cáo từ 01/01/2007 đến 10/03/2007, nhấn nút báo cáo để mình xem kết quả về công, lương của người Nguyễn Văn A1 xem sao nhé:
o Kết quả: Ngày công = 60 ngày (Không thay đổi so với mục trên - Chưa đạt như ý)
o Điều kiện mình cần là (2 điều kiện sau):
2.1- Ngày công bên cột lương thử việc = 52 ngày;
Bởi vì: Phần này như đã giải thích ở trên mục 1; và tính từ ngày 01/01/2007 đến ngày 01/03/2007 là 60 ngày – kể cả Chủ Nhật – người lao động này đã kết thúc thời gian thử việc đúng vào ngày 01/03/2007. Từ ngày 02/03/2007 trờ về sau, người này sẽ được hưởng lương chính thức – như vậy tính từ ngày 2 đến ngày 10/03/07 là 9 ngày, trừ ra 01 ngày 01/03 là Chủ Nhật = 8 ngày hưởng lương chính thức.

2.2- Ngày công bên cột lương chính thức = 08 ngày;
Bạn lưu ý giùm mình: Tiền lương chính thức = Cột lương chính + Cột phụ cấp / 26 X số ngày công của lương chính thức


Hai lần thử nêu trên là đối với người có thời gian thử việc = 60 ngày.
Tương tự như trên, bạn điều chỉnh cho những người có thời gian thử việc bằng 30 ngày giúp mình luôn (Các MãCD là 21; 23; 27 và 28)

Nếu các bạn có ý kiến và giúp đỡ xin download file của ThuNghi đã up ở bài kế trên (File: Trich xuat du lieu bao cao theo ngay thang - V02) để xem xét, chỉnh sửa và tiếp tục up lên khi thực hiện xong.

Chân thành cảm ơn sự nhiệt tình của bạn – mình mong tiếp tục nhận được sự trợ giúp !
 
Lần chỉnh sửa cuối:
Bạn có thể cụ thể với file xls, tính thủ công, ngày thử việc 30 ngày, ngày vào làm 01/01...
tên.....................Ngày cuối..........Ngày công Thử ..........Ngày công chính
Nguyen van A .....01/02.......................?................................?
Nguyen van A .....02/02.......................?................................?
Nguyen van A .....03/02.......................?................................?
....
Nguyen van A .....10/02.......................?................................?
Hy vọng xem file dễ hiểu bạn hơn
 
Mình upfile lại, trong file này mình có thêm 2 cột (số 38 & 39).
Tạm tính số ngày công & lương bằng công thức thủ công, ThuNghi xem giúp mình nhé !
 

File đính kèm

Có xem qua các công thức của bạn nhưng thử với ngày cuối là 10/03/07, với mã NV 0069A, nó báo ngày công tính lương thử việc là -18, đúng ra là =1, NV này vào làm ngày 10/03/07 (thứ 7). Tôi tự suy diễn và vận dụng. Bạn xem thử nhé. Hy vọng là OK. Tôi thêm 2 cột cuối, nếu ok thì sẽ bỏ trong code.
Cái khó nhất là đây.
ví dụ: NV 0001A, ngày vào làm 01/01, đến ngày 01/03 là ngày cuối cùng thử việc (01/03-01/01=59). =>số ngày thử việc là 59 - 8 ngày T7 + 1 ngày đầu=52.
Cái khó là ngày hết thử việc sẽ là ngày cuối cùng thử việc + 1
Cụ thể ngày đầu: 01/01 + 30 ngày thử = 31/01 là ngày hết thử việc
=>ngày cuối cùng thử việc = 31/01 là ngày hết thử việc -1 = 30/01
Chúc bạn thành công.
Nếu có sửa thì bạn vẫn giữ nguyên cấu trúc, ta chỉ sửa code thôi.
 

File đính kèm

Vâng, cảm ơn bạn ThuNghi - Mình sẽ xem file và có ý kiến với bạn sau.
Chúc bạn luôn vui, khỏe & thành đạt !
 
Lần chỉnh sửa cuối:
ThuNghi đã viết:
Tôi tự suy diễn và vận dụng. Bạn xem thử nhé. Hy vọng là OK. Tôi thêm 2 cột cuối, nếu ok thì sẽ bỏ trong code.
Nếu có sửa thì bạn vẫn giữ nguyên cấu trúc, ta chỉ sửa code thôi.
Đã rất OK rồi bạn ơi !
Giúp tôi thực hiện luôn công đọan cuối
ThuNghi đã viết:
nếu ok thì sẽ bỏ trong code.

Xin chân thành cảm ơn tấm lòng nhiệt tình của bạn rất nhiều - Hẹn gặp lại bạn sau !
 
1/Xóa hết 02 cột S và T
2/Bạn vào code tìm và bỏ đoạn sau:
'*****************Phan nay se bo
S06.Range("S" & t).Value = NgayHetThuViec
S06.Range("T" & t).Value = SoNgayThuViec
'******************

Rất vui vì đã giúp được bạn.
 
Lần chỉnh sửa cuối:
Trước đây bằng phép thủ công, làm các công đọan trên hết hàng giờ đồng hồ.
Giờ đây được bạn giúp thực hiện bằng VBA, chỉ sau 1 cái click chuột coi như xong.
Trí tuệ thật !
Mình và Cả Phòng Nhân Sự của mình cảm ơn bạn !
(Mấy em gái trong phòng ngưỡng mộ bạn wá nhưng đang thắc mắc là không biết người giúp mình là Mr.ThuNghi hay là Ms.ThuNghi ?! hhì hì...)
 
Hi hi thì nickname của bạn Thunghi đã nói rồi mà bạn "Thử nghĩ"
 
Mr này nhậu như hũ, chỉ chưa dám so sánh với dân Củ Chi thôi. Nhớ chiêu đãi nhé!
 
ThuNghi đã viết:
Mr này nhậu như hũ, chỉ chưa dám so sánh với dân Củ Chi thôi. Nhớ chiêu đãi nhé!

Sẵn sàng thôi, nếu được mời bác nhậu là hân hạnh cho mình lắm rồi (sẵn dịp diện kiến - học hỏi thêm vài chiêu về excel ...).

Mong sớm gặp lại ThuNghi nhé !
 
ThuNghi đã viết:
Mr này nhậu như hũ, chỉ chưa dám so sánh với dân Củ Chi thôi. Nhớ chiêu đãi nhé!

Sẵn sàng thôi, nếu được mời bác nhậu là hân hạnh cho mình lắm rồi (sẵn dịp diện kiến - học hỏi thêm vài chiêu về excel ... à mà bác không cho mình số điện thọai biết mời bác bằng cách nào đây ?).

Mong sớm gặp lại ThuNghi nhé !
 
Web KT

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

Back
Top Bottom