Nhờ trợ giúp code tham chiếu kiểu như hàm vlookup (tự điền luôn khi gõ dữ liệu không dùng nút bấm)

Liên hệ QC

Binbo2020

Thành viên tích cực
Tham gia
10/11/11
Bài viết
955
Được thích
961
Hiện Công ty mình đang chuẩn bị hỗ trợ cho việc nhập dữ liệu ban đầu cho việc tiêm chủng Covid tại khu vực. Theo yêu cầu khi nhận được danh sách dữ liệu ban đầu cũng là lúc triển khai luôn nên hiện tại mình chưa có file mẫu dòng cột nên mình định hình sơ bộ nhờ mọi người giúp.
Yêu cầu là họ sẽ cấp cho mình danh sách dữ liệu số người sẽ tiêm (khoảng 10-20k người trong một đợt).
Nhiệm vụ là sẽ có 2 tổ một tổ kiểm tra khi người tiêm bước vào cửa khai (sẽ nhập dữ liệu vào sheet "tiep don"), nếu nhập mã số tiêm (cột B) thì dữ liệu từ cột C:I sẽ tự nhảy bên sheet dữ liệu sang, cột A được đánh số thứ tự tự động khi cột B có dữ liệu, cột j thời gian sẽ được điền thời giạn thực của hệ thống thời điểm nhập. Trường hợp bị sai thì xóa bên cột B các cột còn lại sẽ được xóa đi. Nếu cột B nhập mã đã nhập thì sẽ có cảnh báo trùng không cho nhập (ví dụ đã có dòng nhập là 6 thì nếu nhập 6 tiếp sẽ không được).
Tổ kiểm tra khi tiêm xong sẽ nhập vào sheet "da tiem" cách nhập tương tự như sheet tiep don (nếu dữ liệu như ngày tháng năm sinh, sdt... sai do dữ liệu thì sẽ sửa trực tiếp tại ô tương ứng tại sheet tiep don, để lúc về sửa lại dữ liệu gốc sau).
Bên sheet "du lieu" cần một code để tạo nút bấm vào cuối ngày khi bấm sẽ điền số 1 (có thể là số 2 tùy lần tiêm thứ nhất 2 thứ 2 cái này xác định được trước khi tiêm) vào cột I (tổng hợp) khi người đó có tên trong sheet đã tiêm.
Mình đang điền công thức tìm kiếm trong file cho mọi người dễ hình dung (dữ liệu thật có thể sẽ có nhiều cột hơn nên dùng hàm sợ không ổn).
Nếu được mọi người ghi chú vào code giúp mình để mình có thể tự thêm bớt cột được khi nhận được dữ liệu chuẩn.
Bài đã được tự động gộp:

Công việc tạm thời mình hình dung và phải triển khai là như vậy, bạn nào nếu từng làm rồi có thể góp ý thêm cho mình, kể cả các bước bổ sung cho hợp lý đỡ loạn, chứ nghĩ mỗi ngày tiêm hơn 2000 người kiểm tra dữ liệu, nhập dữ liệu chắc loạn như cào cào :D
 

File đính kèm

  • theo doi tiem.xlsm
    12.4 KB · Đọc: 27
Bạn xem yêu cầu số 1 như vậy đã được chưa
Cám ơn bạn, mình thử đã được rồi, mò code mãi cũng thấy chỗ sửa để nếu dữ liệu gốc tăng lên tự tăng thêm số cột rồi. Còn một chỗ nữa là cái này cho nhập dữ liệu từ dòng 7, nhập vào dòng B6 là báo trùng, mò mãi không biết sửa ở đoạn nào
 
Upvote 0
Cám ơn bạn, mình thử đã được rồi, mò code mãi cũng thấy chỗ sửa để nếu dữ liệu gốc tăng lên tự tăng thêm số cột rồi. Còn một chỗ nữa là cái này cho nhập dữ liệu từ dòng 7, nhập vào dòng B6 là báo trùng, mò mãi không biết sửa ở đoạn nào
À quên, chỗ đó phải đặt điều kiện:
If WorksheetFunction.CountIf(Range(Cells(6, C), Cells(Target.Row - 1, C)), Target.Value) And Target.Row > 6 Then
MsgBox "Trùng " & Target.Value
Else
Thêm chỗ chữ đậm đó.
 
Upvote 0
Cái này là người ta tính cho đợt này nên cột đấy không có dữ liệu gì. (đại khái người ta chỉ cần cuối ngày trong cái danh sách này bao người đã được tiêm thì đánh dấu vào đấy (có thể 1 2 3 hoặc là đã tiêm, chưa tiêm...) Đánh dấu vào cột tổng hợp (không phải cột G, cột này sau này về là việc của người ta). Hoặc có thể tổng hợp thành 2 cột như này lấy từ 2 sheet tương ứng1630913743756.png
2/ Cột thời gian:
Phải phân biệt thời gian tiếp đón, thời gian tiêm xong chứ? Sao lại đặt tên giống nhau vậy?
Cái chỗ tiếp đón thực ra là không cần chỉ là thao tác kiểm tra nhanh và để xem những ai đã đến thôi, mình làm nhanh nên để các mẫu giống hệt nhau sau này cần gì thì cop paste xử lý sau.
Mô tả lại công việc:
Bước 1: ngoài cửa có 5-10 người vào một lúc đưa tờ khai, người tiếp đón nhập mã, nếu đúng họ tên, Đơn vị thì ký vào tờ khai cho người ta vào (nếu không khớp yêu cầu ra ngoài kiểm tra lại)
Bước 2: người được tiêm vào phòng khám, tư vấn nếu được sẽ tiêm
Bước cuối: tiêm xong cầm tờ khai đã được ký xác nhận đã tiêm (hoặc không tiêm được) ra bàn kiểm tra chốt lại chuẩn hết thông tin (có thể chỉnh sửa ở đây (chỉ duy nhất mã là cố định, các cột khác có thể sửa vào sheet kiểm tra nếu dữ liệu gốc bị sai)
Mục tiêu tổng hợp cuối ngày ví dụ dữ liệu gốc có 100 người, hôm nay có 70 người đến, 67 người tiêm được, 3 người không tiêm được, 30 người chưa đến (để nếu cần báo đơn vị giục người ta đến). (cụ thể chi tiết là những ai)
Bài đã được tự động gộp:

Chuẩn bị dữ liệu chuẩn (danh sách chuẩn bị tiêm)
Có duy nhất cái này thôi, vì khi vào thực tế không theo thứ tự định trước được ví dụ hôm nay tiêm cho 100 người sẽ tiêm số 1-5, 11-17,55-57... và khi người vào cũng không theo trình tự nào ai đến trước làm trước, hoặc có thể dự kiến tiêm ông số 10, nhưng có việc hôm nay không đến thay bằng ông số 101 hoặc có thể là sẽ bỏ qua. Ví dụ hôm nay tiêm thì chắc mình chỉ được xem danh sách tổng 10-20k người trước khoảng 1h để chuẩn bị (mẫu dòng cột như thế nào cũng chưa biết). Việc chuẩn bị trước rất là mơ hồ vì gấp nên khâu nào cũng vội có chuẩn bị được gì đâu
 
Lần chỉnh sửa cuối:
Upvote 0
tôi làm luôn việc tìm dữ liệu ở tên, số ĐT và số CMND đó
Cái đoạn này bị sai mất rồi vì mục tiêu ở bàn kiểm tra nếu dữ liệu sai thì sửa luôn ở sheet kiemtra (sheet dulieu không được động vào) mình sửa ở đây để sau này báo cho người ta biết thôi (chỉ có duy nhất cột mã số tiêm là cố định thôi các cột khác có thể sửa tay khi cần)
Bài đã được tự động gộp:

Tôi biết nên mới góp ý, 1 máy 24 người chỉ cần 30 giây kể cả in phiếu luôn, taị vì mấy bạn không biết cách làm mà thôi.
Cái này mình chưa biết, bạn có thể nói rõ hơn để mình tham khảo thêm được không
 
Upvote 0
Cái đoạn này bị sai mất rồi vì mục tiêu ở bàn kiểm tra nếu dữ liệu sai thì sửa luôn ở sheet kiemtra (sheet dulieu không được động vào) mình sửa ở đây để sau này báo cho người ta biết thôi (chỉ có duy nhất cột mã số tiêm là cố định thôi các cột khác có thể sửa tay khi cần)
Luôn có cách để dung hòa chuyện đó. Tạo 1 cái checkbox ActiveX có Name là chk1, Caption là Edit Mode. Code nó như sau:
Rich (BB code):
Private Sub chk1_Click()
    If chk1.Value Then
        Application.EnableEvents = False
    Else
        Application.EnableEvents = True
    End If
End Sub
Khi check vào đó thì ưa sửa gì sửa. Còn bỏ check thì trở lại trạng thái nhập liệu.
 
Upvote 0
Cái này là theo mẫu của đơn vị chủ quản đợt tiêm này, là mẫu nhập nhanh ban đầu, họ bắt mình nhập theo họ, quy cách theo họ không cho mình sửa gì hết (1,2) hết ngày gửi lại cái sheet dưlieu cho họ (đã có đánh dấu thêm chỗ 1 2 ấy (lần này là đợt1 nên đánh số 1)
Theo tôi hiểu thì mục đích của đơn vị chủ quản đợt là thiết kế mẫu này là để theo dõi việc tiêm chủng:
- Ai chưa tiêm chủng, ai đã tiêm chủng loại thuốc nào (aPfizer, Moderna, Astra Zececa, Vero Cell) nhưng mẫu thiết kế lại thiếu cột loại thuốc.
- Mẫu thiết kế thiếu 3 cột giới tính, loại thuốc tiêm, số Thẻ BH.
 
Lần chỉnh sửa cuối:
Upvote 0
Theo mình thấy bạn nói làm cho công ty 10 đến 20k người để quản lý chích covid thì mình nghĩ bạn chỉ cần 1 sheet ds cua 20k người rồi cập nhật theo các cột tương ứng là được rồi. Phức tạp hóa làm gì cho cực vậy ta
Bài đã được tự động gộp:

IMG_20210906_152749.png
 
Upvote 0
Theo mình thấy bạn nói làm cho công ty 10 đến 20k người để quản lý chích covid thì mình nghĩ bạn chỉ cần 1 sheet ds cua 20k người rồi cập nhật theo các cột tương ứng là được rồi. Phức tạp hóa làm gì cho cực vậy ta
Là do quy trình tại địa điểm tiêm, và do các bước trong quy trình đó cần 2 nhóm người nhập liệu. (Quy trình ở bài bên trên)
File của bạn là file cuối cùng sau khi tiêm dùng để tổng hợp từ 2 mẫu kia. Loại thuốc, lô thuốc, địa điểm, ... có thể điền sau (trên mẫu của bạn) vì 1 đợt chích hoặc 1 ngày chỉ có 1 loại thuốc và địa đểm là chính chỗ đang thực hiện. Sau khi đọc quy trình thì tôi không thắc mắc, ý kiến gì nữa. Vả lại bạn ấy bảo mẫu nhập liệu và mẫu kiểm tra là của địa phương cung cấp, không được chỉnh sửa.
 
Upvote 0
Theo tôi hiểu thì mục đích của đơn vị chủ quản đợt là thiết kế mẫu này là để theo dõi việc tiêm chủng
Cái này không phải vậy, ở đây là theo dõi của đơn vị hỗ trợ. Người ta chỉ cần biết đợt này đơn vị của người ta được phân 100 người được tiêm là những người có thông tin cơ bản sau: họ tên, ngày tháng năm sinh, số CMND CCCD, số điện thoại, đơn vị công tác. hết ngày người ta cần biết đã bao người đến tiêm, bao người tiêm được bao người chưa đến để còn gọi đến tiêm. Còn đầy đủ thông tin như mẫu chuẩn do bộ phận khác làm không phải việc mình đang muốn làm.
 
Upvote 0
Là do quy trình tại địa điểm tiêm, và do các bước trong quy trình đó cần 2 nhóm người nhập liệu. (Quy trình ở bài bên trên)
File của bạn là file cuối cùng sau khi tiêm dùng để tổng hợp từ 2 mẫu kia. Loại thuốc, lô thuốc, địa điểm, ... có thể điền sau (trên mẫu của bạn) vì 1 đợt chích hoặc 1 ngày chỉ có 1 loại thuốc và địa đểm là chính chỗ đang thực hiện. Sau khi đọc quy trình thì tôi không thắc mắc, ý kiến gì nữa. Vả lại bạn ấy bảo mẫu nhập liệu và mẫu kiểm tra là của địa phương cung cấp, không được chỉnh sửa.
Em nghĩ mẫu biểu chắc chắn không thay đổi được rồi. Quan trọng dữ liệu mình có đầy đủ để tổng hợp theo mẫu không thôi. Có thể chia ra nhiều xưởng, mỗi địa điểm chích chia ra 2 file như chủ top rồi cuối ngày tổng hợp lại cho lẹ
 
Upvote 0
Em nghĩ mẫu biểu chắc chắn không thay đổi được rồi. Quan trọng dữ liệu mình có đầy đủ để tổng hợp theo mẫu không thôi. Có thể chia ra nhiều xưởng, mỗi địa điểm chích chia ra 2 file như chủ top rồi cuối ngày tổng hợp lại cho lẹ
Tôi đoán thì công ty bạn ấy là công ty dịch vụ và nhận công việc nhập liệu cho các địa điểm tiêm chích của các địa phương. Danh sách do địa phương cung cấp, quy trình của họ, mẫu nhập liệu cũng của họ, cuối cùng trả file nhập liệu cho địa phương tự tổng hợp. Không phải công ty tự tổ chức chích cho nhân viên.
 
Upvote 0
Cái này không phải vậy, ở đây là theo dõi của đơn vị hỗ trợ. Người ta chỉ cần biết đợt này đơn vị của người ta được phân 100 người được tiêm là những người có thông tin cơ bản sau: họ tên, ngày tháng năm sinh, số CMND CCCD, số điện thoại, đơn vị công tác. hết ngày người ta cần biết đã bao người đến tiêm, bao người tiêm được bao người chưa đến để còn gọi đến tiêm. Còn đầy đủ thông tin như mẫu chuẩn do bộ phận khác làm không phải việc mình đang muốn làm.
1/ Tôi đưa Video và nêu tương tự như vấn đề tôi góp ý, chỉ việc chọn để nhập liệu.
2/ Thì bạn phải xem lại bài viết trước tôi góp ý về cái gì? Nội dung tôi góp ý thế này:
- Sheet dữ liệu nên nhập thông tin tất cả mọi người trong Công ty, nên thêm cột bộ phận và cột tổ, để khi khi chích ngừa thì lọc ra danh sách tổ, bộ phận. Có danh sách lọc ra theo tổ được chích ngùa ngày đó thì mới chọn nhập liệu được chứ.
 
Upvote 0
Em nghĩ mẫu biểu chắc chắn không thay đổi được rồi. Quan trọng dữ liệu mình có đầy đủ để tổng hợp theo mẫu không thôi. Có thể chia ra nhiều xưởng, mỗi địa điểm chích chia ra 2 file như chủ top rồi cuối ngày tổng hợp lại cho lẹ
Thực ra là mình chỉ cần được như video mình đã đăng thôi. Lúc đầu cũng nghĩ dùng lọc theo mã tiêm rồi gõ 1 luôn vào cột tổng hợp xong lại lọc lại nhưng như thế thao tác hơi lòng vòng, nhập liên tục trong 8h chắc chắn loạn đến lúc theo phản xạ không biết tích hay chưa (mà không phải 1 ngày mà là nhiều ngày). Nếu bạn nào từng tải file trên cổng thông tin tiêm chủng rồi mới thấy nó loạn, có người đăng ký 2 3.. lần, có người sai tên kiểu Nguyễn Văn Thy với Nguyễn Văn Thunói chung nhiều cái sai tìm trợn mắt lắm làm rồi mới thấy. Nên mình không tham vọng nhiều chỉ cần lấy được thông tin cơ bản là được.
Liên kết: https://youtu.be/4O9-ysFBbMQ
 
Upvote 0
Tôi đoán thì công ty bạn ấy là công ty dịch vụ và nhận công việc nhập liệu cho các địa điểm tiêm chích của các địa phương. Danh sách do địa phương cung cấp, quy trình của họ, mẫu nhập liệu cũng của họ, cuối cùng trả file nhập liệu cho địa phương tự tổng hợp. Không phải công ty tự tổ chức chích cho nhân viên.
Hihi nếu như vậy em thấy làm trên excel thì cứ tạo 2 file rồi đưa va chỉ người ta nhap mình cũng chỉ việc tổng hợp, còn muốn vip hơn dễ lấy tiền hơn thì làm cho nhập qua mạng cho Pro hihihi
 
Upvote 0
1/ Tôi đưa Video và nêu tương tự như vấn đề tôi góp ý, chỉ việc chọn để nhập liệu.
2/ Thì bạn phải xem lại bài viết trước tôi góp ý về cái gì? Nội dung tôi góp ý thế này:
- Sheet dữ liệu nên nhập thông tin tất cả mọi người trong Công ty, nên thêm cột bộ phận và cột tổ, để khi khi chích ngừa thì lọc ra danh sách tổ, bộ phận. Có danh sách lọc ra theo tổ được chích ngùa ngày đó thì mới chọn nhập liệu được chứ.
Video bị lỗi mình không xem được. Ở đây là nhiều công ty chỉ cần quản lý theo công ty thôi. Vừa sản xuất vừa tiêm nên cùng buổi có thể có 1 công ty cũng có thể có nhiều công ty không khống chế để chia theo đơn vị được (chỉ được tương đối thôi) có Công ty 1000 người có công ty có 2-30 người, một ngày tiêm 2000 người không chia nhánh để tiêm được
Bài đã được tự động gộp:

được thế đi thuê cho nhanh, mình chỉ được công ty phân công hỗ trợ nhập liệu thôi, mỗi công ty 1 người gộp vào thành một nhóm nhập. Người ta yêu cầu mình nhập tay từng ô một ấy, nên mình đang xin danh sách tổng để lấy ra cho nhanh
 
Upvote 0
Video bị lỗi mình không xem được. Ở đây là nhiều công ty chỉ cần quản lý theo công ty thôi. Vừa sản xuất vừa tiêm nên cùng buổi có thể có 1 công ty cũng có thể có nhiều công ty không khống chế để chia theo đơn vị được (chỉ được tương đối thôi) có Công ty 1000 người có công ty có 2-30 người, một ngày tiêm 2000 người không chia nhánh để tiêm được
Thông thường thì bất kỳ Công ty nào muốn chích ngừa thì họ gửi trước cho mình danh và nhập liệu trước vào Sheet dữ liệu. Công ty nào đến thì chỉ việc lọc Công ty đó ra thôi chứ có gì đâu là khó.
 
Upvote 0
nếu là mình mình thít làm bằng form, lâu lâu mò lại phê qúa
COVID22.jpg
 
Upvote 0
Công ty nào đến thì chỉ việc lọc Công ty đó ra thôi chứ có gì đâu là khó.
Cái này là trao đổi thôi nhé không có ý bắt bẻ gì đâu nhé, việc lọc như bạn nói không sai, không cần lọc công ty luôn lọc theo mã là đã ra được người đấy, nếu thông tin đúng rồi sau đó tích vào một cột quy định là đã đến (ví dụ là 1) xong lại lọc người khác tích tiếp (đấy là mình đang hiểu cách bạn tả). Công việc này được lặp đi lặp lại chắc cứ khoảng 15s lọc tích xong một người làm liên tục trong thời gian dài sẽ có lúc lơ đễnh lọc xong quên không tích vào cột tương ứng đã đi lọc người khác mà chỉ cần một lần như này là hết ngày tìm lại là đủ hết hơi rồi. Nó sẽ không thuận như cái mình đang muốn gõ vào mã là ra thông tin và chỉ nhìn thông tin đấy chuẩn là được, nếu chưa nhập vào sẽ không có thông tin hiện ra tránh được sai xót như khi lọc.
 
Upvote 0
Cái này là trao đổi thôi nhé không có ý bắt bẻ gì đâu nhé, việc lọc như bạn nói không sai, không cần lọc công ty luôn lọc theo mã là đã ra được người đấy, nếu thông tin đúng rồi sau đó tích vào một cột quy định là đã đến (ví dụ là 1) xong lại lọc người khác tích tiếp (đấy là mình đang hiểu cách bạn tả). Công việc này được lặp đi lặp lại chắc cứ khoảng 15s lọc tích xong một người làm liên tục trong thời gian dài sẽ có lúc lơ đễnh lọc xong quên không tích vào cột tương ứng đã đi lọc người khác mà chỉ cần một lần như này là hết ngày tìm lại là đủ hết hơi rồi. Nó sẽ không thuận như cái mình đang muốn gõ vào mã là ra thông tin và chỉ nhìn thông tin đấy chuẩn là được, nếu chưa nhập vào sẽ không có thông tin hiện ra tránh được sai xót như khi lọc.
Thông báo cho tin buồn cho bạn:
1/ Danh sách dữ liệu một đợt khoảng 10-20k người, bạn dùng hàm mà nói là nhanh hơn những cái mà mọi người góp ý thì cũng xin chia buồn về cách nhìn nhận của bạn. Vậy bạn có biết lập trình VBA là gì chưa?
2/ Tin buồn thứ 2 là những người góp ý cho bạn đều là người có nhiều kinh nghiệm và tất cả đều biết lập trình trong Excel muốn hướng bạn làm thế nào cho nhanh nhất mà bạn không nghe thì chắc chẳng còn ai có thiện chí giúp cho bạn.
3/ Làm như bạn thì khi chích xong 1 người nào đó thì cái phiếu chích ngùa phải viết tay là thêm 1 công đoạn nữa.
 
Lần chỉnh sửa cuối:
Upvote 0
Thông báo cho tin buồn cho bạn:
1/ Danh sách dữ liệu một đợt khoảng 10-20k người, bạn dùng hàm mà nói là nhanh hơn những cái mà mọi người góp ý thì cũng xin chia buồn về cách nhìn nhận của bạn.
2/ Tin buồn thứ 2 là những người góp ý cho bạn đều là người có nhiều kinh nghiệm và tất cả đều biết lập trình trong Excel muốn hướng bạn làm thế nào cho nhanh nhất mà bạn không nghe thì chắc chẳng còn ai có thiện chí giúp cho bạn.
Bạn hình như đang hoàn toàn hiểu nhầm ý mình nói:
1/ Từ đầu tới cuối mình không hề nhờ mọi người viết hàm, mình nhờ viết code VBA mà, còn nếu dùng hàm mình đã tự làm được như video mình đăng (mình có nói rõ trước làm xét nghiệm ít người nên mình dùng hàm, bây giờ cái này dữ liệu nhiều quá không dùng hàm được nên nhờ mọi người giúp code)
2/ Các bạn góp ý mình cũng có nói dùng form thì đến gần lúc làm mình mới có được thông số cột cụ thể, đến lúc ấy sửa form ngay thì mình chịu chết không biết làm (dân nghiệp dư đi sửa form nhập liệu chắc cả ngày không xong), lên diễn đàn hỏi thì cũng chắc chắn không kịp giờ làm.
Thế nên mình mới hỏi code đơn giản để chỉ cần tăng giảm cột so với file ví dụ cũng có thể tự sửa ngay mà.
 
Upvote 0
Web KT

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

Back
Top Bottom