Muốn tạo 1 UserForm mà việc nhập và xuất dữ liệu đều trên UserForm đó ??? (1 người xem)

Liên hệ QC

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

tieuhoangtu1988

Thành viên mới
Tham gia
29/3/11
Bài viết
6
Được thích
0
Chào mọi người!

Ý mình muốn có userform như trên, sau khi click button "Input Data" (hình minh họa) thì hiện userform1 này và nhập 1 đợt các thông tin vào 6 textbox kia, xong rồi click button "Add" để các dữ liệu này xuất lên vùng chứa dữ liệu bên trên.
Sau đó, mình lại nhập các đợt dữ liệu tiếp theo rồi Add, rồi lại xuất lên trên (ở các hàng tiếp theo hàng dữ liệu đã add trước).
Cứ thế mà mình cần add khoảng 7 - 10 dòng dữ liệu như vậy!
Và nếu cần thiết updates lại dữ liệu đã add thì mình click vào dòng dữ liệu đó -> rồi sửa -> rồi click button "Edit" để update lại thôi.

Vấn đề là mình không biết viết code cho button Add và button Edit như thế nào!!? mong mọi người chỉ giúp.
Đồng thời, với vùng chứa dữ liệu ấy, làm sao mình đưa các tiêu đề (No, Name, ID, ...) vào luôn listbox đó mà không cần phải mắc công dùng tới các label cụ thể vậy. Lúc mình tạo lstDatabase này thì có khai báo thuộc tính ColumnHeads từ mặc định False sang True để hiển thị luôn tên cột, nhưng cách này hình như sai rồi, vì cách này áp dụng với việc listbox lấy dữ liệu từ bảng tính (RowSource)!

Nhắc lại rằng: mình chỉ muốn tạo userform mà việc nhập và xuất dữ liệu đều trên userform này, chứ không thông qua trung gian là bảng tính!

Mong được hướng dẫn cụ thể! Thanks mọi người thật nhiều!

Trân trọng!
 

File đính kèm

  • Vidu.xlsm
    Vidu.xlsm
    18.3 KB · Đọc: 119
  • InputData.jpg
    InputData.jpg
    19.1 KB · Đọc: 130
  • VD1.jpg
    VD1.jpg
    20 KB · Đọc: 141
Lần chỉnh sửa cuối:
Chào mọi người, mình đang muốn tạo một UserForm (như hình vẽ kèm theo).
Ý định của mình là với 6 cái TextBox bên dưới, sau khi mình nhập dữ liệu vào xong, sẽ click vào CommandButton "Add" ở bên cạnh thì cả 6 dữ liệu kia sẽ hiển thị trên cái vùng chứa ở bên trên. Sau đó, nếu muốn nhập 1 lượt dữ liệu khác vào thì lại nhập --> Add --> hiện lên trong vùng này (hàng thứ 2 bên dưới hàng dữ liệu đã add trước). Cứ thế cho khoảng 7 - 10 lần nhập và add như thế.
Mình tính dùng là kiểu điều khiển ListBox cho cái vùng chứa dữ liệu ấy. Nhưng lại không biết viết code cho Add như thế nào !!!?
Mong được mọi người chỉ giáo thêm.

Nếu có cách nào khác thì mong được hướng dẫn (chú ý là mình đang tạo userform, chứ không phải tạo trực tiếp trên bảng tính).


Chân thành cảm ơn và trân trọng !
Mình được anh ndu96081631 hướng dẫn giờ gửi lại cho bạn hoc
UI ĐỌC KỸ MỚI BIẾT LẠI CHỆCH Ý CỦA BẠN RÙI " DỮ LIỆU CỦA BẠN KHÔNG THÔNG QUA BẢNG TÍNH"
BẠN VIẾT DÀI DÒNG QUÁ MÀ CHẢNG NHẤN MANH LUÔN Ý LÀM MÌNH TƯỞNG HIHI!"
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Chào mọi người, mình đang muốn tạo một UserForm (như hình vẽ kèm theo).
Ý định của mình là với 6 cái TextBox bên dưới, sau khi mình nhập dữ liệu vào xong, sẽ click vào CommandButton "Add" ở bên cạnh thì cả 6 dữ liệu kia sẽ hiển thị trên cái vùng chứa ở bên trên. Sau đó, nếu muốn nhập 1 lượt dữ liệu khác vào thì lại nhập --> Add --> hiện lên trong vùng này (hàng thứ 2 bên dưới hàng dữ liệu đã add trước). Cứ thế cho khoảng 7 - 10 lần nhập và add như thế.
Mình tính dùng là kiểu điều khiển ListBox cho cái vùng chứa dữ liệu ấy. Nhưng lại không biết viết code cho Add như thế nào !!!?
Mong được mọi người chỉ giáo thêm.

Nếu có cách nào khác thì mong được hướng dẫn (chú ý là mình đang tạo userform, chứ không phải tạo trực tiếp trên bảng tính).

Chân thành cảm ơn và trân trọng !

Bạn nêu vấn đề tương đối rõ, nhưng ít ra bạn cũng phải tải lên 1 File có tiêu đề hẳn hoi để người giúp biết chỗ nào cần sử dụng ComboBox mà làm giúp bạn, nếu không có File thì chẳng ai giúp, vì họ ngại khi giúp xong thì bạn lại phát sinh thêm nhiều vấn đề khác nữa phải sửa tới sửa lui theo ý của bạn thì lại mất thời gian (do không nắm được cơ bản nên có nhiều bạn hỏi rất là dai), vì vậy, mà có 1 số thành viên thấy vấn đề chưa cụ thể thì đã chạy mất dép rồi.

Tôi nêu rõ để các thành viên khác lưu ý:
- Khi hỏi 1 vấn đề cần có 1 File, trong đó mình cần thực hiện ở sheet nào, phải có tiêu đề thật của File mình đang theo dõi và tối thiểu phải có dữ liệu ít nhất là 10 dòng, nếu có những dữ liệu thuộc loại bí mật của cơ quan thì đưa dữ liệu giả định tương ứng vào và nêu cụ thể mình cần làm những gì, thì bài viết mới được trả lời sớm và tránh hỏi nhiều lần làm mất thời gian của các thành viên khác.

- Nếu hỏi mà mà không có File thì không ai rảnh để ngồi tạo tiêu đề và đưa dữ liệu giả định vào rồi mới thực hiên giúp, sẽ mất khá nhiều thời gian và nhất là trả lời không đúng ý thì lại phát sinh thêm nhiều vấn đề khác nữa phải sửa tới sửa lui theo ý của tác giả thì càng mất nhiều thời gian hơn nữa.

- Vì vậy mà trước đây tôi đã thấy có 1 số thành viên trên diễn đàn, dù kiên trì giúp đỡ, nhưng cuối cùng cũng đành phải chạy !!!.
 
Lần chỉnh sửa cuối:
Upvote 0
Mình được anh ndu96081631 hướng dẫn giờ gửi lại cho bạn hoc
UI ĐỌC KỸ MỚI BIẾT LẠI CHỆCH Ý CỦA BẠN RÙI " DỮ LIỆU CỦA BẠN KHÔNG THÔNG QUA BẢNG TÍNH"
BẠN VIẾT DÀI DÒNG QUÁ MÀ CHẢNG NHẤN MANH LUÔN Ý LÀM MÌNH TƯỞNG HIHI!"

Đúng !
Ý mình muốn tạo UserForm như thế này nhưng không cần phải lấy bảng tính làm trung gian. Nhập vào userform rồi xuất trên userform như vậy luôn ấy. Muốn chỉnh sửa thì chỉnh sửa như file bạn đã làm.

Vậy không biết code để làm như thế thì viết ra sao nhỉ!? Mong được mọi người hướng dẫn.
 
Upvote 0
Bạn nêu vấn đề tương đối rõ, nhưng ít ra bạn cũng phải tải lên 1 File có tiêu đề hẳn hoi để người giúp biết chỗ nào cần sử dụng ComboBox mà làm giúp bạn, nếu không có File thì chẳng ai giúp, vì họ ngại khi giúp xong thì bạn lại phát sinh thêm nhiều vấn đề khác nữa phải sửa tới sửa lui theo ý của bạn thì lại mất thời gian (do không nắm được cơ bản nên có nhiều bạn hỏi rất là dai), vì vậy, mà có 1 số thành viên thấy vấn đề chưa cụ thể thì đã chạy mất dép rồi.

Tôi nêu rõ để các thành viên khác lưu ý:
- Khi hỏi 1 vấn đề cần có 1 File, trong đó mình cần thực hiện ở sheet nào, phải có tiêu đề thật của File mình đang theo dõi và tối thiểu phải có dữ liệu ít nhất là 10 dòng, nếu có những dữ liệu thuộc loại bí mật của cơ quan thì đưa dữ liệu giả định tương ứng vào và nêu cụ thể mình cần làm những gì, thì bài viết mới được trả lời sớm và tránh hỏi nhiều lần làm mất thời gian của các thành viên khác.

- Nếu hỏi mà mà không có File thì không ai rảnh để ngồi tạo tiêu đề và đưa dữ liệu giả định vào rồi mới thực hiên giúp, sẽ mất khá nhiều thời gian và nhất là trả lời không đúng ý thì lại phát sinh thêm nhiều vấn đề khác nữa phải sửa tới sửa lui theo ý của tác giả thì càng mất nhiều thời gian hơn nữa.

- Vì vậy mà trước đây tôi đã thấy có 1 số thành viên trên diễn đàn, dù kiên trì giúp đỡ, nhưng cuối cùng cũng đành phải chạy !!!.

Sorry bạn be09, vì mình cũng chưa gởi topic xin hỏi về vấn đề cụ thể thế này bao giờ nên chưa có kinh nghiệm, mong bạn và các thành viên khác thông cảm.

Đã chỉnh sửa !!!!
 
Lần chỉnh sửa cuối:
Upvote 0
Chào mọi người!

Ý mình muốn có userform như trên, sau khi click button "Input Data" (hình minh họa) thì hiện userform1 này và nhập 1 đợt các thông tin vào 6 textbox kia, xong rồi click button "Add" để các dữ liệu này xuất lên vùng chứa dữ liệu bên trên.
Sau đó, mình lại nhập các đợt dữ liệu tiếp theo rồi Add, rồi lại xuất lên trên (ở các hàng tiếp theo hàng dữ liệu đã add trước).
Cứ thế mà mình cần add khoảng 7 - 10 dòng dữ liệu như vậy!
Và nếu cần thiết updates lại dữ liệu đã add thì mình click vào dòng dữ liệu đó -> rồi sửa -> rồi click button "Edit" để update lại thôi.

Vấn đề là mình không biết viết code cho button Add và button Edit như thế nào!!? mong mọi người chỉ giúp.
Đồng thời, với vùng chứa dữ liệu ấy, làm sao mình đưa các tiêu đề (No, Name, ID, ...) vào luôn listbox đó mà không cần phải mắc công dùng tới các label cụ thể vậy. Lúc mình tạo lstDatabase này thì có khai báo thuộc tính ColumnHeads từ mặc định False sang True để hiển thị luôn tên cột, nhưng cách này hình như sai rồi, vì cách này áp dụng với việc listbox lấy dữ liệu từ bảng tính (RowSource)!

Nhắc lại rằng: mình chỉ muốn tạo userform mà việc nhập và xuất dữ liệu đều trên userform này, chứ không thông qua trung gian là bảng tính!

Mong được hướng dẫn cụ thể! Thanks mọi người thật nhiều!

Trân trọng!

Các chú ý:
1. code chỉ là ví dụ. Bạn nên đọc help để biết các thuộc tính, phương thức của ListBox
2. Tôi thay ListBox lstSex bằng 2 OptionButton. Khi cần chọn "một trong nhiều" thì OptionButton là hợp lý
3. Tôi viết code cho Add và Edit. Để rút gọn code thì 2 Button dùng chung 1 Sub AddOrEdit
4. Ở thời điểm bất kỳ nếu dữ liệu nhập đầy đủ và nhấn Add thì dữ liệu sẽ được thêm vào cuối ListBox. Còn nếu nhấn Edit mà trước đó ở thời điểm bất kỳ ta click trên mục nào đó của ListBox thì dữ liệu sẽ được thay vào dòng được chọn.
5. Nếu click vào mục bất kỳ của ListBox thì dữ ;liệu của mục đó được nhập xuống các TextBox và OptionButton. Vì thế để Edit mục nào đó của ListBox mà không phải nhập từ đầu vào các TextBox và OptionButton thì trước tiên ta click vào mục đó --> sửa dữ liệu --> click Edit để thay mục chọn bằng dữ liệu mới. Tất nhiên nếu sau khi click vào ListBox và sửa dữ liệu ta không click Edit mà lại click Add thì dữ liệu sẽ được thêm vào cuối ListBox. Ta dùng cách này để nhập nhanh những dòng chỉ khác nhau chút ít.
6. Bạn tự test kỹ.
 

File đính kèm

Upvote 0
Các chú ý:
1. code chỉ là ví dụ. Bạn nên đọc help để biết các thuộc tính, phương thức của ListBox
2. Tôi thay ListBox lstSex bằng 2 OptionButton. Khi cần chọn "một trong nhiều" thì OptionButton là hợp lý
3. Tôi viết code cho Add và Edit. Để rút gọn code thì 2 Button dùng chung 1 Sub AddOrEdit
4. Ở thời điểm bất kỳ nếu dữ liệu nhập đầy đủ và nhấn Add thì dữ liệu sẽ được thêm vào cuối ListBox. Còn nếu nhấn Edit mà trước đó ở thời điểm bất kỳ ta click trên mục nào đó của ListBox thì dữ liệu sẽ được thay vào dòng được chọn.
5. Nếu click vào mục bất kỳ của ListBox thì dữ ;liệu của mục đó được nhập xuống các TextBox và OptionButton. Vì thế để Edit mục nào đó của ListBox mà không phải nhập từ đầu vào các TextBox và OptionButton thì trước tiên ta click vào mục đó --> sửa dữ liệu --> click Edit để thay mục chọn bằng dữ liệu mới. Tất nhiên nếu sau khi click vào ListBox và sửa dữ liệu ta không click Edit mà lại click Add thì dữ liệu sẽ được thêm vào cuối ListBox. Ta dùng cách này để nhập nhanh những dòng chỉ khác nhau chút ít.
6. Bạn tự test kỹ.

Cảm ơn bạn siwtom nhiều nhé! Thế còn các tên cột như No, Name, ID, .... bên trên ListBox có đưa vào trong listbox luôn được không vậy bạn?
Và nếu có thể thì trong listbox đó, cõ vẽ được các đường kẻ (nét đứt) để mình phân định được các cột - dòng dữ liệu không? Như vậy chắc hẳn sẽ nhìn thấy đẹp hơn.
Mong bạn hỗ trợ giúp mình! Thanks
 
Upvote 0
Cảm ơn bạn siwtom nhiều nhé! Thế còn các tên cột như No, Name, ID, .... bên trên ListBox có đưa vào trong listbox luôn được không vậy bạn?
Và nếu có thể thì trong listbox đó, cõ vẽ được các đường kẻ (nét đứt) để mình phân định được các cột - dòng dữ liệu không? Như vậy chắc hẳn sẽ nhìn thấy đẹp hơn.
Mong bạn hỗ trợ giúp mình! Thanks

Không đưa được vào trong ListBox.

Nếu bạn không có nhu cầu cuộn ngang như hiện thời thì bạn chỉ cần xác định trong cửa sổ Properties thuộc tính ColumnWidths - độ rộng cho từng cột cho thích hợp, và định vị các Label cho chính xác.

Nếu nảy sinh nhu cầu cuộn ngang (tổng độ rộng các cột > độ rộng ListBox) thì bạn đọc thêm chủ đề

http://www.giaiphapexcel.com/forum/...ng-cụ-tạo-ListBox-với-tiêu-đề-và-Scroll-ngang

Làm thế nào thì làm nhưng bạn vẫn phải tự tạo Header, tốt nhất là dùng Label.
 
Upvote 0
Mình được anh ndu96081631 hướng dẫn giờ gửi lại cho bạn hoc
UI ĐỌC KỸ MỚI BIẾT LẠI CHỆCH Ý CỦA BẠN RÙI " DỮ LIỆU CỦA BẠN KHÔNG THÔNG QUA BẢNG TÍNH"
BẠN VIẾT DÀI DÒNG QUÁ MÀ CHẢNG NHẤN MANH LUÔN Ý LÀM MÌNH TƯỞNG HIHI!"
Sau khi tạo được userForm rồi mình muốn qua sheet khác để gọi user lên nhằm lấy mã khách hàng hoặc mã vật tư phải làm thế nào vậy bạn
 
Upvote 0
Upvote 0

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

Back
Top Bottom