Tự tạo File sưu tầm bài hay của GPE (1 người xem)

  • Thread starter Thread starter sealand
  • Ngày gửi Ngày gửi
Liên hệ QC

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

sealand

Thành viên gạo cội
Tham gia
16/5/08
Bài viết
4,883
Được thích
7,688
Giới tính
Nam
Nghề nghiệp
Kế Toán
Thường mình gặp những bài hay trên diễn đàn là mình chép về để đâu đó khi cần tìm không ra, trong khi không phải lúc nào cũng nên mạng được. Trong khi tham gia thảo luận bài với các bạn có liên quan vấn đề này, mình chợt nảy ra ý định tại sao không tao cho mình mình 1 file sưu tầm nhỉ.
Vậy la suốt tối đến giờ sản phẩm sơ bộ hoàn thành mình load lên các bạn tham khảo nhé. Trong file còn nhiều lỗi và hạn chế. Thậm chí cả hàm Filter cực phù hợp cho nó mình cũng chưa đưa vào. Hướng dẫn mình ghi cụ thể trong file rồi.
Đối với những bài dài thanh cuộn chưa hiện ra, bạn đặt con trỏ vào rồi dùng phím mũi tên lượt xuống dưới là thanh cuộn hiện ra.
 

File đính kèm

Lần chỉnh sửa cuối:
Cái này mình thấy rất hay. Có thể tạo giống như một cuốn từ điển và mỗi người có thể tự thêm vào sau đó gửi lên box. Ý tưởng này rất hay một lần nữa xin cảm ơn Sealand và mong mọi người tiếp tục phát triển.
 
Upvote 0
File rất hay... nếu xây dựng hoàn chỉnh thì rất công phu đấy
Em chỉ có 1 ý kiến thế này:
- Trong file của anh có chỉ đường link đến trang web
- Mà như ta đã biết sau 1 thời gian nào đó, khi các Admin dọn dẹp thì rất có khả năng đường link sẽ bị thay đổi
- Vậy thay vì link thẳng đến trang, sao anh không link qua Google ---> Giống như ta gõ từ khóa tìm kiếm trên diển đàn ấy
Lấy ví dụ từ khóa Thuộc tính Resize
Anh dùng đường link http://www.giaiphapexcel.com/forum/showthread.php?p=92413
Theo em thì nên là:
http://www.google.com.vn/custom?dom...+tính+Resize&sitesearch=www.giaiphapexcel.com
Như vậy cho dù diển đàn có thay đổi đường link ta vẫn tìm ra
 
Upvote 0
Cái này có thể là ý tưởng của anh Sealand và trong khi làm rất vội vì vậy mỗi thành viên chúng ta có thể góp ý, chỉnh sửa cho hoàn chỉnh thêm và gửi lên cho mọi người tham khảo.
 
Upvote 0
Em nghĩ chúng ta nên tổng hợp tài liệu trên diễn đàn thành 1 LibraryVBA để tra cứu và có Source để có thể tự bổ sung thêm sau này nữa thì hay hơn.
Sử dụng CSDL là Excel hay Access thì tuỳ nhưng nên tạo 1 dao diện trên VBA hoặc VB6.
Có thể dùng cả hai link (GPE và Google) luôn càng tốt.
Thân.
 
Upvote 0
Em nghĩ chúng ta nên tổng hợp tài liệu trên diễn đàn thành 1 LibraryVBA để tra cứu và có Source để có thể tự bổ sung thêm sau này nữa thì hay hơn.
Sử dụng CSDL là Excel hay Access thì tuỳ nhưng nên tạo 1 dao diện trên VBA hoặc VB6.
Có thể dùng cả hai link (GPE và Google) luôn càng tốt.
Thân.
Dự án này to quá (nhưng rất bổ ích)
Tôi nghĩ phải có bàn tay của BQT tham gia thì mới xong!
 
Upvote 0
Trước hết, xin cảm ơn tác giả. Ý tưởng này rất hay, giá như trên Form, tại Label2 (đường Link), nếu xử lý để Click vào là truy cập tới bài viết đó trên GPE được thì hay hơn.
 
Upvote 0
Thật vui và cám ơn các bạn đã góp ý tham gia. Như mình đã nói, chỉ là file có tính tiện ích sưu tầm thôi chứ dự án lớn phải có các chuyên gia dày dạn kinh nghiệm mới thành được. Nay mình bổ xung 1 chút và nháy đúp địa chỉ mở site. Các ý kiến của các bạn rất có ích cho mình cũng như các bạn tạo file có liên quan vấn đề này.
Để thay đổi không khí mình sưu tầm thơ xem sao? Cac bạn thử xem lưu văn bản mới sưu tầm trên mạng cũng có thể chứ?
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Thật vui và cám ơn các bạn đã góp ý tham gia. Như mình đã nói, chỉ là file có tính tiện ích sưu tầm thôi chứ dự án lớn phải có các chuyên gia dày dạn kinh nghiệm mới thành được. Nay mình bổ xung 1 chút và nháy đúp địa chỉ mở site. Các ý kiến của các bạn rất có ích cho mình cũng như các bạn tạo file có liên quan vấn đề này.
Để thay đổi không khí mình sưu tầm thơ xem sao?

Em thật sự ngưỡng mộ Bác có ý tưởng thật độc đáo. Tuy nhiên, em thấy rằng, trong cái Textbox được hiển thị sau khi chọn, Bác thay bằng Listbox thì hay hơn, bởi có những đoạn code rất dài.
Cái file Bác vừa gửi lên nó bị báo lỗi (can't find project or library) khi em click vào Mở Tài Liệu, em chưa kiểm tra kỹ lỗi này.

Rồi, em kiểm tra rồi, lỗi này là do máy em: MISSING....
 
Lần chỉnh sửa cuối:
Upvote 0
Ý tưởng của Thầy sealand rất hay. Xin hoan nghênh

File rất hay... nếu xây dựng hoàn chỉnh thì rất công phu đấy
Em chỉ có 1 ý kiến thế này:
- Trong file của anh có chỉ đường link đến trang web
- Mà như ta đã biết sau 1 thời gian nào đó, khi các Admin dọn dẹp thì rất có khả năng đường link sẽ bị thay đổi
- Vậy thay vì link thẳng đến trang, sao anh không link qua Google ---> Giống như ta gõ từ khóa tìm kiếm trên diển đàn ấy
Lấy ví dụ từ khóa Thuộc tính Resize
Anh dùng đường link http://www.giaiphapexcel.com/forum/showthread.php?p=92413
Theo em thì nên là:
http://www.google.com.vn/custom?dom...+tính+Resize&sitesearch=www.giaiphapexcel.com
Như vậy cho dù diển đàn có thay đổi đường link ta vẫn tìm ra

Search hoặc làm link trên Google chưa hẳn đâu Thầy ơi. Lý do đơn giản, trên diễn đàn GPE đã dọn rồi thì cũng không còn link đó.
 
Upvote 0
Danh sách tiêu đề là Listbox đấy chứ? Còn Textbox chỉ cần nhập vài ký tự gợi ý lọc thôi

Ý của Thầy là nó gợi ý, sau này nếu có phát triển thì click vào nó thì đường dẫn sẽ chuyển qua trang Web phải vậy không ạ?
 
Upvote 0
Ấy chết! Anh Trí mà gọi em vậy em ngượng với anh em lắm.
Nói chung em chỉ mới nêu nên vậy chứ Textbox chưa định dạng được. Chưa tìm ra phương thức tối ưu để lưu hình và file đính kèm.
Vấn đề đường link chỉ khả dĩ khi nó còn tồn tại chứ xoá rồi thì sao mà tìm được. Ngay bài trên diễn đàn đôi khi link load hình bị die nên mất không tham khảo được cũng tiếc lắm, biết làm sao được.
Cám ơn anh đã lưu tâm.

To Minhthien: Không phải, gợi ý là mình nhớ tiêu đề có chữ "vui". Ta nhập "vui" sẽ hiện tiêu đề tất cả những bài có tiêu đề chứa chữ này.
Còn Link thì mình nạp vào 1 Label. Khi kích đúp nó sẽ lấy chuỗi Caption làm địa chỉ trang Website cần mở. File sưu tầm Thơ đã mở được đến trang lưu rồi.
 
Lần chỉnh sửa cuối:
Upvote 0
Phải nói là file "sưu tầm bài đọc" của Sealand là rất hay, nhưng tạo thành 1 dự án thì không phù hợp lắm (ý kiến cá nhân thôi nha).
Lý do:
Mỗi người có những nhu cầu riêng, chỉ muốn sưu tầm những cái mình cần. Có người thích những công thức độc đáo, có người muốn sưu tầm những đoạn code hay, có người cần ứng dụng pivot table, data table, người thích đồ thị ...

Nếu gom tất cả vào thành 1 bộ sưu tập khổng lồ, vừa tốn công vừa thừa. Tốt nhất là mã nguồn SeaLand đang để mở, ai cần gì cứ tự làm lấy cho riêng mình 1 cái, thì đẹp.
 
Upvote 0
Đề tài này hay quá, cám ơn anh Sealand (Mr Việt) đã có ý tưởng hay này.
Em xin "thêm mắm, dặm muối" vào file của anh 1 cái form cập nhật và sửa dữ liệu mà không cần vào bảng tính sửa.
 

File đính kèm

Upvote 0
Ý tưởng của Thầy sealand rất hay. Xin hoan nghênh



Search hoặc làm link trên Google chưa hẳn đâu Thầy ơi. Lý do đơn giản, trên diễn đàn GPE đã dọn rồi thì cũng không còn link đó.
Không phải đâu anh à!
Dù diển đàn có dọn dẹp hay thay đổi đường link thì khi tìm bằng Google vẫn ra
Nó tương đương với cái này này:

attachment.php



Chỉ trừ phi bài viết đó bị xóa luôn thì mới không tìm ra ---> Nhưng em nghĩ điều này không thể xảy ra, vì đã gọi là TÌM NHỮNG BÀI CHỌN LỌC mà ---> Mấy bài viết hay tại sao lại bị xóa?
 

File đính kèm

  • untitled.JPG
    untitled.JPG
    29.6 KB · Đọc: 280
Upvote 0
Khổ nỗi cho cái thân già của em Thầy ndu96081631 ui. Em dốt tin học nên diễn đạt không đến nơi đến chốn.
Thật sự, em search trên google.com đã lâm vào tình trạng đó. Có thấy bài nhưng link vào thì không tồn tại Thầy ạ. Cái này em cũng bó tay, trong khi google thì lưu bản cũ mà diễn đàn GPE mình dẫn, hoặc chỉnh sửa, move hoặc xóa mới chết nè.
Nhỡ diễn đạt không đạt, xin được thứ lỗi cho
Nhớ thương Thầy

P/S: Em thì dốt, em chọn và chép bài về và tạo 1 mục lục trên excel. Xong dùng bởi (insert link or object) - Không nhất thiết lúc nào, em cũng phải online.
 
Lần chỉnh sửa cuối:
Upvote 0
To domfootwear

Bạn hoàn thiện File như vậy thì có thể vào trực tiếp Form được rồi, chả cần vào các sheet làm gì nữa. Nhưng khi cập nhật xong mình không thấy lưu ở đâu cả.
 
Upvote 0
Cho phép em cheng ngang topic của Quý Thầy 1 tí. Nhờ quý Thầy quan tâm hỗ trợ bài viết: Giải pháp nào tìm bài viết của mình nhanh nhất tại đây.

Chân thành cám ơn
 
Upvote 0
To domfootwear

Bạn hoàn thiện File như vậy thì có thể vào trực tiếp Form được rồi, chả cần vào các sheet làm gì nữa. Nhưng khi cập nhật xong mình không thấy lưu ở đâu cả.

Nó sửa và ghi trực tiếp vào cell luôn anh à.
Qua sử dụng em thấy tên Tác Giả cần phải lấy danh sách trong list vì có những tên không nhớ rõ... :-=

Em làm lại file nhé.
 

File đính kèm

Upvote 0
Mình dựa trên phần bổ xung của domfootwear hoàn thiện chức năng Update, thuận tiện cho việc thêm sửa xoá dữ liệu.
Hiện mình đang mắc là làm sao đặt biểu tượng của Form lên thanh TastBar (Khi application đang ẩn). Như vậy mới thuận tiện cho việc chuyển đổi giữa các cửa sổ khi sao chép, sưu tầm.
Mình load bài và mong các bạn góp ý hoàn thiện thêm nhé.
Thank!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mình dựa trên phần bổ xung của domfootwear hoàn thiện chức năng Update, thuận tiện cho việc thêm sửa xoá dữ liệu.
Hiện mình đang mắc là làm sao đặt biểu tượng của Form lên thanh TastBar (Khi application đang ẩn). Như vậy mới thuận tiện cho việc chuyển đổi giữa các cửa sổ khi sao chép, sưu tầm.
Mình load bài và mong các bạn góp ý hoàn thiện thêm nhé.
Thank!
Em thấy hình như khi update dữ liệu có lúc nó không load đúng đề tài anh à.
 
Upvote 0
Em thấy ý tưởng khá hay ở chỗ là mọi người có thể update dữ liệu riêng mình cần! chúc ý tưởng của sealand thành công nhé!
 
Upvote 0
Em thấy hình như khi update dữ liệu có lúc nó không load đúng đề tài anh à.

Đúng rồi, vì Form dùng lệnh Hide nên khi Show lại thì các lệnh trong Initialize không có tác dụng. Các bạn thêm sub sau sẽ khắc phục được

PHP:
Private Sub UserForm_Activate()
Me.txtRow = Line
UpdateData
Label3.Caption = txtPage
End Sub

Cám ơn nhé.
 
Upvote 0
Hiện mình đang mắc là làm sao đặt biểu tượng của Form lên thanh TastBar (Khi application đang ẩn). Như vậy mới thuận tiện cho việc chuyển đổi giữa các cửa sổ khi sao chép, sưu tầm.
Em đã cho biểu tượng vào form rồi, anh đóng hết tất cả các file Excel lại rồi hãy mở file này lên nhé. Em có thêm vào nút Min để khi không cần ta xụp nó xuống.
 

File đính kèm

Upvote 0
Bài viết hay lắm, phần tác giả bác có thể cho nó auto sort theo vần 1->9 và alphabet không
Có thể cho Zoom to zoom nhỏ tùy thích cái size form được không bác
Có thể hiển thị 2 form cùng 1 lúc được không, hoặc hướng dẫn mình để hiển thị 2 form như vậy. (frmupdate vs. UserForm1)
 
Lần chỉnh sửa cuối:
Upvote 0
Bài viết hay lắm, phần tác giả bác có thể cho nó auto sort theo vần 1->9 và alphabet không
Có thể cho Zoom to zoom nhỏ tùy thích cái size form được không bác
Nói chung, mình cố gắng giản tiện cho phù hợp chứ thực tế giải pháp này đều có thể được:
1/Sort ta dùng Adin sort tiếng Việt của Bác Pham Duy Long hay 1 số người khác trên GPE sort sheet DT rồi nạp lại là được thôi.

2/Zoom: Khá phức tạp vì ta phải viết 1 sub chỉnh lại tỷ lệ các đối tượng theo độ Zoon của Form.

Đây là các tính năng nâng cao ta hoàn thiện sau (Kỳ này đang kỳ báo cáo năm mà)
To D
omfootwear
Mình vẫn chưa thấy biểu tượng trên thanh TaskBar ở chân màn hình ấy. Khi đổi Window chỉ cần chọn nó là được.
 
Lần chỉnh sửa cuối:
Upvote 0
Có cách nào lưu cả ảnh vào không, mình thấy hình như chỉ có text, với một số bài nếu có hình ảnh sẽ trực quan hơn
Và mình thấy lúc mình sửa cái label không type có dấu tiếng việt được
 
Lần chỉnh sửa cuối:
Upvote 0
To Domfootwear
Mình vẫn chưa thấy biểu tượng trên thanh TaskBar ở chân màn hình ấy. Khi đổi Window chỉ cần chọn nó là được.
Anh thử lại lần nữa đi nhé, anh đóng tất cả file Excel của anh lại, mở file này lên, nhấn nút min trên form hoặc click vào 1 nơi nào đó của form là thấy liền.
 
Upvote 0
Có cách nào lưu cả ảnh vào không, mình thấy hình như chỉ có text, với một số bài nếu có hình ảnh sẽ trực quan hơn
Và mình thấy lúc mình sửa cái label không type có dấu tiếng việt được
Trong Textbox không chứa được hình đâu bạn
 
Upvote 0
Nói chung, mình cố gắng giản tiện cho phù hợp chứ thực tế giải pháp này đều có thể được:
1/Sort ta dùng Adin sort tiếng Việt của Bác Pham Duy Long hay 1 số người khác trên GPE sort sheet DT rồi nạp lại là được thôi.

2/Zoom: Khá phức tạp vì ta phải viết 1 sub chỉnh lại tỷ lệ các đối tượng theo độ Zoon của Form.

Đây là các tính năng nâng cao ta hoàn thiện sau (Kỳ này đang kỳ báo cáo năm mà)
To Domfootwear
Mình vẫn chưa thấy biểu tượng trên thanh TaskBar ở chân màn hình ấy. Khi đổi Window chỉ cần chọn nó là được.

Anh Sealand ơi, cái vụ tô đỏ là viết sub thủ công quy định khi maximized hoặc minimized hay normal thì đổi tỷ lệ, position của từng object hay có sẳn tính chất trong VBA chỉ gọi nó ra thôi?
 
Lần chỉnh sửa cuối:
Upvote 0
To minhthien321:
Bất cứ 1 Object nào cũng được xác định và phân định phần trên Form theo các thông số:

-Top.
-Left.
-Height.
-Width.
Ta lấy thông số cực đại so với thông số khi Zoom của Form để điều chỉnh kích thước cho phù hợp và cân đối. Toàn bộ code này đặt vào Sub UserForm_Resize(). Như vậy khi Form to nhỏ thì các TextBox, List, Combo cũng to nhỏ theo, nhưng ta cố định mức nhỏ nhất là baonhiêu chứ không cho Zoom quá mức. Đây là cách mình thích , chứ mình không thích cách Zoom của Window là chỉ hy sinh khoảng nhìn còn các đối tượng vẫn giữ nguyên. Thậm chí, để thực sự thì còn phải chỉnh cả cỡ của Font nũa. Nói chung là cũng phức tạp.
 
Lần chỉnh sửa cuối:
Upvote 0
Có cách nào lưu cả ảnh vào không, mình thấy hình như chỉ có text, với một số bài nếu có hình ảnh sẽ trực quan hơn
Và mình thấy lúc mình sửa cái label không type có dấu tiếng việt được

Thực sự đây là cái mình cũng muốn vậy và hoàn toàn có thể. Mình chưa thử được vì máy của mình hiện đang bị không Add control được. Cái này ta sử dụng RichText của VB là được.
Ta có thể tô màu định dạng như trong Word, thay đổi font....
Nhưng có 2 vấn đề:
-Quỹ thời gian cuối năm hạn chế quá.
-Cài các OCX này đôi khi sang máy khác hay bị lỗi. Ta lại phải có phần bổ xung OCX nó phức tạp với mọi người khi dùng file chỉ để ghi chép thôi.
 
Upvote 0
To domfootwear:

Mình kích nút Min nó lặn mất tiêu. Bạn mở hình trong file nhé
 

File đính kèm

Upvote 0
Thực sự đây là cái mình cũng muốn vậy và hoàn toàn có thể. Mình chưa thử được vì máy của mình hiện đang bị không Add control được. Cái này ta sử dụng RichText của VB là được.
Ta có thể tô màu định dạng như trong Word, thay đổi font....
Nhưng có 2 vấn đề:
-Quỹ thời gian cuối năm hạn chế quá.
-Cài các OCX này đôi khi sang máy khác hay bị lỗi. Ta lại phải có phần bổ xung OCX nó phức tạp với mọi người khi dùng file chỉ để ghi chép thôi.
Anh sealand ơi, em thấy cái này hay quá mà sao anh không làm thử hả anh? Bài viết của anhtuan1066 đúng là món quà đầu năm mới đấy. Anh thử đi nha.
http://www.giaiphapexcel.com/forum/showpost.php?p=215312&postcount=1
 
Upvote 0

File đính kèm

Upvote 0
Ý mình là vậy đó, nhưng không hiểu sao mình mở không nên được. Mình kiểm tra code và Image vẫn có.
Mình phải xem lại xem lý do ra sao. Cám ơn domfootwear nhé.
 
Upvote 0
Hôm nay, Chủ Nhật mình tranh thủ sửa File theo góp ý của các bạn và hoàn thiện thêm.
-Hoàn thiện phần Update
-Tạo phần tìm kiếm trên Internet qua Google.
-Tạo chức năng kiểm tra dọn dẹp hồ sơ.
-Tạo phần thông tin chung
Mình load lên các bạn tham khảo và góp ý bổ xung nhé. Chúc mọi người Chủ Nhật vui vẻ nhé.
Thân Sealand
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Hôm nay, Chủ Nhật mình tranh thủ sửa File theo góp ý của các bạn và hoàn thiện thêm.
-Hoàn thiện phần Update
-Tạo phần tìm kiếm trên Internet qua Google.
-Tạo chức năng kiểm tra dọn dẹp hồ sơ.
-Tạo phần thông tin chung
Mình load lên các bạn tham khảo và góp ý bổ xung nhé. Chúc mọi người Chủ Nhật vui vẻ nhé.
Thân Sealand
- Còn 1 vài lổi về việc thiếu khai báo biến
- Sao anh không dùng font Unicode? Máy em mở lên thấy toàn "mì tôm cua" (trên các Label)
 
Upvote 0
Sao mình bấm vào tìm theo chủ đề lại bị lỗi. Nếu được bạn nên thêm tìm nội dung trong file nữa.
 
Upvote 0
Sao mình bấm vào tìm theo chủ đề lại bị lỗi. Nếu được bạn nên thêm tìm nội dung trong file nữa.

Bạn thêm giùm câu khai báo biến
Dim i, j as Long vào đầu Sub lỗi với.

Cám ơn các bạn đã test lỗi giùm. Mình đã load lại file rồi
 
Upvote 0
Ý mình là vậy đó, nhưng không hiểu sao mình mở không nên được. Mình kiểm tra code và Image vẫn có.
Mình phải xem lại xem lý do ra sao. Cám ơn domfootwear nhé.
Em tìm ra nguyên nhân là đoạn code trên chỉ chạy được trên win Vista còn XP thì không chạy được +-+-+-+
 
Upvote 0
anh có thể làm thêm một thanh cuộn scroll bar

To sealand
Anh có thể làm thêm 1 thanh cuộn bên phần dử liệu mình đọc được không vì dử liệu nhiều mà không có thanh cuộn cũng hơn khó đọc. Và mình có thể làm thêm 3 nút option nữa tìm kiếm theo theo ngày, tháng, năm được không anh vì em cũng đang có làm form để tìm kiếm ngày tháng năm mà không biết làm sao nhân dịp này mong anh giúp đỡ.Thanks+-+-+-++-+-+-++-+-+-++-+-+-+ . Nhân đây mình cũng xin gửi các bạn nào yêu thích bóng đá file world cup 2010 ơ Nam Phi mình load từ trang excely.com
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em tìm ra nguyên nhân là đoạn code trên chỉ chạy được trên win Vista còn XP thì không chạy được +-+-+-+
Vậy có thể sửa để đoạn code này có thể chạy được trên Win XP không? Chức năng hay như vậy mà đa số người dùng không được chiêm ngưỡng thì uổng quá.
Mình và rất nhiều người khác đang mong chờ lời giải của domfootwear đó.
Xin cảm ơn rất nhiều!
 
Upvote 0
Vậy có thể sửa để đoạn code này có thể chạy được trên Win XP không? Chức năng hay như vậy mà đa số người dùng không được chiêm ngưỡng thì uổng quá.
Mình và rất nhiều người khác đang mong chờ lời giải của domfootwear đó.
Xin cảm ơn rất nhiều!

Mình đã sửa code theo ý bạn, tham khảo ở file đính kèm nhé.

P/S: nó chạy cả ở Win XP và Vista. Lưu ý là phải đóng hết các file Excel đi rồi mới mở file này nhé.
 

File đính kèm

Upvote 0
Đạt đấy a Dom à, việc chuyển đổi giữa các Window sẽ đơn giản hơn nhiều.
 
Upvote 0
Đạt đấy a Dom à, việc chuyển đổi giữa các Window sẽ đơn giản hơn nhiều.
Còn 1 vấn đề nữa theo em nghĩ mình cần phải cải tiến là thêm cái menu (Click Phải chuột) vào trong Textbox để khi copy, cắt, dán code mình rê chuột quét khối rồi sẵn tay right click menu hiện ra chọn copy, cut, dán luôn mà khỏi cần nhấn dùng bàn phím.
 
Lần chỉnh sửa cuối:
Upvote 0
To minhthien321:
Bất cứ 1 Object nào cũng được xác định và phân định phần trên Form theo các thông số:

-Top.
-Left.
-Height.
-Width.
Ta lấy thông số cực đại so với thông số khi Zoom của Form để điều chỉnh kích thước cho phù hợp và cân đối. Toàn bộ code này đặt vào Sub UserForm_Resize(). Như vậy khi Form to nhỏ thì các TextBox, List, Combo cũng to nhỏ theo, nhưng ta cố định mức nhỏ nhất là baonhiêu chứ không cho Zoom quá mức. Đây là cách mình thích , chứ mình không thích cách Zoom của Window là chỉ hy sinh khoảng nhìn còn các đối tượng vẫn giữ nguyên. Thậm chí, để thực sự thì còn phải chỉnh cả cỡ của Font nũa. Nói chung là cũng phức tạp.

Cái này theo em nghĩ phải đụng tới Class thôi anh à, để em tìm thử.
 
Upvote 0
Còn 1 vấn đề nữa theo em nghĩ mình cần phải cải tiến là thêm cái menu (Click Phải chuột) vào trong Textbox để khi copy, cắt, dán code mình rê chuột quét khối rồi sẵn tay right click menu hiện ra chọn copy, cut, dán luôn mà khỏi cần nhấn dùng bàn phím.

1). Class module:
Đây là class (CTextBox_ContextMenu) của menu Cut, Copy và Paste:

Mã:
Option Explicit

Private Const mEDIT_CONTEXTMENU_NAME = "ajpiEditContextMenu"
Private Const mCUT_TAG = "CUT"
Private Const mCOPY_TAG = "COPY"
Private Const mPASTE_TAG = "PASTE"

Private m_cbrContextMenu As CommandBar
Private WithEvents m_txtTBox As MSForms.TextBox
Private WithEvents m_cbtCut As CommandBarButton
Private WithEvents m_cbtCopy As CommandBarButton
Private WithEvents m_cbtPaste As CommandBarButton
Private m_objDataObject As DataObject
Private m_objParent As Object



Private Function m_CreateEditContextMenu() As CommandBar
'
' Build Context menu controls.
'
    Dim cbrTemp As CommandBar
    Const CUT_MENUID = 21
    Const COPY_MENUID = 19
    Const PASTE_MENUID = 22
    
    Set cbrTemp = Application.CommandBars.Add(mEDIT_CONTEXTMENU_NAME, Position:=msoBarPopup)
    With cbrTemp
        With .Controls.Add(msoControlButton)
            .Caption = "Cu&t"
            .FaceId = CUT_MENUID
            .Tag = mCUT_TAG
        End With
        With .Controls.Add(msoControlButton)
            .Caption = "&Copy"
            .FaceId = COPY_MENUID
            .Tag = mCOPY_TAG
        End With
        With .Controls.Add(msoControlButton)
            .Caption = "&Paste"
            .FaceId = PASTE_MENUID
            .Tag = mPASTE_TAG
        End With
    End With
    
    Set m_CreateEditContextMenu = cbrTemp

End Function
Private Sub m_DestroyEditContextMenu()
    On Error Resume Next
    Application.CommandBars(mEDIT_CONTEXTMENU_NAME).Delete
    Exit Sub
End Sub
Private Function m_GetEditContextMenu() As CommandBar

    On Error Resume Next
    
    Set m_GetEditContextMenu = Application.CommandBars(mEDIT_CONTEXTMENU_NAME)
    If m_GetEditContextMenu Is Nothing Then
        Set m_GetEditContextMenu = m_CreateEditContextMenu
    End If
    
    Exit Function
    
End Function

Private Function m_ActiveTextbox() As Boolean
'
' Make sure this instance is connected to active control
' May need to drill down through container controls to
' reach ActiveControl object
'
    Dim objCtl As Object
    On Error GoTo ErrActivetextbox
    Set objCtl = m_objParent.ActiveControl
    Do While UCase(TypeName(objCtl)) <> "TEXTBOX"
        If UCase(TypeName(objCtl)) = "MULTIPAGE" Then
            Set objCtl = objCtl.Pages(objCtl.Value).ActiveControl
        Else
            Set objCtl = objCtl.ActiveControl
        End If
    Loop
    m_ActiveTextbox = (StrComp(objCtl.Name, m_txtTBox.Name, vbTextCompare) = 0)
    
ErrActivetextbox:
    Exit Function
    
End Function

Public Property Set Parent(RHS As Object)
    Set m_objParent = RHS
End Property

Private Sub m_UseMenu()
    
    Dim lngIndex As Long
    
    For lngIndex = 1 To m_cbrContextMenu.Controls.Count
        Select Case m_cbrContextMenu.Controls(lngIndex).Tag
        Case mCUT_TAG
            Set m_cbtCut = m_cbrContextMenu.Controls(lngIndex)
        Case mCOPY_TAG
            Set m_cbtCopy = m_cbrContextMenu.Controls(lngIndex)
        Case mPASTE_TAG
            Set m_cbtPaste = m_cbrContextMenu.Controls(lngIndex)
        End Select
    Next
    
End Sub
Public Property Set TBox(RHS As MSForms.TextBox)
    Set m_txtTBox = RHS
End Property


Private Sub Class_Initialize()
    
    Set m_objDataObject = New DataObject
    Set m_cbrContextMenu = m_GetEditContextMenu
    
    If Not m_cbrContextMenu Is Nothing Then
        m_UseMenu
    End If
    
End Sub

Private Sub Class_Terminate()

    Set m_objDataObject = Nothing
    m_DestroyEditContextMenu
    
End Sub


Private Sub m_cbtCopy_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)

    ' check active textbox is this instance of CTextBox_ContextMenu
    If m_ActiveTextbox() Then
        With m_objDataObject
            .Clear
            .SetText m_txtTBox.SelText
            .PutInClipboard
        End With
    End If
    
End Sub

Private Sub m_cbtCut_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)

    ' check active textbox is this instance of CTextBox_ContextMenu
    If m_ActiveTextbox() Then
        With m_objDataObject
            .Clear
            .SetText m_txtTBox.SelText
            .PutInClipboard
            m_txtTBox.SelText = vbNullString
        End With
    End If
    
End Sub


Private Sub m_cbtPaste_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
    
    ' check active textbox is this instance of CTextBox_ContextMenu
    On Error GoTo ErrPaste
    
    If m_ActiveTextbox() Then
        With m_objDataObject
            .GetFromClipboard
            m_txtTBox.SelText = .GetText
        End With
    End If
    
ErrPaste:
    Exit Sub
End Sub


Private Sub m_txtTBox_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    
    If Button = 2 Then
        ' right click
        m_cbrContextMenu.ShowPopup
    End If

End Sub
2.) Userform

Mã:
Option Explicit
Private m_colContextMenus As Collection
Private Sub UserForm_Initialize()
Dim clsContextMenu As CTextBox_ContextMenu

    Set m_colContextMenus = New Collection

    Set clsContextMenu = New CTextBox_ContextMenu
    With clsContextMenu
        Set .TBox = [COLOR=Green][B]UserForm1.TextBox1[/B][/COLOR] ' Ten Userform va Ten Textbox
        Set .Parent = Me
    End With
    m_colContextMenus.Add clsContextMenu, CStr(m_colContextMenus.Count + 1)
    
End Sub
Như vậy muốn cắt, copy hoặc dán nó thuận tiện hơn nhiều.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Sao bạn không bỏ pass di để anh em tham khảo nhỉ :-D
 
Upvote 0
PHP:
Sub napTD()
Dim i, j As Long
If Me.ListBox1.ListCount > 0 Then Me.ListBox1.Clear
j = 0
For i = 2 To Dg
If DT.Cells(i, 1) = Me.ComboBox1 Then
Me.ListBox1.AddItem Str(i)
Me.ListBox1.List(j, 1) = DT.Cells(i, 2)
j = j + 1
End If
Next
If Me.ListBox1.ListCount > 0 Then Me.ListBox1.ListIndex = 0
End Sub

Code bị lỗi tại Sub này bạn ơi! Nó báo lỗi tại Str(i). Nó báo lỗi: Can't find project or library.
Mình vào Refrences... bỏ Missing... mới hết lỗi, không biết bị lỗi gì.
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom