Thảo luận về bài viết quy trình tạo dựng userform VBA Excel

Liên hệ QC

VetMini

Ăn cùng góc phố
Tham gia
21/12/12
Bài viết
16,963
Được thích
23,354
Nên thêm:
- Lịch sử: Userform, cũng như VBA vốn xuất phát từ Access cho nên còn nhiều âm hưởng của Access, về ngữ pháp và về tiết tấu.
- Flowchart (cái bạn hình vẽ dùng để minh họa quy trình chuẩn): cũng như SQL, là một trong những sản phẩm của IBM (*1) được tiêu chuẩn hóa. Cho nên nếu chịu khó tìm hiểu về cách lô gic lập trình 3-50 năm trước thì sẽ rất dễ học.

(*1) Các bạn trẻ lớn lên trong chiếc nôi của Microsoft không mấy người biết đến tầm lớn của Big Blue (tên thứ hai của IBM). Nếu biết, sẽ thấy IBM còn rất nhiều phát minh mà ngày nay được coi là tiêu chuẩn.
Điển hình, nhiều người dùng SQL để gọi SQL Server của Microsoft. Thành thử MS nghiễm nhiên chiếm dung cai tên này. Thực sự SQL là ngôn ngữ thuộc về tiêu chuẩn lâu rồi. Cái phiên bản mà MS sử dụng trong SQL Server tên là Transac SQL hay T-SQL, TSQL.
 
Chưa kể bài #1 "vào đề" hụt hẫng "Nên thêm:..."
Và loạt bài đầu bị lạc dòng.
Vì chủ đề này tách từ chủ đề khác ra, bài 1 không dám sửa, những bài sau còn dư âm.
Bài 32 là 1 câu than vãn
Chủ đề căn bản chả mấy ai theo dõi, những thủ thuật nho nhỏ mà hữu ích cả tuần chỉ có vài người xem. Chắc code hoành tráng, form hoành tráng làm sẵn sẽ nhiều người xem hơn.
Là nói về chủ đề mà bên này đang bàn tới.
Đùa chút: Ai cũng hiểu, chỉ 1 người cũng hiểu nhưng có ý kiến
 
Upvote 0
Thời gian đầu mới tập tành VBA, tôi rất thích form, cái gì cũng tạo form. Sau 1 thời gian, tôi nhận thấy những bất tiện của form, và bản chất thì Excel nó chính là 1 form rồi, nếu việc sắp xếp cấu trúc dữ liệu hợp lý. Do đó, tôi đã chuyển hầu hết các tác vụ trực tiếp qua bảng excel luôn, và thao tác tận dụng tối đa sự kiện của cell (change, selection), đồng thời với mỗi dự án VBA, tôi tạo lập Menu Ribbon, thấy nó tiện hơn rất nhiều, Dĩ nhiên, một số tác vụ vẫn cần dùng form thì tôi giữ lại.
 
Upvote 0
Thời gian đầu mới tập tành VBA, tôi rất thích form, cái gì cũng tạo form. Sau 1 thời gian, tôi nhận thấy những bất tiện của form, và bản chất thì Excel nó chính là 1 form rồi, nếu việc sắp xếp cấu trúc dữ liệu hợp lý. Do đó, tôi đã chuyển hầu hết các tác vụ trực tiếp qua bảng excel luôn, và thao tác tận dụng tối đa sự kiện của cell (change, selection), đồng thời với mỗi dự án VBA, tôi tạo lập Menu Ribbon, thấy nó tiện hơn rất nhiều, Dĩ nhiên, một số tác vụ vẫn cần dùng form thì tôi giữ lại.
Tôi cũng rất ít dùng form, thậm chí là không hề dùng để nhập liệu. Chỉ dùng khi cần tính toán nhanh thành phẩm sắt thép hồi làm công ty cơ khí. Tuy nhiên một khi đã dùng thì phải nắm rất vững lý thuyết như tôi đã trình bày, không chỉ bớt lỗi mà còn tối ưu giao diện, đơn giản hóa code.
Còn lập trình trên sheet thì tôi rất hạn chế dùng sự kiện change vì có những hạn chế, thí dụ như báo cáo chạy với 2 điều kiện (dò tìm, lọc) trên 2 cells, thì mới thay đổi 1 điều kiện đã chạy rồi.
 
Upvote 0
View attachment 293443

Khi nhấn nút Delete, Nút delete trở thành Confirm delete và có 2 tùy chọn xóa vĩnh viễn và chỉ đánh dấu xóa.

Rảnh thì bác làm thêm luôn việc đổi Icon cho các nút lệnh luôn cho nó trực quan sinh động.. :) .
Trong Excel thì không biết lưu Icon ở đâu.

DoiTenNutLenh.gif
 
Upvote 0
Rảnh thì bác làm thêm luôn việc đổi Icon cho các nút lệnh luôn cho nó trực quan sinh động.. :) .
Trong Excel thì không biết lưu Icon ở đâu.
Tôi cũng không biết ở đâu :p Access tạo form dễ hơn Excel nhiều
Vả tôi vốn là không thích những màu mè hoa mỹ, chỉ thích chơn chất mà hiệu quả. Vì vậy chủ đề này tôi viết chủ yếu là lý thuyết và các thủ thuật. Chưa có form nào trong các file đính kèm là hoàn chỉnh 100%, mỗi file chỉ nhằm minh họa 1 mục đích.
Thêm:
Mà hình như Excel không có tính năng vừa icon vừa text, chỉ có insert image
 
Lần chỉnh sửa cuối:
Upvote 0
Vả tôi vốn là không thích những màu mè hoa mỹ, chỉ thích chơn chất mà hiệu quả. Vì vậy chủ đề này tôi viết chủ yếu là lý thuyết và các thủ thuật. Chưa có form nào trong các file đính kèm là hoàn chỉnh 100%, mỗi file chỉ nhằm minh họa 1 mục đích.
Đó là quan điểm cá nhân của bác thôi. Bác thiết kế Form là cho người dùng sử dụng thì nên đăt yếu tố tâm lý người dùng vô chứ.
icon cho nút lệnh là cái cơ bản, có gì đâu màu mè, vậy toàn bộ cái ứng dựng Office là màu mè à :D .
Thời buổi cạnh tranh bây giờ chẳng những tốt gỗ mà còn phải tốt luôn nước sơn, đó là quan điểm của tôi đó bác. Gỗ tốt giờ nhiều lắm. :cool:
 
Upvote 0
Tôi cũng rất ít dùng form, thậm chí là không hề dùng để nhập liệu. Chỉ dùng khi cần tính toán nhanh thành phẩm sắt thép hồi làm công ty cơ khí. Tuy nhiên một khi đã dùng thì phải nắm rất vững lý thuyết như tôi đã trình bày, không chỉ bớt lỗi mà còn tối ưu giao diện, đơn giản hóa code.
Còn lập trình trên sheet thì tôi rất hạn chế dùng sự kiện change vì có những hạn chế, thí dụ như báo cáo chạy với 2 điều kiện (dò tìm, lọc) trên 2 cells, thì mới thay đổi 1 điều kiện đã chạy rồi.
Vâng, nên linh hoạt giải pháp cho mỗi dự án VBA!
 
Upvote 0
Đó là quan điểm cá nhân của bác thôi. Bác thiết kế Form là cho người dùng sử dụng thì nên đăt yếu tố tâm lý người dùng vô chứ.
icon cho nút lệnh là cái cơ bản, có gì đâu màu mè, vậy toàn bộ cái ứng dựng Office là màu mè à :D .
Thời buổi cạnh tranh bây giờ chẳng những tốt gỗ mà còn phải tốt luôn nước sơn, đó là quan điểm của tôi đó bác. Gỗ tốt giờ nhiều lắm. :cool:
Thì đồng ý câu 1 và 2, nhưng ai thích thì tự nghiên cứu. Tôi không quan tâm nên không hứng thú. À mma2 tôi có nói thêm ở trên: Excel hình như không có tính năng vừa icon vừa text.
Còn câu 3 phải xem lại. Form đưa lên GPE hoành tráng, trang trí đẹp, mà lỗi tè le, dùng sai sự kiện, code kiết rối rắm thấy ớn. Hoặc dùng code hàn lâm kiểu API windows zoom ziếc các kiểu.
 
Upvote 0
Đúng là về Form em học và làm ở Access nhiều hơn. Đơn giản là với những người ngoại đạo và học mót như em thì Access hỗ trợ rất nhiều. Các thuộc tính của Control có thể chọn/chỉnh luôn.
Ví dụ 1 nút Next trong Access em dùng luôn cái chọn sẵn của nó. Với Excel em phải tự code cho các nút này, tuy đơn giản nhưng mà không có căn bản nên nhiều lúc cũng khó, đôi khi phải copy/paste cho nhiều nút.
Đọc bài của chú Ptm0412 mới rõ được những cái chi tiết nhất. Nhưng thú thực mà nói, các công việc liên quan của em, rất ít khi dùng đến Form nên cũng không có trau dồi nhiều về nội dung này. Khi nào cần thì lại tìm và đọc rồi mò mẫm thôi.
 
Upvote 0
Đúng là về Form em học và làm ở Access nhiều hơn. Đơn giản là với những người ngoại đạo và học mót như em thì Access hỗ trợ rất nhiều. Các thuộc tính của Control có thể chọn/chỉnh luôn.
Ví dụ 1 nút Next trong Access em dùng luôn cái chọn sẵn của nó. Với Excel em phải tự code cho các nút này, tuy đơn giản nhưng mà không có căn bản nên nhiều lúc cũng khó, đôi khi phải copy/paste cho nhiều nút.
Đọc bài của chú Ptm0412 mới rõ được những cái chi tiết nhất. Nhưng thú thực mà nói, các công việc liên quan của em, rất ít khi dùng đến Form nên cũng không có trau dồi nhiều về nội dung này. Khi nào cần thì lại tìm và đọc rồi mò mẫm thôi.
Mình cũng thế. Đánh dấu để nghiền ngẫm khi có nhu cầu. Một lần nữa cảm ơn bài viết tâm huyết của bác Mỹ.
 
Upvote 0
Ngày xửa ngày xưa, có 1 bài đâu đó tranh luận về việc nhập liệu trên form hay trên bảng tính excel tiện lợi hơn.
Và 1 ngày đẹp trời, sau khi nhập dữ liệu trên bảng tính với 80 cột, thì em thấy nó mệt mỏi quá. Việc kéo qua kéo lại rất khó chịu.
Vậy trường hợp này em nghĩ dùng form sẽ tiện hơn, sẽ gom tất cả các ô nhập liệu vào trong 1 trang form để dễ nhìn.

Vấn đề là nếu muốn nhập vậy thì có phải mình cần tạo 80 textbox để nhập hay có cách nào ngắn gọn hơn các bác ơi?
 
Upvote 0
Dữ liệu 80 cột là dữ liệu thiết kế dở. Cho nên việc cần làm là thay đổi cấu trúc bảng và có thể phải thay đổi cấu trúc cả bộ dữ liệu. Bạn mở chủ đề mới và tôi xem xét.
 
Upvote 0
. . . . .
. . . . . Việc kéo qua kéo lại rất khó chịu.
Vậy trường hợp này em nghĩ dùng form sẽ tiện hơn, sẽ gom tất cả các ô nhập liệu vào trong 1 trang form để dễ nhìn.

Vấn đề là nếu muốn nhập vậy thì có phải mình (1) cần tạo 80 textbox để nhập hay (2) có cách nào ngắn gọn hơn các bác ơi?
(1) Chắc chắn là không cần nhiều đến vậy; Sẽ có 1 số cột (trường) nên xài ComboBox nhập tiện hơn
(2) Chắc sẽ có nhiều cách để khâu nhập liệu của bạn nhanh & tiện hơn; Còn khái niệm 'ngắn gọn hơn' mình chưa hiểu lắm
 
Upvote 0
Đó là quan điểm cá nhân của bác thôi. Bác thiết kế Form là cho người dùng sử dụng thì nên đăt yếu tố tâm lý người dùng vô chứ.
icon cho nút lệnh là cái cơ bản, có gì đâu màu mè, vậy toàn bộ cái ứng dựng Office là màu mè à :D .
Thời buổi cạnh tranh bây giờ chẳng những tốt gỗ mà còn phải tốt luôn nước sơn, đó là quan điểm của tôi đó bác. Gỗ tốt giờ nhiều lắm. :cool:

Công nhận là form đệp đẹp tí điền thông tin cũng đỡ cực. Cố gắng chân thực và nổi bật thì người dùng đỡ nhập sai, nhập thiếu. Nói chung trải nghiệm người dùng là ko thể bỏ qua nếu muốn xây dựng form bây giờ
 
Upvote 0
Công nhận là form đệp đẹp tí điền thông tin cũng đỡ cực. Cố gắng chân thực và nổi bật thì người dùng đỡ nhập sai, nhập thiếu. Nói chung trải nghiệm người dùng là ko thể bỏ qua nếu muốn xây dựng form bây giờ
Bây giờ UI, UX là không thể tách rời. Google nó còn nghiên cứu chi tiết cách người dùng nhìn lên Form như thế nào, điểm tập trung ở đâu, hành vi thao tác, màu sắc nào để giảm mỏi mắt ( phải tính tới người bị mù màu) v.v.. Giờ thiết kế một cái ứng dụng mà Form chằng chịt chữ, màu sắc đơn điệu, không có điểm nhấn thì người nhập liệu dễ mệt mỏi thì làm sao bán so với đối thủ cung cấp cùng tính năng nhưng thân thiện người dùng hơn chứ không phải thân thiện người lập trình. Giao diện bắt mắt, chuyên nghiệp sẽ tăng cơ hội dùng thủ sản phẩm hơn.

Ví dụ: (bài viết của tôi ở một diễn đàn khác)
Screen Shot 2023-08-27 at 19.41.51.png

Screen Shot 2023-08-27 at 19.44.35.png
 
Lần chỉnh sửa cuối:
Upvote 0
Bây giờ UI, UX là không thể tách rời. Google nó còn nghiên cứu chi tiết cách người dùng nhìn lên Form như thế nào, điểm tập trung ở đâu, hành vi thao tác, màu sắc nào để giảm mỏi mắt ( phải tính tới người bị mù màu) v.v.. Giờ thiết kế một cái ứng dụng mà Form chằng chịt chữ, màu sắc đơn điệu, không có điểm nhấn thì người nhập liệu dễ mệt mỏi thì làm sao bán so với đối thủ cung cấp cùng tính năng nhưng thân thiện người dùng hơn chứ không phải thân thiện người lập trình. Giao diện bắt mắt, chuyên nghiệp sẽ tăng cơ hội dùng thủ sản phẩm hơn.
Tôi vốn không định tạo ứng dụng để kinh doanh, hoặc hướng dẫn tạo form cho người đang muốn kinh doanh. Chỉ hướng dẫn quy trình và 1 số lý thuyết căn bản cho người mới chập chững.
Tôi không phản đối ý kiến của bạn từ bài 49 cho tới giờ, chỉ là tôi chú trọng đến việc hướng dẫn người tạo form từ thiết kế cho đến khi vẽ thành hình, đến khi viết code, công việc được nhẹ nhàng, code gọn gàng dễ chỉnh sửa.
Còn trang trí thì ngay từ bài 1 của chủ đề đó tôi cũng không cương quyết hủy bỏ, mà chỉ đưa nó vào giai đoạn cuối của quy trình, và cũng chỉ khuyến cáo là nên trang trí nhẹ nhàng thôi.
 
Upvote 0
Tôi không phản đối ý kiến của bạn từ bài 49 cho tới giờ, chỉ là tôi chú trọng đến việc hướng dẫn người tạo form từ thiết kế cho đến khi vẽ thành hình, đến khi viết code, công việc được nhẹ nhàng, code gọn gàng dễ chỉnh sửa.
:D có ai nói gì về phản bác ý kiến gì của nhau đâu bác. Vì cái đề tài liên quan đến Userform thì cùng vô đóng góp thêm ý kiến liên quan đến một phần của nó là cái giao diện Form thôi. Vấn đề thẩm mỹ nó cũng khó nói, tuỳ quan điểm của mỗi người nữa. Giống như lúc trước có bạn nhờ tôi thiết kế cái ứng dụng quản lý Đảng viên, tất nhiên màu chủ đạo của bác này là Đỏ + Vàng. Thế là bác cứ bắt phần lớn cái nền phải có màu đỏ, mình góp ý màu này sẽ gây cực kỳ mỏi mắt cho người nhập liệu và nền đỏ chữ vàng là không đảm bảo nguyên tắc độ tương phản, mà bác ta đâu có nghe, đành phải theo nhưng cũng cố kiếm cái màu đỏ dịu nhẹ chút... :D :D
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom