Nhờ hỗ trợ làm Userform nhập liệu

Liên hệ QC

sondang.abt

Thành viên mới
Tham gia
2/6/11
Bài viết
14
Được thích
4
Xin chào các bạn,
Công việc của mình cần nhập nhiều số liệu xét nghiệm vào Excel nên mình muốn làm 1 userform để nhập cho nhanh mà loay hoay mãi không làm được.
Mình muốn up lên forum GPE hy vọng được các bạn giúp đỡ giúp mình làm cái form nhập liệu đó.
File excel mình muốn làm mình để ở bên dưới.
Rất hy vọng được sự trợ giúp của các bạn.

Chân thành cảm ơn admin, forum và các bạn rất nhiều.
 

File đính kèm

  • 3. Nhap lieu xet nghiem.xlsm
    59.6 KB · Đọc: 50
Điều đầu tiên & tối quan trọng là CSDL của bạn chưa có mã duy nhất cho từng người (bệnh); Nếu không có cái cột mã này thì chưa nên làm gì hết, thành thật khuyên bạn!
Mình xin gợi í bộ mã như sau
PHP:
'
  Mã  Ho & Tên              '
FDB00  Đào Duy Bình
FFS00  Đặng Đình Sơn
NTB00  Nguyễn Trọng Biên
NTB01  Nguyễn Tiến Băng
NTD00  Nguyễn Tiến Dũng
NTF00  Nguyễn Tiến Đạt
NTF01  Nguyễn Tiến Đạt
NTG00  Nguyễn Trường Giang
NTH00  Nguyễn Tam Hải
NTH01  Nguyễn Trọng Hùng
NTH02  Nguyễn Thanh Hùng
NVH00  Nguyễn Văn Hiệp
NVH01  Nguyễn Trần Vân Hải
NVH02  Nguyễn Vũ Văn Hoàn
NVH03  Nguyễn Văn Hùng
NVH04  Nguyễn Văn Hùng
NVL00  Nguyễn Văn Lợi
NVP00  Nguyễn Văn Phúc 
NVT00  Ngô Văn Tấn
NVV00  Nguyễn Văn Vọng
NVV01  Nguyễn Văn Vụ
PJA00  Phương Anh
PJN00  Phan Nam
 . . .   . . . . . .
Thứ hai: Bạn đang xài các Option Button; & bạn đã có các danh mục ở trang 'Admim Code'; Sao bạn không xài ComboBox?
Điều tiện lợi là diện tích Form sẽ ít tốn chổ hơn; Còn nếu sai số khi chọn nhằm thì 2 loại này có thể là như nhau, fụ thuộc vô thói quen từng người nhập liệu
Nhưng số những dữ liệu fải lựa chọn sẽ fát sinh tăng thì bạn thiết kế lại Form, trong khi í, người xài ComboBox sẽ chỉ tăng dòng trong ComboBox mà thôi

Thứ ba:
Do sheet data sẽ bị khóa lock protect sheet nên mình không biết có ảnh hưởng gì khi chạy userform không? Nếu có thì phải làm thế nào để giải quyết vấn đề
Nếu muốn nhập liệu lên trang tính đã khóa, thì bạn fải biết mật mã & mở khóa ngay trước khi nhập liệu thôi; Sau khi xong việc nạp liệu thì muốn khóa lại hay không là tùy ở ham muốn của bạn!

Vài lời tham vấn cùng bạn, mong bạn có ngày làm việc hiệu quả!
 
Upvote 0
Điều đầu tiên & tối quan trọng là CSDL của bạn chưa có mã duy nhất cho từng người (bệnh); Nếu không có cái cột mã này thì chưa nên làm gì hết, thành thật khuyên bạn!
Mình xin gợi í bộ mã như sau
PHP:
'
  Mã  Ho & Tên              '
FDB00  Đào Duy Bình
FFS00  Đặng Đình Sơn
NTB00  Nguyễn Trọng Biên
NTB01  Nguyễn Tiến Băng
NTD00  Nguyễn Tiến Dũng
NTF00  Nguyễn Tiến Đạt
NTF01  Nguyễn Tiến Đạt
NTG00  Nguyễn Trường Giang
NTH00  Nguyễn Tam Hải
NTH01  Nguyễn Trọng Hùng
NTH02  Nguyễn Thanh Hùng
NVH00  Nguyễn Văn Hiệp
NVH01  Nguyễn Trần Vân Hải
NVH02  Nguyễn Vũ Văn Hoàn
NVH03  Nguyễn Văn Hùng
NVH04  Nguyễn Văn Hùng
NVL00  Nguyễn Văn Lợi
NVP00  Nguyễn Văn Phúc
NVT00  Ngô Văn Tấn
NVV00  Nguyễn Văn Vọng
NVV01  Nguyễn Văn Vụ
PJA00  Phương Anh
PJN00  Phan Nam
. . .   . . . . . .
Thứ hai: Bạn đang xài các Option Button; & bạn đã có các danh mục ở trang 'Admim Code'; Sao bạn không xài ComboBox?
Điều tiện lợi là diện tích Form sẽ ít tốn chổ hơn; Còn nếu sai số khi chọn nhằm thì 2 loại này có thể là như nhau, fụ thuộc vô thói quen từng người nhập liệu
Nhưng số những dữ liệu fải lựa chọn sẽ fát sinh tăng thì bạn thiết kế lại Form, trong khi í, người xài ComboBox sẽ chỉ tăng dòng trong ComboBox mà thôi

Thứ ba:
Nếu muốn nhập liệu lên trang tính đã khóa, thì bạn fải biết mật mã & mở khóa ngay trước khi nhập liệu thôi; Sau khi xong việc nạp liệu thì muốn khóa lại hay không là tùy ở ham muốn của bạn!

Vài lời tham vấn cùng bạn, mong bạn có ngày làm việc hiệu quả!
_________________________________________________________________________________________________

Cảm ơn SA_DQ nhiều. Các lời khuyên rất hợp lý với mình.
1. Về Unique code, mình chưa có kinh nghiệm tạo ra code như thế nào cho nó có hệ thống, và dễ tra cứu, ví dụ như trong code có ngày tháng năm, mã phòng khám, mã khách hàng trong ngày ... hay như nào đó mong bạn tư vấn thêm. Hay là có công thức để tạo mã unique code nào đó ???
2. Về combo-box đúng là thuận lợi hơn cho quản lý và trình bày. Nhưng mình có một điểm ở đây chưa biết xử lý thế nào. Đó là khi nhập vào form thì nhập mã code, ví dụ Nhập 1 là sex, nhập 2 là TCMT nhưng khi nhập nếu để lựa chọn ở combo box là 1 hoặc 2 thì người nhập không biết 1 là gì, 2 là gì. Có cách nào để người nhập có thể nhìn thấy nhập mã số 1 là lựa chọn gì, mã số 2 là lựa chọn gì ở combo box không?
3. Vấn đề thứ 3 liên quan đến look sheet, sau khi bạn comment mình đã hiểu và có thể xử lý được,

Cảm ơn bạn rất nhiều và mong được tiếp tục hỗ trợ. :)
 
Upvote 0
Xin chào các bạn,
Công việc của mình cần nhập nhiều số liệu xét nghiệm vào Excel nên mình muốn làm 1 userform để nhập cho nhanh mà loay hoay mãi không làm được.
Mình muốn up lên forum GPE hy vọng được các bạn giúp đỡ giúp mình làm cái form nhập liệu đó.
File excel mình muốn làm mình để ở bên dưới.
Rất hy vọng được sự trợ giúp của các bạn.

Chân thành cảm ơn admin, forum và các bạn rất nhiều.
MÌnh thấy userform của bạn chỉ là nhập mới nên nó còn khá dễ, khi bạn thêm chức năng sửa và xóa nữa thì sẽ phức tạp hơn nhiều nếu bạn không có khóa duy nhất.
Mình cũng thấy là chưa chắc userform nhập liệu nhanh hơn trên sheet đâu nhé(đang nói trong trường hợp của bạn), và làm trên sheet bạn dễ có thể chỉnh sửa hơn nhiều.
 
Upvote 0
MÌnh thấy userform của bạn chỉ là nhập mới nên nó còn khá dễ, khi bạn thêm chức năng sửa và xóa nữa thì sẽ phức tạp hơn nhiều nếu bạn không có khóa duy nhất.
Mình cũng thấy là chưa chắc userform nhập liệu nhanh hơn trên sheet đâu nhé(đang nói trong trường hợp của bạn), và làm trên sheet bạn dễ có thể chỉnh sửa hơn nhiều.

Cảm ơn góp ý của bạn. MÌnh dùng form là để hạn chế sai số khi nhập vào dẫn đến số liệu phân tích đầu ra bị sai. Mình đã dùng cách nhập trực tiếp vào sheet rồi nhưng nhiều người cùng nhập nên thỉnh thoảng sai chỗ này chỗ kia, lại bị lỗi.
Cơ sở dữ liệu này mình không có cần chỉnh sửa nên chỉ cần nhập thôi.
 
Upvote 0
Cảm ơn góp ý của bạn. MÌnh dùng form là để hạn chế sai số khi nhập vào dẫn đến số liệu phân tích đầu ra bị sai. Mình đã dùng cách nhập trực tiếp vào sheet rồi nhưng nhiều người cùng nhập nên thỉnh thoảng sai chỗ này chỗ kia, lại bị lỗi.
Cơ sở dữ liệu này mình không có cần chỉnh sửa nên chỉ cần nhập thôi.
Nếu chỉ đơn thuần là để chỉ nhập thì mình thấy File của bạn đã ổn lắm rồi, chỉ việc sử dụng thôi.
Cái nhập trực tiếp đúng như bạn nói, thì 10 người nhập 10 kiểu khác nhau thì chẳng thể nào đồng bộ được :D
 
Upvote 0
Cảm ơn góp ý của bạn. MÌnh dùng form là để hạn chế sai số khi nhập vào dẫn đến số liệu phân tích đầu ra bị sai. Mình đã dùng cách nhập trực tiếp vào sheet rồi nhưng nhiều người cùng nhập nên thỉnh thoảng sai chỗ này chỗ kia, lại bị lỗi.
Cơ sở dữ liệu này mình không có cần chỉnh sửa nên chỉ cần nhập thôi.
Vậy thì mình có 1 số góp ý thế này
1. Nhập liệu nên tường minh, dễ hiểu như phần giới tính để 1,2,3 thì khó hiểu và có thể nhầm lẫn, vậy nên cần ghi rõ giới tính, khi lưu thì mình chuyển đổi vào sheet sau
2. Bạn muốn tránh nhập sai thì 1 số combobox bạn nên để chế độ chỉ chọn, chứ không thể gõ bất kỳ được.
3. Code lưu của bạn mình thấy có 1 vài dòng rồi và thấy đang đi đúng hướng, bạn thử làm thêm xem.
 
Upvote 0
_________________________________________________________________________________________________

Cảm ơn nhiều. Các lời khuyên rất hợp lý với mình.
1. . . . .
2. Về combo-box đúng là thuận lợi hơn cho quản lý và trình bày. Nhưng mình có một điểm ở đây chưa biết xử lý thế nào. Đó là khi nhập vào form thì nhập mã code, ví dụ Nhập 1 là sex, nhập 2 là TCMT nhưng khi nhập nếu để lựa chọn ở combo box là 1 hoặc 2 thì người nhập không biết 1 là gì, 2 là gì. Có cách nào để người nhập có thể nhìn thấy nhập mã số 1 là lựa chọn gì, mã số 2 là lựa chọn gì ở combo box không?
3. . . . .
Bạn vẫn có thể xài ComboBox 2 cột để hướng dẫn nhập liệu mà
ComboBox có thể fiu1p bạn 1 dòng từ danh sách vầy mà:
PHP:
Mã    Danh mục
A   Tiểu đường
B   Ruột dư
C   Tim mạch
D   Fổi
E   Ngoài da
..    . . . .  .
Bạn chỉ mở ComboBox & chọn dòng như dòng thứ 2, thì kí tự 'B' sẽ được nhập vô CSDL đại diện cho căn bệnh ruột dư mà.

Còn chuyện mã duy nhất thì bạn tìm thêm trên GPE.COM hay trên mạng, để có bộ mã thích hợp.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn vẫn có thể xài ComboBox 2 cột để hướng dẫn nhập liệu mà
ComboBox có thể fiu1p bạn 1 dòng từ danh sách vầy mà:
PHP:
Mã    Danh mục
A   Tiểu đường
B   Ruột dư
C   Tim mạch
D   Fổi
E   Ngoài da
..    . . . .  .
Bạn chỉ mở ComboBox & chọn dòng như dòng thứ 2, thì kí tự 'B' sẽ được nhập vô CSDL đại diện cho căn bệnh ruột dư mà.

Còn chuyện mã duy nhất thì bạn tìm thêm trên GPE.COM hay trên mạng, để có bộ mã thích hợp.

Cảm ơn SA_DQ,
Bạn có thể giúp mình thêm để viết code cho cái userform đó không?. mình mới đang tập tành viết code nên không thể hoàn thành được, mà cái form đó lại là cái quan trọng nhất của cái file dữ liệu.
Mình mới chỉ làm xong phần giao diện cho form thôi, chưa có code trong đó
 
Upvote 0
Xin chào các bạn,
Công việc của mình cần nhập nhiều số liệu xét nghiệm vào Excel nên mình muốn làm 1 userform để nhập cho nhanh mà loay hoay mãi không làm được.
Mình muốn up lên forum GPE hy vọng được các bạn giúp đỡ giúp mình làm cái form nhập liệu đó.
File excel mình muốn làm mình để ở bên dưới.
Rất hy vọng được sự trợ giúp của các bạn.

Chân thành cảm ơn admin, forum và các bạn rất nhiều.
Góp ý cho bạn:
1/ C7. Nhóm đối tượng và C8. Đường lây truyền HIV thì nên dùng ComboBox cho tiện vì còn chừa chỗ để thêm ListBox sử dụng cho chức năng tra cứu, bạn dùng OptionButton chiếm nhiều không gian của UserForm quá.
2/ Nếu có làm phiếu xét nghiệm để in ra thì nên sử dụng SheetForm, khi in phiếu xét nghiệm xong thì dùng nó để nhập liệu luôn.
 
Upvote 0
Vậy thì mình có 1 số góp ý thế này
1. Nhập liệu nên tường minh, dễ hiểu như phần giới tính để 1,2,3 thì khó hiểu và có thể nhầm lẫn, vậy nên cần ghi rõ giới tính, khi lưu thì mình chuyển đổi vào sheet sau
2. Bạn muốn tránh nhập sai thì 1 số combobox bạn nên để chế độ chỉ chọn, chứ không thể gõ bất kỳ được.
3. Code lưu của bạn mình thấy có 1 vài dòng rồi và thấy đang đi đúng hướng, bạn thử làm thêm xem.

Bạn nói đúng. Mình đã để combo box 2 dòng và thấy OK không cần chế độ chọn.
Góp ý cho bạn:
1/ C7. Nhóm đối tượng và C8. Đường lây truyền HIV thì nên dùng ComboBox cho tiện vì còn chừa chỗ để thêm ListBox sử dụng cho chức năng tra cứu, bạn dùng OptionButton chiếm nhiều không gian của UserForm quá.
2/ Nếu có làm phiếu xét nghiệm để in ra thì nên sử dụng SheetForm, khi in phiếu xét nghiệm xong thì dùng nó để nhập liệu luôn.

Cảm ơn bạn. Bạn có thể hướng dẫn thêm là: làm sheetForm thì dùng các hàm gì để tự động nhập liệu từ sheetForm sang database không?
Nếu có thể được thì giúp mình một ví dụ luôn với !
 
Upvote 0
Bạn có thể giúp mình thêm để viết code cho cái userform đó không?. mình mới đang tập tành viết code nên không thể hoàn thành được, mà cái form đó lại là cái quan trọng nhất của cái file dữ liệu.
Mình sẽ giúp, nhưng theo hướng sau:

A./ Xây dựng lài CSDL với những biến đổi sau:
1 Tách trang tính 'Data' của bạn ra làm 2 (bảng hay trang tính), gồm
Trang thứ nhất bao gồm các cột trước cột "J" của bạn & tất nhiên fải thêm 1 cột nữa; Đó là cột mã duy nhất.
Trang thứ 2 gồm cột mã duy nhất (như trang trước) & các cột còn lại của 'Data' của bạn
Trang 'Admin Code' cần bố trí các bảng lại không chồng lên nhau như bây giờ; Có nghĩa là các bảng danh mục (cách mà mình gọi các bảng này) không có cái nào trùng cột; Mỗi bảng dù ít hay nhiều dữ liệu điều chiếm dụng tất thẩy các cột mà nó cần; Bên dười nó không có bảng nào khác.
Chuyện này là dành cho sự fát triển CSDL về sau
2. Các cột [Mã] ở trang 'Admim Code' không xài số, mà xài các kí tự

B. Trong Form sẽ xài các ComboBox thay vì OptionButton như của bạn;

Dù bạn không đồng í với những biến đổi này, thì mình sẽ tiến hành để bạn tham khảo cho vui!

Chúc ngày nghỉ cuối tuần nhiều kết quả.
 
Upvote 0
Bạn nói đúng.
Bạn có thể hướng dẫn thêm là: làm sheetForm thì dùng các hàm gì để tự động nhập liệu từ sheetForm sang database không?
Nếu có thể được thì giúp mình một ví dụ luôn với !
1/ Muốn chọn 1 loại xét nghiệm thì có tất cả các tiêu chí của loại đó, bạn tham khảo cách làm ở sheet BANG_GIA.
2/ Bạn tham khảo, SheetForm là cái ĐƠN THUỐC của File trong bài viết sau:
https://www.giaiphapexcel.com/diendan/threads/theo-dõi-và-truy-vấn-đơn-thuốc-nơi-phòng-khám-bệnh.126073/
 
Upvote 0
Mình sẽ giúp, nhưng theo hướng sau:

A./ Xây dựng lài CSDL với những biến đổi sau:
1 Tách trang tính 'Data' của bạn ra làm 2 (bảng hay trang tính), gồm
Trang thứ nhất bao gồm các cột trước cột "J" của bạn & tất nhiên fải thêm 1 cột nữa; Đó là cột mã duy nhất.
Trang thứ 2 gồm cột mã duy nhất (như trang trước) & các cột còn lại của 'Data' của bạn
Trang 'Admin Code' cần bố trí các bảng lại không chồng lên nhau như bây giờ; Có nghĩa là các bảng danh mục (cách mà mình gọi các bảng này) không có cái nào trùng cột; Mỗi bảng dù ít hay nhiều dữ liệu điều chiếm dụng tất thẩy các cột mà nó cần; Bên dười nó không có bảng nào khác.
Chuyện này là dành cho sự fát triển CSDL về sau
2. Các cột [Mã] ở trang 'Admim Code' không xài số, mà xài các kí tự

B. Trong Form sẽ xài các ComboBox thay vì OptionButton như của bạn;

Dù bạn không đồng í với những biến đổi này, thì mình sẽ tiến hành để bạn tham khảo cho vui!

Chúc ngày nghỉ cuối tuần nhiều kết quả.
______________________________
Mình chưa có kinh nghiệm về vụ phát triển CSDL nên nghĩ số TT trong bảng admin cho dễ nhập thôi.
Các gợi ý khác thì mình thấy rất hay.
Có một bạn bên dưới gợi ý mình nên dùng SheetForm. Mình thấy cũng OK nhưng mình đang muốn học thêm về VBA nên mình nghĩ là sẽ theo phương án làm Userform. Vừa làm vừa học kinh nghiệm luôn.
Khi nào bạn xong cho mình tham khảo nhé.
Thank you very much.
 
Upvote 0
. . . . Các gợi ý khác thì mình thấy rất hay.
(2) Có một bạn bên dưới gợi ý mình nên dùng SheetForm. Mình thấy cũng OK nhưng mình đang muốn học thêm về VBA nên mình nghĩ là sẽ theo phương án làm Userform. Vừa làm vừa học kinh nghiệm luôn.
(1) Khi nào bạn xong cho mình tham khảo nhé.. . . .
1./ Không cần chờ đến xong mới đưa file lên;
Mong rằng bạn dành nguyên sáng nay để thao tác & chiêm nghiệm rốt ráo bộ mã BN (bệnh nhân) mới này
Hướng dẫn:
Bạn xem trong cột mã để biết qui luật tạo bộ mã này
Thao tác trên Form với 2 TextBox đâu & ListBox:

Sau khi ta nhập tên BN ví dụ như 'Võ Công Hà' & sang TextBox thứ 2 ta chỉ cần nhập 'VCH'
Thì ngay lp tức ở ListBox cho ta biết danh sách toàn thể các BN có 3 kí tự mã này; Nếu chưa có 'VCH' trong danh sách macro sẽ tự động tạo mã BN cho bạn (& sẽ là 'VCH00' như ví dụ)
Nếu đã có, bạn chọn kí số hay kí tự thích hợp điền vô TextBox mã cho đủ độ dài (=5)

2./ Ngay trong SheetForm vẫn fải viết VBA, như đúng là không nhiều lắm!

[Xin xem file ở bài tiếp sau & cảm ơn!]
 
Lần chỉnh sửa cuối:
Upvote 0
1./ Không cần chờ đến xong mới đưa file lên;
Mong rằng bạn dành nguyên sáng nay để thao tác & chiêm nghiệm rốt ráo bộ mã BN (bệnh nhân) mới này
Hướng dẫn:
.........................................
2./ Ngay trong SheetForm vẫn fải viết VBA, như đúng là không nhiều lắm!
1/ Em nghĩ, sử dụng SheetForm thì nó tiện lợi nhất là sử dụng cho người cần in ấn, nhất là cần in hàng loạt.
2/ Cùng thực hiện nội dung, công việc gần như nhau, nhưng SheetForm thì code sẽ ngắn gọn hơn UserForm.
 
Upvote 0
2. Về combo-box đúng là thuận lợi hơn cho quản lý và trình bày. Nhưng mình có một điểm ở đây chưa biết xử lý thế nào. Đó là khi nhập vào form thì nhập mã code, ví dụ Nhập 1 là sex, nhập 2 là TCMT nhưng khi nhập nếu để lựa chọn ở combo box là 1 hoặc 2 thì người nhập không biết 1 là gì, 2 là gì. Có cách nào để người nhập có thể nhìn thấy nhập mã số 1 là lựa chọn gì, mã số 2 là lựa chọn gì ở combo box không?
Form quái gì mà tiếng Việt tiếng Tây lẫn lộn.
 
Upvote 0
Form quái gì mà tiếng Việt tiếng Tây lẫn lộn.
Chào bạn, mình để 2 từ khác nhau cho nó dễ phân biệt trong cái ví dụ đó thôi. Chứ thực ra muốn làm chức năng lựa chọn ngôn ngữ để ra giao diện quản lý số liệu cơ. Nhưng trình độ còn hạn chế nên vẫn đang học.
Bài đã được tự động gộp:

1./ Không cần chờ đến xong mới đưa file lên;
Mong rằng bạn dành nguyên sáng nay để thao tác & chiêm nghiệm rốt ráo bộ mã BN (bệnh nhân) mới này
Hướng dẫn:
Bạn xem trong cột mã để biết qui luật tạo bộ mã này
Thao tác trên Form với 2 TextBox đâu & ListBox:

Sau khi ta nhập tên BN ví dụ như 'Võ Công Hà' & sang TextBox thứ 2 ta chỉ cần nhập 'VCH'
Thì ngay lp tức ở ListBox cho ta biết danh sách toàn thể các BN có 3 kí tự mã này; Nếu chưa có 'VCH' trong danh sách macro sẽ tự động tạo mã BN cho bạn (& sẽ là 'VCH00' như ví dụ)
Nếu đã có, bạn chọn kí số hay kí tự thích hợp điền vô TextBox mã cho đủ độ dài (=5)

2./ Ngay trong SheetForm vẫn fải viết VBA, như đúng là không nhiều lắm!

_____________________________________________
Háo hức quá,
Ngâm cứu ngay cái đã. Cám ơn SA_DQ nhiều nhiều nhé.
 
Upvote 0
Bạn này đúng là ngâm cứu!

Bạn xem & tiếp tục ngâm cứu với file mới & gần hoàn chỉnh này;
Trưa mai mình tháo file bài trên; Thu hồi tài nguyên
 

File đính kèm

  • Form.rar
    41.5 KB · Đọc: 118
Upvote 0
Web KT
Back
Top Bottom