Bài thực hành VBA đầu tay - Simple Inventory

  • Thread starter adam_tran
  • Ngày gửi
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,374
36
48
46
Goooogle
Đây là file Excel NXT tớ sử dụng VBA, chủ yếu là mày mò để học VBA. Có một số vấn đề sau:
- File còn rất nhiều lỗi tạm thời chưa khắc phục và chưa dùng được, chỉ mong các bác chỉ giáo.
- File sử dụng 1 additinal control có tên là Microsoft Date and Time Picker Control Ver 6.0, source của nó là file MSCOMCT2.OCX. File này khá lớn tớ không Upload lên. Có thể Excel của bạn sẽ không có control này.
- File sử dụng phương pháp bình quân gia quyền tại thời điểm phát sinh.
- Một số sheet được protect nhưng không có password.
 
Sửa lần cuối:
Khóa học Quản trị dòng tiền
S

StonyHeartedMan

Guest
2/10/04
306
2
0
Hà nội
www.vnuni.net
Good work! Chúc mừng SP đầu tay của adam nhé :)
Chú ý:
+ Tất cả các hàm, thủ tục, events,... nên có Error handle để tránh xảy ra lỗi - người dùng lại nhảy vào Debug hay End ứng dụng
+ Nhớ lại bài học: Vét cạn các trường hợp có thể xảy ra lỗi - Kiểm tra điều kiện trước khi thực hiện 1 lệnh (Ví dụ: trước khi Enabled cái Toolbar Button nào đó thì phải check xem nó có đủ điều kiện ko nhé - Anh bị lỗi đúng chỗ event Deactivation (ko rõ ở đâu vì thoát rồi) - ở cái dòng khong_nho_toolbar_button_nao.Enabled = True)
Đó là lý do tại sao viết code "đẹp" nó lại quan trọng đến vậy :)
 
S

SA_DQ

Thành viên Cố vấn - Webketoan Mentors
29/6/05
568
99
28
66
HCM city
Tiếc quá &ì không thể đọc được, không biết tại sao?

Không biết tại sao mở ra lại toàn chữ Ả rập; không rõ nguyên nhân; đáng tiếc!
Có ai biết cách khắc fục, xin chỉ giáo?!
 
H

heroic

Guest
11/11/04
56
0
0
vn
Chương trình viết tuyệt thật, bạn chắc phải học nhiều rồi mới viết được như vậy chứ. Mình đang cần một file như vậy nhưng tính theo phương pháp FIFO thì tốt. Mình cũng đang học hỏi VBA bao giờ bạn có bản Final thì chia sẻ cho mọi người học hỏi góp ý nhé. Chúc bạn mau chóng hoàn thành tác phẩm đầu tay của mình.
 
H

handung107

Cao cấp
28/8/04
576
15
0
VN
www.giaiphapexcel.com
SA_DQ nói:
Không biết tại sao mở ra lại toàn chữ Ả rập; không rõ nguyên nhân; đáng tiếc!
Có ai biết cách khắc fục, xin chỉ giáo?!
Bạn phải có chương trình Winrar để giải nén, và không như Winzip, nếu bạn Double Click vào File nó sẽ ra chữ "Ả rập" liền, bạn phải mở Winrar, tìm đến File và giải nén, File của Adam tran thú vị lắm đấy, bạn hãy xem đi...
 
W

workman

Guest
22/7/05
372
2
0
51
Ho Chi Minh
Tôi không bình luận về giao diện vì nó quá đẹp rồi.

Tôi mới có thời gian chạy thử thấy mấy cái function đầu thấy rất OK. Tuy nhiên, như bác SHM đã nói, hầu như code của bạn không có bẫy lỗi. Bạn hãy dùng thử cái thằng Code VB như SHM đã giới thiệu, nó tự add bẫy lỗi cho mình, như vậy chạy chắc ăn hơn, đỡ lo user chửi.

Nói chung thuật toán như vậy là rất hay rồi. Tôi chẳng dám nói gì nhiều. Chỉ góp ý 1 chút thôi. Bạn thử gán giá trị bằng cách dùng lệnh formula=... xem sao, ví dụ activecell.formula=sheets("ABC").Cells(j,i), như thế đỡ phải chạy từ sheet này sang sheet kia. Nếu không, cái chương trình của bạn sẽ chạy tít mù từ sheet này copy 1 ô, xong lại chạy sang sheet kia paste value. Cái này tôi góp ý chân thành thôi, vì sau này khi làm các chương trình dài hơi hơn bạn sẽ thấy ý nghĩa ưu việt của việc gán giá trị trực tiếp thay vì copy/paste.

Tôi đoán bạn dùng record macro để lấy lệnh paste special. Thực ra bạn không cần mấy cái lệnh lòng thòng như thế đâu. Selection.PasteSpecial Paste:=xlValues là đủ rồi.
 
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,374
36
48
46
Goooogle
workman nói:
Tôi đoán bạn dùng record macro để lấy lệnh paste special. Thực ra bạn không cần mấy cái lệnh lòng thòng như thế đâu. Selection.PasteSpecial Paste:=xlValues là đủ rồi.
Ha ha, đúng là có kinh nghiệm... suy ra từ mình! Cứ mỗi lệnh nào bí là record lại để lấy, hoặc mở mấy cái source download từ WKT ra xem... có cái nào xài được không. Tiếc là mấy cái source hầu như bị lock cả, chẳng biết làm sao để unlock được. :atom:
 
F

ForestC

Guest
11/1/05
377
1
0
44
E'rywhere
Ta cùng 1 mẹ* mà ra
Giống nhau thao tác cũng là đương nhiên.
(Note: * ý nói đến EFC nhà ta đấy mà)

Ai mà chẳng làm như thế, nhiều chỗ bí không làm được thì thử xem máy nó làm thế nào ta làm lại như thế (đấy là đối với những việc dễ thôi). Và xem các source code đã có sẵn, và nữa sau hết những cái đó mà vẫn không làm được thì thói quen của tớ là Send messages hoặc fonecall 2 Mr. anh Tuân để hỏi. Lần nào cũng được việc. Thế mới thích.
 
S

SieuMa

Guest
15/12/04
13
0
0
HCM
bug

Mình bị lỗi :"Could not load some objects because they are not avaible on this machine"
Mình down file Mscomct2.ocx rồi copy vào thư mục MS Office rồi, nhưng vẫn bị, vậy mình phải làm sao bây giơ?? :wall:
 
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,374
36
48
46
Goooogle
SieuMa nói:
Mình bị lỗi :"Could not load some objects because they are not avaible on this machine"
Mình down file Mscomct2.ocx rồi copy vào thư mục MS Office rồi, nhưng vẫn bị, vậy mình phải làm sao bây giơ?? :wall:
Bạn copy file trên vào thư mục C:\Windows\System nếu là WinMe, 9x, \System32 nếu là Win2K-XP.
Sau đó, bạn phải khai báo vào Registry của Windows bằng cách:
Từ dòng lệnh Run của Windows, bạn gõ vào:
- Nếu là 9X, Me, gõ RegSvr Mscomct2.ocx
- Nếu là 2K, XP, gõ RegSvr32 Mscomct2.ocx

Chúc thành công!
 
H

hoxulee

Guest
25/6/05
16
0
0
47
Vietnam
adam_tran nói:
Ha ha, đúng là có kinh nghiệm... suy ra từ mình! Cứ mỗi lệnh nào bí là record lại để lấy, hoặc mở mấy cái source download từ WKT ra xem... có cái nào xài được không. Tiếc là mấy cái source hầu như bị lock cả, chẳng biết làm sao để unlock được. :atom:

đây, giới thiệu bác Advanced Office 2000 Password Recovery ở www.elcomsoft.com, (hay ra tiệm mua, có ***** sẵn) unlock bất kỳ VBA source code (trừ rất ít trường hợp đặc biệt) chưa đầy 1s, tôi dùng thằng này để xử mấy cái download được từ www.erlandsendata.no, www.add-ins.com, www.asap-utilities.com, www.j-walk.com,... nhiều quá xem không nổi, giờ để đầy ở máy, xóa thì thương, vương thì tội, hì,
giờ tôi quan tâm thằng AutoCAD VBA nhiều hơn
 

Xem nhiều

Webketoan Zalo OA