Dùng VBA để in dữ liệu có sẵn theo từng tuần

Liên hệ QC

tonny jj

Thành viên mới
Tham gia
5/10/11
Bài viết
46
Được thích
8
Em thường phải in phiếu đăng ký làm thêm giờ để xử lý vào cuối năm. Tuy nhiên phải in theo từng tuần, việc này em làm thường bằng cách tạo bộ lọc và lọc ra những ngày thứ 7 và chủ nhật của tuần đó để in cho từng người. Như vậy, để làm công việc này cho 1 phòng khoảng hơn 10 người mất rất nhiều thời gian ạ, mặc dù việc này chỉ là thao tác lặp đi, lặp lại nhiều lần nhưng em chưa biết xử lý thế nào ạ. Mong nhận được sự trợ giúp từ các bác, em xin chân thành cảm ơn ạ. Cụ thể em thể hiện ở file đính kèm ạ. Chúc các bác năm mới mạnh khỏe, hạnh phúc và thành công trong cuộc sống ạ!
 

File đính kèm

  • GPE.xlsm
    23.4 KB · Đọc: 35
sheet data dữ liệu có vẻ không chuẩn lắm nhỉ? hay đây chỉ là ví dụ thôi
 
Upvote 0
Em thường phải in phiếu đăng ký làm thêm giờ để xử lý vào cuối năm. Tuy nhiên phải in theo từng tuần, việc này em làm thường bằng cách tạo bộ lọc và lọc ra những ngày thứ 7 và chủ nhật của tuần đó để in cho từng người. Như vậy, để làm công việc này cho 1 phòng khoảng hơn 10 người mất rất nhiều thời gian ạ, mặc dù việc này chỉ là thao tác lặp đi, lặp lại nhiều lần nhưng em chưa biết xử lý thế nào ạ. Mong nhận được sự trợ giúp từ các bác, em xin chân thành cảm ơn ạ. Cụ thể em thể hiện ở file đính kèm ạ. Chúc các bác năm mới mạnh khỏe, hạnh phúc và thành công trong cuộc sống ạ!
Ghi Macro trước thử xem sao?
 
Upvote 0
Ghi Macro trước thử xem sao?
em đã ghi nhưng dữ liệu ghi macro thì nó không tùy biến mà nó ghi cố định ngày khi mình chọn để lọc nên không áp dụng được trong trường hợp này bác ạ!
Bài đã được tự động gộp:

sheet data dữ liệu có vẻ không chuẩn lắm nhỉ? hay đây chỉ là ví dụ thôi
đây là dữ liệu em in đấy ạ
 
Upvote 0
em đã ghi nhưng dữ liệu ghi macro thì nó không tùy biến mà nó ghi cố định ngày khi mình chọn để lọc nên không áp dụng được trong trường hợp này bác ạ!
Thì bạn thử đưa đứa con tinh thần í của bạn lên đây & chắc sẽ có người ra tay tùy biến cho bạn;

/(hông phải mình không làm được thì người khác sẽ không làm được!

[Ở Thái Bình, nếu tớ là nhì thì không ai có thể nhất!]
 
Upvote 0
Em cảm ơn bác đã quan tâm ạ. Hiện tại em đã ghi Macro, tuy nhiên nó chỉ hiển thị giá trị cố định và em chưa biết cách tùy biến nó ạ. Nhờ các bác xem giúp, em cảm ơn các bác nhiều ạ
 

File đính kèm

  • GPE.xlsm
    28.6 KB · Đọc: 9
Upvote 0
Bạn muốn lập tùy biến thì phải tái lập bảng cơ sở dữ liệu như sau:

NgàyMã NVHo & TênNội dungSáng
chiều
1/14/2012​
PBD00Phạm Bá DyRà soát, kiểm tra khối lượng hoàn thành bước 8 - DA QHTNN7h3011h3013h3017h30
1/15/2012​
NBD00Ngô Bá DiKiểm tra, ký duyệt báo cáo quyết toán7h3011h30
1/15/2012​
LBD00Lê Bá DiKiểm tra, ký duyệt báo cáo quyết toán13h3017h30
6/9/2012​
LBD01Lại Bích DungRà soát, kiểm tra hồ sơ nghiệm thu toàn bộ sản phẩm dự án QH phân bổ TNN7h3011h3013h0018h00
6/10/2012​
LBD02Lý Bình DụngRà soát, kiểm tra hồ sơ nghiệm thu toàn bộ sản phẩm dự án QH phân bổ TNN7h3011h30
5/5/2013​
TBD00Trần Bình DươngKiểm tra, lập chứng từ thanh toán CTP kiểm tra ĐĐĐC huyện Mường La7h3011h3013h3017h30
5/11/2013​
NJD00Nguyễn DyKiểm tra, lập chứng từ thanh toán CTP kiểm tra ĐĐĐC huyện Mường La7h3011h3013h3017h30
5/11/2013​
NJF00Ngô ĐôngKiểm tra, lập chứng từ thanh toán CTP kiểm tra ĐĐĐC huyện Mường La7h3011h3013h3017h30
5/18/2013​
FFD00Đinh Đức DyKiểm tra, lập chứng từ thanh toán CTP kiểm tra ĐĐĐC huyện Mường La7h3011h3013h3017h30
5/19/2013​
MFD00Mạc Đức DungKiểm tra, lập chứng từ thanh toán CTP kiểm tra ĐĐĐC huyện Mường La7h3011h3013h3017h30
6/15/2013​
DFD00Dương Đức DungRà soát, kiểm tra KL NT, lập chứng từ thanh toán HĐĐĐ ĐC H. Mường La14h3015h30
6/16/2013​
DFD01Dương Đức DyRà soát, kiểm tra KL NT, lập chứng từ thanh toán HĐĐĐ ĐC H. Mường La7h3011h3013h3017h30
6/29/2013​
FHD00Đăng Hữu DũngRà soát, kiểm tra KL NT, lập chứng từ thanh toán HĐĐĐ ĐC H. Mường La7h3011h3013h3017h30
6/30/2013​
FHD01Đăng Hữu DùngRà soát, kiểm tra KL NT, lập chứng từ thanh toán HĐĐĐ ĐC H. Mường La7h3011h30
1/10/2021​
FHD02Đăng Hữu DụngThẩm định hồ sơ thuê đất của Công ty cổ phần HMK Sơn La7h3011h3013h0017h00
1/30/2021​
FHD03Đăng Hòa DũngThẩm định hồ sơ thuê đất của Công ty cổ phần HMK Sơn La7h0011h0013h3017h30
1/31/2021​
FHD04Đăng Hà DũngThẩm định hồ sơ thuê đất của Công ty cổ phần HMK Sơn La7h0011h0013h3017h30
2/7/2021​
FHD05Đăng Hhoài DũngThẩm định hồ sơ thuê đất của Cửa hàng xăng dầu Huyền An7h0011h00
2/8/2021​
FHD06Đăng Hà DũThẩm định hồ sơ thuê đất của Công ty cổ phần HMK Sơn La13h3017h30
4/4/2021​
FHD07Đăng Hữu DangThẩm định hồ sơ thuê đất thực hiện Khu dân cư tại tổ 57h0011h0013h3017h30
4/18/2021​
NBD00Ngô Bá DiThẩm định hồ sơ thuê đất thực hiện Cửa hàng xăng dầu số 1 Chiềng Sinh7h0011h0013h3017h30
5/16/2021​
LBD01Lại Bích DungTĐHS gia hạn của Công ty cổ phần lương thực Sơn La tại huyện Thuận Châu7h0011h0013h3017h30
5/30/2021​
TBD00Trần Bình DươngThẩm định hồ sơ thuê đất của Công ty TNHH MTV Long Thành Sông Mã7h0011h0013h3017h30
6/6/2021​
NJF00Ngô ĐôngThẩm định hồ sơ thuê đất của Công ty cổ phần tập đoàn Picenza7h0011h0013h3017h30
8/8/2021​
MFD00Mạc Đức DungThẩm định hồ sơ gia hạn của Công ty cổ phần Chè phổng lái7h0011h0013h3017h30
10/9/2021​
DFD01Dương Đức DyThẩm định nhu cầu sử dụng đất thực hiện Dự án Khu đô thị số 2, phường Chiềng An7h0011h0014h3017h30
10/16/2021​
FHD01Đăng Hữu DùngThẩm định nhu cầu sử dụng đất thực hiện Dự án Khu đô thị số 2, phường Chiềng An7h0011h00
10/17/2021​
FHD02Đăng Hữu DụngThẩm định hồ sơ gia hạn của Công ty cổ phần Chè phổng lái14h3017h30
12/19/2021​
FHD03Đăng Hòa DũngThẩm định hồ sơ thuê đất của Công ty cổ phần tập đoàn Picenza (đợt 2)7h3011h30

Sau đó muốn gì cũng được lấy ra từ CSDL này

Còn dữ liệu của bạn là chưa thoát khỏi Words & như vậy chỉ có thể là thủ công mà thôi.
 
Upvote 0
Em cảm ơn bác đã quan tâm ạ. Hiện tại em đã ghi Macro, tuy nhiên nó chỉ hiển thị giá trị cố định và em chưa biết cách tùy biến nó ạ. Nhờ các bác xem giúp, em cảm ơn các bác nhiều ạ
Bạn ở tỉnh Sơn La đúng không? Tôi có góp ý cho bạn như sau:
1/ Bạn cần nêu rõ là bạn theo dõi chỉ riêng 1 phòng hay tất cả các phòng trong Sở?
2/ Nên sử dụng 1 sheet gọi là SheetForm dùng nó để nhập liệu và và lưu dữ liệu vào sheeet có tên Data_Luu thì việc nhập liệu, theo dõi thì việc tách dữ liệu theo từng người hoặc theo từng bộ phận dễ dàng hơn
3/ Thiết kế như sheeet có tên Data_Luu thì việc in ấn lại theo mẫu của SheetForm sẽ dễ dàng và nhanh chóng hơn và tổng hợp bất cứ điều gì chỉ trong tích tắc. Bạn xem cách tôi thiết kế lại trong File để tham khảo (Lưu ý: Trong File chưa có code).
 

File đính kèm

  • GPE.xlsm
    14 KB · Đọc: 8
Upvote 0
Bạn ở tỉnh Sơn La đúng không? Tôi có góp ý cho bạn như sau:
1/ Bạn cần nêu rõ là bạn theo dõi chỉ riêng 1 phòng hay tất cả các phòng trong Sở?
2/ Nên sử dụng 1 sheet gọi là SheetForm dùng nó để nhập liệu và và lưu dữ liệu vào sheeet có tên Data_Luu thì việc nhập liệu, theo dõi thì việc tách dữ liệu theo từng người hoặc theo từng bộ phận dễ dàng hơn
3/ Thiết kế như sheeet có tên Data_Luu thì việc in ấn lại theo mẫu của SheetForm sẽ dễ dàng và nhanh chóng hơn và tổng hợp bất cứ điều gì chỉ trong tích tắc. Bạn xem cách tôi thiết kế lại trong File để tham khảo (Lưu ý: Trong File chưa có code).
Dạ vâng, em ở tỉnh Sơn La ạ. File này em làm cho 1 phòng khoảng hơn 10 người ạ. Tuy nhiên dữ liệu của mỗi người em nhập vào theo các sheet. Ví dụ: Người A thì chọn Sheet chứa dữ liệu người đó để in ạ. Bảng dữ liệu nguồn của các Bác đã tối ưu được việc trích xuất dữ liệu, tuy nhiên em vẫn chưa biết cách để trích xuất in được phiếu đăng ký làm thêm giờ theo tuần ạ cho từng người ạ. Các Bác có thể giúp em nội dung này được không ạ?
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn tham khảo xem nhé. Nhập ngày bắt đầu, kết thúc vào 2 ô H3 và H4 rồi bấm In.
em cảm ơn bác rất nhiều ạ. Tuy nhiên code bác viết là in theo "người làm thêm giờ". Tuy nhiên do người làm thêm giờ em để ở sheet riêng và chỉ in phiếu theo từng tuần cho từng người ạ. Nhờ bác giúp sửa lại code ạ. Em xin chân thành cảm ơn ạ!
Chúc bác và cả nhà GPE năm mới vạn sự như ý
Tỷ sự như mơ
Triệu triệu bất ngờ và
Ngàn ngàn hạnh phúc ạ!
 
Upvote 0
em cảm ơn bác rất nhiều ạ. Tuy nhiên code bác viết là in theo "người làm thêm giờ". Tuy nhiên do người làm thêm giờ em để ở sheet riêng và chỉ in phiếu theo từng tuần cho từng người ạ. Nhờ bác giúp sửa lại code ạ. Em xin chân thành cảm ơn ạ!
Chúc bác và cả nhà GPE năm mới vạn sự như ý
Tỷ sự như mơ
Triệu triệu bất ngờ và
Ngàn ngàn hạnh phúc ạ!
Do mình không biết tuần của bạn là từ ngày nào đến ngày nào nên mình đang để bạn tự chọn thời gian mà. Bạn đã thử thay đổi thời gian chưa?
Trong khoảng thời gian bạn chọn có ai thì sẽ in cả mà nhỉ?
 
Upvote 0
Do mình không biết tuần của bạn là từ ngày nào đến ngày nào nên mình đang để bạn tự chọn thời gian mà. Bạn đã thử thay đổi thời gian chưa?

Trong khoảng thời gian bạn chọn có ai thì sẽ in cả mà nhỉ?
Tức là tuần nào có đăng ký làm thêm thì sẽ in dữ liệu bác ạ. Vì nếu nhập thời gian thì sẽ lâu hơn là lọc dữ liệu theo tuần sau đó in thủ công bác ạ!
 
Upvote 0

File đính kèm

  • GPE.xlsm
    30.8 KB · Đọc: 13
Upvote 0
em cảm ơn bác rất nhiều ạ. Tuy nhiên khi in sẽ bị 1 lỗi như sau ạ. VD ngày 04/5/2013 và ngày 11/5/2013 thì không cùng 1 tuần nhưng khi in thì vẫn trong 1 tuần bác ạ
 
Upvote 0
Mình đã làm ra lịch các tuần trong tháng chọn, nhưng file của bạn quá bự & diễn đàn từ chối cho tải!


Xem tạm hình vậy nha
20212T0101020304050607
T0208091011121314
Từ ngày02/22/21T04T0315161718192021
Đến ngày03/01/21T0422232425262728
T0501020304050607
T060809
 

File đính kèm

  • Date.rar
    18.2 KB · Đọc: 12
Lần chỉnh sửa cuối:
Upvote 0
vâng, em đã hiểu ạ. Em cảm ơn các bác nhiều ạ. Chúc các bác có 1 năm mới dồi dào sức khỏe để chia sẻ, cống hiến cho diễn đàn giải pháp excel ngày càng phát triển ạ. Em xin chân thành cảm ơn ạ!
 
Upvote 0
em cảm ơn bác rất nhiều ạ. Tuy nhiên khi in sẽ bị 1 lỗi như sau ạ. VD ngày 04/5/2013 và ngày 11/5/2013 thì không cùng 1 tuần nhưng khi in thì vẫn trong 1 tuần bác ạ
Mình vừa xem lại trong file không có ngày nào là 04/5/2013 cả. Chỉ có 2 ngày 05/5/201311/5/2013 vẫn cùng một tuần 19.Nên in cùng một phiếu là đúng mà nhỉ?
 
Upvote 0
Mình vừa xem lại trong file không có ngày nào là 04/5/2013 cả. Chỉ có 2 ngày 05/5/201311/5/2013 vẫn cùng một tuần 19.Nên in cùng một phiếu là đúng mà
Phần này em đang hiểu hàm weeday nếu để bắt đầu từ chủ nhật thì code bác viết hoàn toàn chính xác ạ. Tuy nhiên do cách em làm là tính từ thứ 2 đến hết chủ nhật (là ngày thứ 7 trong tuần) là hết 1 tuần nên thứ 7 và chủ nhật phải trong cùng 1 tuần thôi ạ. Em xin chân thành cảm ơn bác đã giúp đỡ ạ. Trong thời gian tới e sẽ cố gắng nghiên cứu phần code bác đã viết để hiểu rõ hơn ạ. Em xin chân thành cảm ơn ạ!
 
Upvote 0
Phần này em đang hiểu hàm weeday nếu để bắt đầu từ chủ nhật thì code bác viết hoàn toàn chính xác ạ. Tuy nhiên do cách em làm là tính từ thứ 2 đến hết chủ nhật (là ngày thứ 7 trong tuần) là hết 1 tuần nên thứ 7 và chủ nhật phải trong cùng 1 tuần thôi ạ. Em xin chân thành cảm ơn bác đã giúp đỡ ạ. Trong thời gian tới e sẽ cố gắng nghiên cứu phần code bác đã viết để hiểu rõ hơn ạ. Em xin chân thành cảm ơn ạ!
Mã:
    ReDim arrTuan(1 To (b - a) / 6, 1 To 2)
        arrTuan(1, 1) = a
        arrTuan(1, 2) = a + 7 - Application.Weekday(a, 2)
    For i = 2 To (b - a) / 6
        arrTuan(i, 1) = arrTuan(i - 1, 2) + 1
        arrTuan(i, 2) = arrTuan(i, 1) + 6
        If arrTuan(i, 2) > b Then Exit For
    Next i
Bạn thử thay nốt đoạn này xem sao.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom