{Giúp đỡ} Tạo userform để nhập liệu

Liên hệ QC

romkut3

Thành viên hoạt động
Tham gia
9/4/13
Bài viết
109
Được thích
3
dạ tình hình nhờ anh chị giúp đỡ em thử cái form này mục đích là để mail merge sang word thôi, em cố gắng nhưng vẫn mắc 1 số lỗi như sau:
1. Vấn đề của em là: khj mình nhập cái j vào thì nó sẻ hiện cột tên công trình vào listbox1, khj mình kích vào 1 công trình nào đó thì nó sẻ hiện các dữ liệu đã nhập trong các tab userform tương ứng.
2. Em muốn form nó lưu lại những gì đã nhập ở lần cuối cùng.
3. Vì có nhiều phụ lục nên mỗi 1 tab em sẻ làm 1kiểu khác nhau cho đỡ nhầm ạ. Do còn rất nhiều dữ liệu điền và em đang thiết kế từ từ lại ạ.
4. Các dữ liệu của em nhập vào dạng text, có mutiline, và có dạng số, cái này em cũng đọc trên diễn đàn.
5. 3 nút comand: xóa để nhập mới: xóa trắng các ô để nhập mới 1 công trình. Nút sửa là để khj mình pick zô công trình nào sai thì mình sẻ sửa lại và tự động lưu lại chứ k thêm mới. Nút nhập vào là để khj xóa xong thì mình sẻ nhập vào 1 dòng mới.
6. Cái này màn hình em full hết, k bị mất các nút comand... mọi người down về mà k full có thể chỉnh lại hộ em đc k?
7. Và cuối cùng là thú thật là em k biết j về lập trình cả, chỉ kiếm các mẫu form đã lập trình sẵn... tự thiết đặt lại và dán code lại theo ý của mình vào thôi ạ... em chỉ hiểu sơ sơ. Có j trong code a note khj chú lại công thức lệnh để làm j em sẻ tự hiểu và tự mày mò thêm.
Em cũng xjn lỗi do dữ liệu nó chưa rõ ràng nên ae k hiểu đc ý của em. Cám ơn anh đã quan tâm ạ.
* Dữ liệu mang tính chất minh họa và đa số là dạng text, nếu dạng số trong code các bạn có thể chỉ mình định dạng nó đc k?
*** Mình mới up lại file, các bạn, ace xem lại dùm ạ
 

File đính kèm

  • mail - Copy.xlsm
    50.5 KB · Đọc: 16
Lần chỉnh sửa cuối:
Sau khi góp í file vẫn vậy; đành tạm biệt bạn thôi!
 
Upvote 0
Rằng form không nên to đùng, chiếm cả màn hình làm vậy;
Chưa cần thiết vẻ hết các Control lên như vậy; chỉ 4 hay 5 Control đặt trưng thôi (kiểu Text, kiểu số ( có chứa thập fân càng tốt), kiểu ComboBox để lựa chọn,. . . .
Các nút lệnh thì nên có đủ, có Code càng tốt,. . . .
 
Upvote 0
Rằng form không nên to đùng, chiếm cả màn hình làm vậy;
Chưa cần thiết vẻ hết các Control lên như vậy; chỉ 4 hay 5 Control đặt trưng thôi (kiểu Text, kiểu số ( có chứa thập fân càng tốt), kiểu ComboBox để lựa chọn,. . . .
Các nút lệnh thì nên có đủ, có Code càng tốt,. . . .
À... sory bạn mình tưởng trong topic kia bạn đang nói chuyện vs người khác,,,, mục đích chính của mình là nhập các cpntrol vào các cột tương ứng ơ sheet 1,,,, các nút lệnh thì mình chỉ cần thế thôi, do mình mới tập tò góp nhặt nên mình chưa hiểu cách bạn trao đổi lắm... bạn có thể xem qua dùm mình đ ck?



còn csai form to tràn ra ngoài bạn test hộ thử màn hình mình nó thể hiện bình thường mà,,,
 
Lần chỉnh sửa cuối:
Upvote 0
À... SORY BẠN MÌNH TƯỞNG TRONG TOPIC KIA BẠN ĐANG NÓI CHUYỆN VS NGƯỜI KHÁC,,,, MỤC ĐÍCH CHÍNH CỦA MÌNH LÀ NHẬP CÁC CPNTROL VÀO CÁC CỘT TƯƠNG ỨNG Ơ SHEET 1,,,, CÁC NÚT LỆNH THÌ MÌNH CHỈ CẦN THẾ THÔI, DO MÌNH MỚI TẬP TÒ GÓP NHẶT NÊN MÌNH CHƯA HIỂU CÁCH BẠN TRAO ĐỔI LẮM... BẠN CÓ THỂ XEM QUA DÙM MÌNH Đ CK?
CÒN CSAI FORM TO TRÀN RA NGOÀI BẠN TEST HỘ THỬ MÀN HÌNH MÌNH NÓ THỂ HIỆN BÌNH THƯỜNG MÀ,,,
Bạn vi phạm nội quy tại khoản 3, mục II. Hình thức của bài viết (không được viết Hoa), xem nội quy ở Link sau:
http://www.giaiphapexcel.com/diendan/threads/nội-quy-diễn-đàn-cập-nhật.76052/
 
Upvote 0
Xin góp với bạn vài í từ nhỏ tới lớn:
(*) Không nên đè ra tô màu cả 1 dòng 5 như vậy; Chỉ những ô nào có dữ liệu mà thôi; Nhưng cần tô màu khác với những trường quan trọng;
Như nó là chỉ mục, không có nó dòng dữ liệu không tồn tại,. . . .
Nhìn vô trang dữ liệu của bạn chưa rõ cột nào sẽ quyết định sự tồn tại của dòng dữ liệu tồn vong (?!)
Bạn nhập dữ liệu giả lập chưa chưa chuẩn; VD cột 'Quyết đinh' nên là 325/UBH, . . . để người khác có nhã í giúp bạn còn hiểu là độ dài của ô này hay Control cho ô cỡ nào, rộng bao nhiêu là tối ưu,. . . .

Dữ liệu giả lập của bạn chưa rõ đưa vô cột nào để xác định dòng cuối; Có xác định dòng cuối chứa dữ liệu mới mong xác định dữ liệu vừa nhập của bạn.

(*) Bạn nên khai báo 1 biến dùng chung trong form, như
Dim ID As Long
Sau đó trong macro ListBox1_Click bạn thử thêm 2 dòng lệnh thành vầy
PHP:
Private Sub ListBox1_Click()
      txtTCT = ListBox1.Column(0)
      txtPA = ListBox1.Column(1)    
      ID = 1 + Me!ListBox1.ListIndex   'Thêm  Dòng 1  '
        MsgBox ID                            'Dòng Thêm 2   '
End Sub
& sau đó bấm chuột lên ListBox cho vui nha!
. . . .
 
Upvote 0
Xin góp với bạn vài í từ nhỏ tới lớn:
(*) Không nên đè ra tô màu cả 1 dòng 5 như vậy; Chỉ những ô nào có dữ liệu mà thôi; Nhưng cần tô màu khác với những trường quan trọng;
Như nó là chỉ mục, không có nó dòng dữ liệu không tồn tại,. . . .
Nhìn vô trang dữ liệu của bạn chưa rõ cột nào sẽ quyết định sự tồn tại của dòng dữ liệu tồn vong (?!)
Bạn nhập dữ liệu giả lập chưa chưa chuẩn; VD cột 'Quyết đinh' nên là 325/UBH, . . . để người khác có nhã í giúp bạn còn hiểu là độ dài của ô này hay Control cho ô cỡ nào, rộng bao nhiêu là tối ưu,. . . .

Dữ liệu giả lập của bạn chưa rõ đưa vô cột nào để xác định dòng cuối; Có xác định dòng cuối chứa dữ liệu mới mong xác định dữ liệu vừa nhập của bạn.

(*) Bạn nên khai báo 1 biến dùng chung trong form, như
Dim ID As Long
Sau đó trong macro ListBox1_Click bạn thử thêm 2 dòng lệnh thành vầy
PHP:
Private Sub ListBox1_Click()
      txtTCT = ListBox1.Column(0)
      txtPA = ListBox1.Column(1)   
      ID = 1 + Me!ListBox1.ListIndex   'Thêm  Dòng 1  '
        MsgBox ID                            'Dòng Thêm 2   '
End Sub
& sau đó bấm chuột lên ListBox cho vui nha!
. . . .
ok thansk bạn góp ý, vì đây là form mình mới dựng, còn dữ liệu sẻ còn rất là nhiều.... mình đưa lên 1 số cột làm ví dụ thôi... 02 ý mình nêu trên mình nghĩ là dữ liệu đã đủ.....
toàn bộ dòng 5 mình bôi đen vì sau khj làm đc 02 ý hỏi trên thì dòng 5 sẻ là dòng quyết định>>> vì bản thân cột này mình dùng để mailmerger sang word...
toàn bộ dữ liệu của mình sẻ là dạng text để chuyển sang sang word...
có 1 điều là mình chưa hiểu, ở tab tìmcontrinh khj ta click zô 1 tencongtrình... thì sang tab chung.. nó sẻ hiện ra đc các dòng...mà sang tab pl06 nó k hiện ra nhỉ...
 
Upvote 0
ok thansk bạn góp ý, vì đây là form mình mới dựng, còn dữ liệu sẻ còn rất là nhiều.... mình đưa lên 1 số cột làm ví dụ thôi... 02 ý mình nêu trên mình nghĩ là dữ liệu đã đủ.....
toàn bộ dòng 5 mình bôi đen vì sau khj làm đc 02 ý hỏi trên thì dòng 5 sẻ là dòng quyết định>>> vì bản thân cột này mình dùng để mailmerger sang word...
toàn bộ dữ liệu của mình sẻ là dạng text để chuyển sang sang word...
có 1 điều là mình chưa hiểu, ở tab tìmcontrinh khj ta click zô 1 tencongtrình... thì sang tab chung.. nó sẻ hiện ra đc các dòng...mà sang tab pl06 nó k hiện ra nhỉ...
Bạn làm phòng Kế Hoạch, Sở TNMT tỉnh Kon Tum à.

Góp ý cho bạn:
1/ Muốn làm cái gì đó thì nêu rõ vấn đề cần.
2/ Sheet Data nên thiết kế lại để chọn huyện nào thì ra số xã của huyện đó.
3/ Sheet1 nên có tiêu đề đầy đủ tôi mới hiểu được bạn theo dõi thế nào là đáp ứng được thực tế, nếu nêu rõ vấn đề tôi nghĩ chả cần đến 94 cột như bạn làm đâu (tôi nghi ngờ là có một số cột lặp lại nội dung có thể là theo dõi nhiều đợt kiểm tra).
4/ Chỉ cần làm 1 Form là có thể đáp ứng yêu cầu, chứ không làm đến 4 MultiPage làm gì?
5/ Thiết kế 1 cái biên bản hay cái gì đó trên 1 sheet mà chả cần dùng đến mailmerger.
 
Upvote 0
Bạn làm phòng Kế Hoạch, Sở TNMT tỉnh Kon Tum à.

Góp ý cho bạn:
1/ Muốn làm cái gì đó thì nêu rõ vấn đề cần.
2/ Sheet Data nên thiết kế lại để chọn huyện nào thì ra số xã của huyện đó.
3/ Sheet1 nên có tiêu đề đầy đủ tôi mới hiểu được bạn theo dõi thế nào là đáp ứng được thực tế, nếu nêu rõ vấn đề tôi nghĩ chả cần đến 94 cột như bạn làm đâu (tôi nghi ngờ là có một số cột lặp lại nội dung có thể là theo dõi nhiều đợt kiểm tra).
4/ Chỉ cần làm 1 Form là có thể đáp ứng yêu cầu, chứ không làm đến 4 MultiPage làm gì?
5/ Thiết kế 1 cái biên bản hay cái gì đó trên 1 sheet mà chả cần dùng đến mailmerger.
Dạ k anh. em làm đơn vị tư vấn thôi. Chả là rỗi ngồi lập 1 form nhập zô để mail sang word làm hồ sơ nghiệm thu thôi ạ.
1. Vấn đề của em là: khj mình nhập cái j vào thì nó sẻ hiện cột tên công trình vào listbox1, khj mình kích vào 1 công trình nào đó thì nó sẻ hiện các dữ liệu đã nhập trong các tab userform tương ứng.
2. Em muốn form nó lưu lại những gì đã nhập ở lần cuối cùng.
3. Vì có nhiều phụ lục nên mỗi 1 tab em sẻ làm 1kiểu khác nhau cho đỡ nhầm ạ. DO còn rất nhiều dữ liệu điền và em đang thiết kế từ từ lại ạ.
4. Các dữ liệu của em nhập vào dạng text, có mutiline, và có dạng số, cái này em cũng đọc trên diễn đàn và đã làm được.
5. 3 nút comand: xóa để nhập mới: xóa trắng các ô để nhập mới 1 công trình. Nút sửa là để khj mình pick zô công trình nào sai thì mình sẻ sửa lại và tự động lưu lại chứ k thêm mới. Nút nhập vào là để khj xóa xong thì mình sẻ nhập vào 1 dòng mới.
Và cuối cùng là thú thật là em k biết j về lập trình cả, chỉ kiếm các mẫu form đã lập trình sẵn,,, tự thiết đặt lại và dán code lại theo ý của mình vào thôi ạ... em chỉ hiểu sơ sơ. Có j trong code a note khj chú lại công thức lệnh để làm j em sẻ tự hiểu và tự mày mò thêm. Em cũng xjn lỗi do dữ liệu nó chưa rõ ràng nên ae k hiểu đc ý của em. Cám ơn anh đã quan tâm ạ.
 
Upvote 0
Theo mình bạn cần chú trọng thiết kế lại trang CSDL;
Sao lại có thể là "Phòng Tài nguyên MT. . . " trong trường/cột có nội dung iêu cầu về [Thời gian thi công]
Bạn không thể nhập bừa fứa các kí tự trong nội dung các trường; Như vậy sao biết được hay án chừng được độ dài tối đa của 1 trường nào đó để thiết kế trang tính hay độ rọng Control nào đó trên Form?
Bạn giả lập nhưng xác đúng thực tế thì đỡ tốn thời gian của bạn & những thành viên có nhã í giúp bạn.

[Không cói kiểu dữ liệu nhập vào tự do 1 cách quá trớn như vậy!]

Như mình nhấn nút mở Form thì chả thể thấy 3 nút lệnh fía dưới hiện lên trên màn hình.
Sao bạn có thể nói là nó hiện trên màn hình của bạn là bạn hết trách nhiệm ư? Còn có hiện trên màn hình người khác hay không bạn không cần quan tâm?

. . . . . .

Tạm biệt!
 
Upvote 0
Theo mình bạn cần chú trọng thiết kế lại trang CSDL;
Sao lại có thể là "Phòng Tài nguyên MT. . . " trong trường/cột có nội dung iêu cầu về [Thời gian thi công]
Bạn không thể nhập bừa fứa các kí tự trong nội dung các trường; Như vậy sao biết được hay án chừng được độ dài tối đa của 1 trường nào đó để thiết kế trang tính hay độ rọng Control nào đó trên Form?
Bạn giả lập nhưng xác đúng thực tế thì đỡ tốn thời gian của bạn & những thành viên có nhã í giúp bạn.

[Không cói kiểu dữ liệu nhập vào tự do 1 cách quá trớn như vậy!]

Như mình nhấn nút mở Form thì chả thể thấy 3 nút lệnh fía dưới hiện lên trên màn hình.
Sao bạn có thể nói là nó hiện trên màn hình của bạn là bạn hết trách nhiệm ư? Còn có hiện trên màn hình người khác hay không bạn không cần quan tâm?

. . . . . .

Tạm biệt!
cám ơn bạn đã ghé qua, ở #13 mình cũng đã trình bày rõ ràng. MÌnh k k biết j nhiều ở lập trình, mình cóp nhặt ở những mẫu form khác rồi mới chế biến lại qua form của mình... Nếu mình biết đc tại sao 3 nút kia thể hiện ở mình mà k thể hiện máy người khác mình đã sửa lỗi này.... máy mình thật sự là nó hiển thị hết mà ... còn thể loại mà nhập tùm lum là do mình chưa biết cách bố trí sắp xếp lại ở trong vba nên nó nhảy loạn xạ... chứ mình k cố ý làm khó ai cả...
 
Upvote 0
Bạn nên chịu khó tạo lại trang tính 'CSDL' của bạn để mang đầy đủ nghĩa lả trang tính giả lập; (Có nghĩa là [Địa điểm] không thể là 'áda' hay 'đấ'; Mà nên là địa chỉ nào đó 'Đồng Mơ' hay 'Đồng Tâm',. . . . )

Ông bà có câu: "Đầu xuôi đuôi lọt" đó bạn.
 
Upvote 0
Bạn nên chịu khó tạo lại trang tính 'CSDL' của bạn để mang đầy đủ nghĩa lả trang tính giả lập; (Có nghĩa là [Địa điểm] không thể là 'áda' hay 'đấ'; Mà nên là địa chỉ nào đó 'Đồng Mơ' hay 'Đồng Tâm',. . . . )

Ông bà có câu: "Đầu xuôi đuôi lọt" đó bạn.
mình mới up lại file rồi... cám ơn bạn nhé
 
Upvote 0

File đính kèm

  • Form.rar
    37.4 KB · Đọc: 29
Lần chỉnh sửa cuối:
Upvote 0
mình mới up lại file rồi... cám ơn bạn nhé
Bài 12, tôi nêu tại mục 5/ Thiết kế 1 cái biên bản hay cái gì đó trên 1 sheet mà chả cần dùng đến mailmerger.
1/ Là ý tôi muốn nêu mục đích của bạn cần làm cái gì? (Chứ dùng UserForm để nhập liệu thì tôi biết rồi).

2/ Khi nhìn cái UserForm thì chỉ mới hiểu là bạn cần nhập liệu, còn cái mục đích tiếp theo khi nhập liệu xong thì bạn làm cái gì tiếp theo với dữ liệu này. Ví dụ: Lấy dữ liệu vào biên bản kiểm tra, nghiệm thu hay cần làm cái gì thì nên nêu rõ mục đích. Có biết được mục đích thì mới đề ra phương án làm, kể cả cái UserForm cũng phải thiết kế lại cho phù hợp.

Tôi làm ngành TNMT mà qua một số bài viết bạn diễn giải ở trên tôi còn không hiểu nổi, thì lấy đâu các thành viên khác hiểu được để mà giúp.

Góp ý cho bạn:
Tốt nhất là bạn nêu cụ thể cái cần, cái Form chỉ là để nhập liệu theo dõi, chứ tôi biết cái chính bạn cần là chỗ này (dùng Mail Merge) tự động lấy dữ liệu đã nhập vào các biên bản kiểm tra, nghiệm thu, cái này chả cần dùng Mail Merge gì cả (Excel chơi tuốc luốc). Quan trọng là hiểu được vấn đề hay không?
 
Upvote 0
Bài 12, tôi nêu tại mục 5/ Thiết kế 1 cái biên bản hay cái gì đó trên 1 sheet mà chả cần dùng đến mailmerger.
1/ Là ý tôi muốn nêu mục đích của bạn cần làm cái gì? (Chứ dùng UserForm để nhập liệu thì tôi biết rồi).

2/ Khi nhìn cái UserForm thì chỉ mới hiểu là bạn cần nhập liệu, còn cái mục đích tiếp theo khi nhập liệu xong thì bạn làm cái gì tiếp theo với dữ liệu này. Ví dụ: Lấy dữ liệu vào biên bản kiểm tra, nghiệm thu hay cần làm cái gì thì nên nêu rõ mục đích. Có biết được mục đích thì mới đề ra phương án làm, kể cả cái UserForm cũng phải thiết kế lại cho phù hợp.

Tôi làm ngành TNMT mà qua một số bài viết bạn diễn giải ở trên tôi còn không hiểu nổi, thì lấy đâu các thành viên khác hiểu được để mà giúp.

Góp ý cho bạn:
Tốt nhất là bạn nêu cụ thể cái cần, cái Form chỉ là để nhập liệu theo dõi, chứ tôi biết cái chính bạn cần là chỗ này (dùng Mail Merge) tự động lấy dữ liệu đã nhập vào các biên bản kiểm tra, nghiệm thu, cái này chả cần dùng Mail Merge gì cả (Excel chơi tuốc luốc). Quan trọng là hiểu được vấn đề hay không?
oh thì ra a cũng là người trong ngành, dạ mục đích chính khj nhập form này xong thì em sẻ xuất ra riêng 1 file exel gồm dòng 5 (là tiêu để) dưới là dữ liệu của 1 công trình, xong chuyển sang word để làm hồ sơ ktnt theo tt49 ấy anh, em nghĩ là nên chuyển sang word để chuyển cho chủ đầu tư quản lý nên mới làm cái này.
Trong hsktnt nó có nhiều bảng chẳng hạn như ở sheet mau05, em sẻ thiết kế riêng ra 1 bảng rồi hyperlink vào trong word... và còn nhiều mẫu khác nữa ( phụ lục 06,07,08.... theo tt49) nên em mới dùng nhiều tab trong userform.
Còn vụ mà làm hẳn trên exel chắc em k làm đc... vì k đủ trình với lại mục đích của em chỉ đơn giản như trên thôi ạh... CÒn vụ desing lại user form thì để xong 2 khoảng kia đã.. em bố trí cái tab tìm công trình và chung là vì cái tab chung nó sẻ có ở tất cả các phục lục... còn những dữ liệu khác sẻ nằm từng tab tươn ứng vs 1 phụ lục anh ạ
 
Upvote 0
Web KT
Back
Top Bottom