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,991
Được thích
23,398
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.
 
Anh nghĩ bao nhiêu người trên GPE này biết quy chuẩn này? Tôi còn không biết. Vậy khi tôi vẽ quy trình muốn càng nhiều người hiểu càng tốt thì làm sao đây?
Những ai không biết lưu đồ thì không thể hiểu được nội dung lưu đồ truyền tải, chỉ có những người đã biết qua mới đọc được và thường đọc theo chuẩn chung
Hiện nay đa số sinh viên chuyên ngành kế toán đều học lưu đồ khá bài bản
 
Upvote 0
Những ai không biết lưu đồ thì không thể hiểu được nội dung lưu đồ truyền tải, chỉ có những người đã biết qua mới đọc được và thường đọc theo chuẩn chung
Hiện nay đa số sinh viên chuyên ngành kế toán đều học lưu đồ khá bài bản
Tôi nghĩ nếu không được học bài bản, thì nhìn chiều mũi tên, đọc chữ tiếng Việt sẽ hiểu được 9 phần. Cũng chẳng cần biết hình thoi hình chữ nhật gì. Chỉ cần thấy nó xuất ra 2 hướng, 1 hướng A đi tiếp và 1 hướng B quay về đâu đó.
 
Upvote 0
Tôi nghĩ nếu không được học bài bản, thì nhìn chiều mũi tên, đọc chữ tiếng Việt sẽ hiểu được 9 phần. Cũng chẳng cần biết hình thoi hình chữ nhật gì. Chỉ cần thấy nó xuất ra 2 hướng, 1 hướng A đi tiếp và 1 hướng B quay về đâu đó.
Dùng đúng chuẩn vẫn tốt hơn, học sinh phổ thông nhiều nước vẽ lưu đồ ào ào /-*+/
 
Upvote 0
Hình thoi mang ý nghĩa là câu hỏi rẽ nhánh, nội dung là câu hỏi đúng/ sai. Tiếng Việt thì tùy ngữ cảnh mà trả lời đạt/ không đạt, hết/ chưa hết, có/ không có, ...
Không có biểu tượng câu trả lời
Lúc IBM ra cái khung này, họ chỉ bắt đầu giản dị là lệnh rẽ nhánh. Vì hầu hết các rẽ nhánh A/B đều có thể thu lại thành I/O, 1/0, hay Y/N, cho nên trong giản đồ quy trình người ta chú trọng vào Y/N.
Trong lập trình, chương trình có thể dùng A/B, giống như IF/ELSE.

Một số nơi đặt thêm luật phụ là A/B thí dùng hai cái góc đối nhau (góc ngang) trong khi Y/N thì dùng một góc ngang (N) và góc xuống (Y). Nên nhớ là luật này chỉ đặt thêm cho dễ nhìn thôi chứ không nằm trong tiêu chuẩn.
 
Upvote 0
Excel mạnh phần Cel, nên quan điểm của em cái nào đưa được vào Ribbon thì đưa vào thay vì Form, như vậy cũng hợp lý, thẩm mỹ và nhẹ nhàng hơn cho File.
 
Upvote 0
Dùng đúng chuẩn vẫn tốt hơn, học sinh phổ thông nhiều nước vẽ lưu đồ ào ào /-*+/
Chắc không phải học sinh Việt Nam :p :p
Ở trên anh viết "đa số sinh viên chuyên ngành kế toán đều học lưu đồ khá bài bản" thì:
- Tôi cũng học đại học kinh tế ngành kế toán ra, lúc đó không có môn này. Có thể bây giờ đã có
- Sinh viên kế toán chiếm bao nhiêu % trong số người dùng Excel muốn vẽ user form?
Đó là anh đang giả định số "học có bài bản" là số đông.

Ngược lại, tôi không biết quy chuẩn, tôi giả định người không biết như tôi là số đông. Vậy thì tôi diễn giải bằng tiếng Việt theo từng ngữ cảnh của nội dung cái hình thoi. Vì mục đích của tôi mở chủ đề này là hướng dẫn người dùng căn bản tạo dựng form, và tôi muốn càng nhiều người đọc hiểu càng tốt, chứ không chỉ dành cho người "có bài bản"

Cuối cùng thì, nếu anh có góp ý về quy trình như: Sao lại bắt đầu bằng bước này mà không phải bước này, tại sao bước 2 này lại nằm sau bước 1 mà không phải bước 3, thiếu bước này ở vị trí n này, ... thì tôi xin cám ơn nhiều hơn là đòi một vài từ quy chuẩn.
 
Upvote 0
Chắc không phải học sinh Việt Nam :p :p
Ở trên anh viết "đa số sinh viên chuyên ngành kế toán đều học lưu đồ khá bài bản" thì:
- Tôi cũng học đại học kinh tế ngành kế toán ra, lúc đó không có môn này. Có thể bây giờ đã có
- Sinh viên kế toán chiếm bao nhiêu % trong số người dùng Excel muốn vẽ user form?
Đó là anh đang giả định số "học có bài bản" là số đông.

Ngược lại, tôi không biết quy chuẩn, tôi giả định người không biết như tôi là số đông. Vậy thì tôi diễn giải bằng tiếng Việt theo từng ngữ cảnh của nội dung cái hình thoi. Vì mục đích của tôi mở chủ đề này là hướng dẫn người dùng căn bản tạo dựng form, và tôi muốn càng nhiều người đọc hiểu càng tốt, chứ không chỉ dành cho người "có bài bản"

Cuối cùng thì, nếu anh có góp ý về quy trình như: Sao lại bắt đầu bằng bước này mà không phải bước này, tại sao bước 2 này lại nằm sau bước 1 mà không phải bước 3, thiếu bước này ở vị trí n này, ... thì tôi xin cám ơn nhiều hơn là đòi một vài từ quy chuẩn.
Cuối thập niên 70 bọn mình được ưu ái học 30 tiết lập trình trên máy tính IBM, chỉ biết vài lệnh, chủ yếu là các giải thuật đơn giản biểu diễn bằng lưu đồ, và mình vẽ lưu đồ khá tùy hứng, nhưng khi dùng lưu đồ trong các tài liệu công bố cho nhiều người mình phải tìm đọc nhiều để vẽ theo chuẩn phổ biến
Mỗi người xây dựng quy trình thường khác nhau, theo mình khi lập trình sẽ phát sinh nhiều vấn đề và thường phải quay lại thêm bớt các thành phần. Mình chưa rỏ từ "Controls" chỉ các thành phần nào của Use Form
Chỉ là ý kiến cá nhân, nếu bạn không thích thì cho qua /-*+/ /-*+/ /-*+/
 
Upvote 0
Quá trình tiếp thu Excel của mình là vầy:
Qua công việc thấy cần sử dụng Excel nói riêng hay office nói chung;
Nhưng lúc đó mình chỉ được 'Trung tân' truyền đạt 'Quatro', mình cho là na ná Excel sau này;
Khi bắt đầu sử dụng Excel thì mình nhập dữ liệu chủ yếu nhờ SheetForm;
Khi mới làm quen với Form thì mình cứ đinh ninh rằng Form chẳng qua là sự phát triển của SheetForm mà thôi
& cứ thế quen dần với các loại Control
Trường nào cần Control nào thì mình nghiên cứu về Control đó
Đó là cách tiếp cận từ thực tế;
Còn cái chuyện lưu đồ hay sơ đồ khối để giải quyết công việc lại là chuyện khác; Nó bắt đầu bỡi Pascal (Đó là do sự hiểu chủ quan của mình à nha)
Vậy nên với mình, Form là 1 chuyện, lưu đồ là 1 chuyện & có chúng thì bổ sung cho nhau để nâng kiến thức bản thân mà thôi.
. . . .
 
Upvote 0
Mỗi người xây dựng quy trình thường khác nhau, theo mình khi lập trình sẽ phát sinh nhiều vấn đề và thường phải quay lại thêm bớt các thành phần.
Bước vào lập trình thì lúc đó hình thoi thường là những lệnh rẽ nhánh như If, và chắc chắn sẽ là true/ False. Sơ đồ ở bài 1 mới là sơ đồ quy trình tổng thể, chưa phải là sơ đồ lập trình. Lập trình chỉ là 1 bước trong sơ đồ này thôi.
Nó mới tương tự như lưu đồ workflow.
Thí dụ như tôi ứng dụng flow chart này vẽ quy trình sản xuất, quy trình luân chuyển chứng từ, quy trình đấu thầu, quy trình đào tạo, tuyển dụng, ... khi tư vấn cho những công ty, tập đoàn muốn sử dụng ERP (lúc còn làm việc)
Mình chưa rỏ từ "Controls" chỉ các thành phần nào của Use Form
Controls là tất cả những gì vẽ lên trên form. Chọn control trên control toolbox
1677718450109.png
Vậy nên với mình, Form là 1 chuyện, lưu đồ là 1 chuyện & có chúng thì bổ sung cho nhau để nâng kiến thức bản thân mà thôi.
Tất cả mọi việc muốn làm cho bài bản thì phải có kế hoạch, và kế hoạch đó vẽ ra thành lưu đồ. Dù rằng rất có thể phát minh ra lưu đồ là Pascal hay IBM trong việc lập trình, ngày nay người ta vẽ lưu đồ cho đủ thứ việc.
Do vậy sơ đồ tôi vẽ trong chủ đề này là để giúp cho người học định hướng cần phải làm những gì và làm cái gì trước, cái gì sau mà thôi. Biết thêm lưu đồ là để tập thói quen làm việc có kế hoạch, chứ không chỉ bổ sung kiến thức (biết để đó ư?)
 
Lần chỉnh sửa cuối:
Upvote 0
. . . . . . . . . . Biết thêm lưu đồ là để tập thói quen làm việc có kế hoạch, chứ không chỉ bổ sung kiến thức (biết để đó ư?)
Mấy nhóc lớp 1 hay 2 ở hẽm nhà mình đều tham gia Phong trào tập xe đạp 2 bánh;
→ Tất nhiên việc tập tành này không nhằm mục đích sang cấp II sẽ dùng xe đạp làm phương tiện đến trường (như ở vùng quê)
→ Mấy đứa trẻ tập xe & cả những đứa không tập xe sẽ hình thành câu hỏi: Sao đi xe đạp lại nhanh hơn đi bộ.
Nếu có đứa nào đó tìm cách trả lời cho câu hỏi đó sẽ là hồng phúc cho ba mẹ của nó lắm thay!
→ Cũng như biết bơi, biết đi xe đạp thì đến già cũng không quên kiến thức đi xe đạp này bao giờ.
Theo nguyên lí Tương tự thì có kiến thức đi xe độp, sẽ học đi xe máy nhanh hơn, . . .
Gọn lại là biết thêm 1 chút không bao giờ là thừa, dù chả mấy khi thấy vận dụng vào việc gì. & hiếm khi ta coi lại mình sao lại có thể nẩy sinh ý tưởng này kia có thể bắt nguồn từ những kiến thức 'cất kho' mà ta đang có.

. . . . . . . . :D
 
Upvote 0
Mấy nhóc lớp 1 hay 2 ở hẽm nhà mình đều tham gia Phong trào tập xe đạp 2 bánh;
Anh so sánh khập khiễng. Bài 1 và cả chủ đề này, tôi vừa hướng dẫn tạo dựng form, vừa vẽ sơ đồ quy trình yêu cầu làm theo. Vậy là cùng lúc biết 2 thứ và vừa thấu hiểu làm gì cũng phải có kế hoạch chu đáo.
Với lại anh bàn lan man quá. Anh có góp ý gì không?
- Nội dung và trình tự theo quy trình có thiếu sót gì không?
- Anh có kinh nghiệm gì hay ho muốn chia sẻ về các loại control(s)? Khi nào thì chọn control nào?
- Mỗi control có những properties nào, methods nào?
- Các sự kiện nào thường dùng, sự kiện nào đáng lưu ý?
- ....
Nếu không có thì tôi sẽ tiếp tục phô bày cái dốt của tôi tiếp, không lan man nữa.
 
Upvote 0
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.
 
Upvote 0
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.
Không phải đâu anh ạ, Em vẫn chờ bài mới của anh ra để đọc. Có bài hướng dẫn của anh giúp anh tăng thêm được kiến thức một cách dễ dàng hơn. Bình thường em tạo một cái gì đó trên form em lại phải google rồi xem, xong lại mở làm thử xem nó như thế nào hình dáng ra làm sao, muốn như thế này thì phải làm như thế nào rồi lại google tiếp. Có bài hướng dẫn của anh mọi chuyện đơn giản hơn hẳn.
 
Upvote 0
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. . . . .
Theo mình nghĩ thì giờ có 'mạng' đủ loại, chuyện đó cho phép họ 'đi tắt, đón đầu'
Họ tìm lấy những cái Form có sẵn & đầy trên mạng, bỏ vài cái này, thêm vài cái kia để phù hợp cho công chuyện của họ
Nếu bí thì lên những diễn đàn như GPE xin đáp ứng.
Còn chuyện 'cơ bản' thì khi vướng họ mới may ra đi tìm hiểu thêm ở đâu đó
 
Upvote 0
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.
Chuyện này bình thường thôi bác à. Qui mô thị trường GPE cho sản phẩm này ít thì bán ế thôi... :D . Có nhiều sản phẩm cũng Form, cũng code hoành tráng, dùng ngôn ngữ lập trình thứ dữ, build exe, đờ lờ lờ nhưng bán vẫn ế đó thôi. Do nhu cầu người dùng ở đây không có hoặc có quá ít hoặc chưa có cho nó.
Phần lớn khách hàng GPE chủ yếu xử lý trực tiếp trên bảng tính, người dùng Userform để xây dựng ứng dụng thì không nhiều vì vậy sự quan tâm đến các kỹ thuật thiết kế Userform không cao là tất nhiên. Khi nào họ đụng tới thì sẽ kiếm bài của bác mà đọc.
 
Upvote 0
Theo mình nghĩ thì giờ có 'mạng' đủ loại, chuyện đó cho phép họ 'đi tắt, đón đầu'
Họ tìm lấy những cái Form có sẵn & đầy trên mạng, bỏ vài cái này, thêm vài cái kia để phù hợp cho công chuyện của họ
Một số thủ thuật nếu biết và ứng dụng vào bất cứ đâu, form nào, kể cả lập trình; đều giúp tối ưu công việc thiết kế, tạo lập, tối ưu code. Những form "có đầy trên mạng" chắc chắn không phù hợp với mình, sẽ phải thêm bớt. Bản thân nó khi tải về có khi đã rối rắm, thêm mắm muối vào lại càng bầy hầy. Không gì bằng tự thiết kế, tự làm, đúng chức năng, đúng nhu cầu của chính mình.
Phần lớn khách hàng GPE chủ yếu xử lý trực tiếp trên bảng tính, người dùng Userform để xây dựng ứng dụng thì không nhiều
Tôi lại thấy nhiều những form đã làm trên GPE là form lỗi thiết kế, lỗi code, dùng sai sự kiện, dùng sai control, thậm chí lỗi mà không biết vì đâu. Còn những người mới bắt đầu làm form thì lại yếu lý thuyết và yếu căn bản. Vì thấy thế nên tôi viết loạt bài này, chứ tôi cũng chưa khi nào dùng trong công việc.
Dù vậy, bạn cũng đúng khi xu hướng GPE giờ là code, là API windows, là công thức khủng, ... chứ không đi vào cái mới như Power query, Power BI, ...
 
Upvote 0
. . . . . .. Không gì bằng tự thiết kế, tự làm, đúng chức năng, đúng nhu cầu của chính mình.
Không 1 ai có thể tự thiết kế, tự làm ra những chức năng theo iêu cầu,. . . mà phãi trãi qua sự học;
Học có (rất) nhiều cách học;
→ Học trên mạng cũng là 1 cách;
→ Học bằng cách đọc & thực hành bài viết của bạn cũng là 1 cách;
→ Học qua sự hỏi (như trên GPE.COM) cũng là 1 sự học
→ . . . (& cũng còn rất ư nhiều cách nữa mà mình chưa biết hết)

/(hông có cách học nào thật là chuẩn, mà chỉ có học theo đường hướng sẵn đề ra & đạt kết quả theo ý đề ra là chuẩn
→ Người có tiền thì học theo 1 kiểu, & khác với người có ít tiền;
→ Người có triệu phú về thời gian thì đề ra cho mình cách học khác hơn người bị bức bách về thời gian
→ Người có IQ cao ngất thì sẽ lại học 1 cách khác; Người hơi đần thì phải năng nhặt chặc bị mà thôi.
→ . . . .
 
Upvote 0
Học có (rất) nhiều cách học;
(1)→ Học trên mạng cũng là 1 cách;
(2)→ Học bằng cách đọc & thực hành bài viết của bạn cũng là 1 cách;
(3)→ Học qua sự hỏi (như trên GPE.COM) cũng là 1 sự học
(1) Theo tôi nhận thấy thì trên mạng dạy rất hời hợt, kiểu mì ăn liền. Dạy theo kiểu 15 ngày thành chuyên giá Excel, xem một số clip nào đó trên youtube cũng sẽ thành chuyên gia, thì làm sao vững lý thuyết, làm sao cặn kẽ được những chi tiết nhỏ thuộc về căn bản (thí dụ khi nào dùng key press, khi nào dùng key down, key up; nên dùng option button hay dùng combobox, khi nào dùng sự kiện exit, khi nào dùng sự kiện before update?

(3) Học bằng cách hỏi GPE để được trả lời đúng, giải thích cặn kẽ chính xác là hơi hiếm. Họ gặp vướng mắc, bị lỗi, họ hỏi đúng chỗ lỗi, nhưng người trả lời có khi cho đoạn code sửa lỗi mà không giải thích gì, hoặc tệ hơn chỉ cho 1 cái link bắt xem, mà có khi link chẳng ăn nhập gì.
Vả lại bị lỗi mới giật mình đi hỏi, chứ lỗi tiềm ẩn chưa thấy, code rườm rà, giải thuật phức tạp thì cứ thế chạy, chẳng ai chỉ đâu.

(2) Những bài viết của tôi đi sâu hơn vào những chuyện trên, thí dụ trực quan hơn, khái quát hơn. Đồng thời nhờ kinh nghiệm, tôi hướng dẫn những thủ thuật đơn giản mà hiệu quả hơn.
 
Upvote 0
Thớt này là rắn cụt đầu nên bị vậy cũng dễ hiểu mà. :)
 
Upvote 0
Web KT
Back
Top Bottom