Nhờ giúp tạo code reset cho vba

Liên hệ QC

atomexec

Thành viên mới
Tham gia
24/8/08
Bài viết
19
Được thích
2
Chào các bác
Nhờ các cao nhân chỉ giúp, mình không rành về vba, có cóp nhặt được đoạn code tìm dữ liệu trong combobox
tất cả đều chạy bình thường, duy chỉ có vấn đề khi cập nhật hoặc sửa đổi dữ liệu trong sheetdata thì trong combo box không hiện ra ngay dữ liệu mới mà phải vào vba bấm nút reset trên thanh công cụ thì trong combo box mới hiện ra dữ liệu mới cập nhật thay đổi
Vậy các bác cho hỏi có đoạn code nào để chạy tự động lệnh reset này mà không phải vào lại vba để reset không

(các bác thông cảm không upfile được vì đang dùng máy công ty không cho upload file)

Cám ơn các bác nhiều
 
Tạo sự kiện Worksheet_Change để gọi thủ tục reset dữ liệu combobox
 
Upvote 0
Tạo sự kiện Worksheet_Change để gọi thủ tục reset dữ liệu combobox
mình không rành vba, Bác có thể giúp cụ thể hơn được không, cho đoạn code reset vào form nhập dư liệu này giúp được không?
-------------
Private Sub bt_insert_Click()
Dim dong_cuoi As Long
dong_cuoi = Sheet3.Range("B10000").End(xlUp).Row + 1

With Sheet3

If txt_TenNCC.Text = "" Then MsgBox "Chua nhap Ten Cong ty", vbCritical, "CHÚ Ý!!!": Exit Sub
If txt_TenNCC.Text <> "" And txtTax.Text = "" Then MsgBox "Chua nhap Ma so thue", vbCritical, "CHÚ Ý!!!": Exit Sub
If MsgBox("Ban co chac du lieu chinh xac de nhap?", vbYesNo, "Thông báo") = vbYes Then

.Range("B" & dong_cuoi) = txt_TenCty.Text
.Range("C" & dong_cuoi) = txt_Diachi.Text
.Range("D" & dong_cuoi) = txtTel.Text
.Range("E" & dong_cuoi) = txtTax.Text

If txt_TenNCC.Text <> "" And txtTax.Text <> "" Then MsgBox "Da nhap thanh cong", vbInformation, "DONE!!!": Exit Sub
End If
End With

End Sub
---------------
 
Upvote 0
Bạn không rành vba, không có file thì tôi chỉ thế nào đây? Ít nhất bạn cũng giả lập 1 file (không có form cũng được) nhưng có cấu trúc giống như file thật thì tôi mới chỉ.
 
Upvote 0
Bạn không rành vba, không có file thì tôi chỉ thế nào đây? Ít nhất bạn cũng giả lập 1 file (không có form cũng được) nhưng có cấu trúc giống như file thật thì tôi mới chỉ.
Bạn ơi, hôm qua dùng máy công ty không cho upfile
Hôm nay ở nhà làm file demo gần tương tự file đính kèm, bạn xem hỗ trợ giúp nhé
Có 2 vấn đề muốn được trợ giúp
1- Mình muốn khi nhập dữ liệu hoặc thay đổi tên công ty trong sheet DataNCC, thì trong combo box Sheet Công ty sẽ được cập nhật ngay
(File hiện tại phải đóng excel mở lại hoăc vào VBA reset thì nội dung mới được cập nhật vào combo box)

2- Với sheet Data mình định đưa ra làm file riêng đặt trên ổ chung công ty dạng file share để ai cũng truy cập và up thêm công ty cũng được
Vậy câu lệnh tạo đường link cố định đến ổ chung thế nào

Vậy bạn giúp đỡ nhé
Cám ơn bạn nhiều
 

File đính kèm

  • Book1.xlsm
    35 KB · Đọc: 8
Upvote 0
Bạn ơi, hôm qua dùng máy công ty không cho upfile
Hôm nay ở nhà làm file demo gần tương tự file đính kèm, bạn xem hỗ trợ giúp nhé
Có 2 vấn đề muốn được trợ giúp
1- Mình muốn khi nhập dữ liệu hoặc thay đổi tên công ty trong sheet DataNCC, thì trong combo box Sheet Công ty sẽ được cập nhật ngay
(File hiện tại phải đóng excel mở lại hoăc vào VBA reset thì nội dung mới được cập nhật vào combo box)

2- Với sheet Data mình định đưa ra làm file riêng đặt trên ổ chung công ty dạng file share để ai cũng truy cập và up thêm công ty cũng được
Vậy câu lệnh tạo đường link cố định đến ổ chung thế nào

Vậy bạn giúp đỡ nhé
Cám ơn bạn nhiều
Vấn đề 1: Với file đính kèm của bạn thì khác hoàn toàn với tình trạng mà bạn mô tả ở bài #1. Cụ thể: khi nhập thêm hoặc sửa đổi ở sheet DataNCC thì ComboBox cập nhật được ngay, đâu cần phải đóng Excel hoặc reset gì đâu? Đồng thời cũng không có đoạn code bạn đăng ở bài #3?
Vấn đề 2: tôi không biết cách.
 
Upvote 0
Vấn đề 1: Với file đính kèm của bạn thì khác hoàn toàn với tình trạng mà bạn mô tả ở bài #1. Cụ thể: khi nhập thêm hoặc sửa đổi ở sheet DataNCC thì ComboBox cập nhật được ngay, đâu cần phải đóng Excel hoặc reset gì đâu? Đồng thời cũng không có đoạn code bạn đăng ở bài #3?
Vấn đề 2: tôi không biết cách.
Chào bạn
Vấn đề 1: Bản chất câu hỏi vẫn như bài #1, là khi có thay đổi nội dung ở sheet DataNCC thì nó không cập nhật ngay trong combo box,
Bài trước là file ở công ty, đoạn code đó là form nhập liệu vào dataNCC định tiện đưa code reset vào form này luôn để khi nhấp lệnh nhập NCC là được luôn,

Về nhà làm file demo thì để đơn giản hơn nên bỏ form đi cho nhanh

"Cụ thể: khi nhập thêm hoặc sửa đổi ở sheet DataNCC thì ComboBox cập nhật được ngay, đâu cần phải đóng Excel hoặc reset gì đâu?"
À hôm qua theo gợi ý của bạn mình đã tìm đc một đoạn code cho sự kiện Worksheet_Change nên đã đưa thêm vào nhưng vẫn không ổn
Dữ liệu được đưa vào combo box ngay nhưng vẫn báo lỗi : Runtime error: 1004

Báo lỗi dòng đỏ trong code dưới
----------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cbrReset As CommandBarButton
Set cbrReset = Application.VBE.CommandBars(1).Controls("&Run").Controls("&Reset")
cbrReset.Execute
End Sub
----------------
Không biết máy bạn có báo lỗi vậy không? hay có thể sửa code trên thế nào được không

Cám ơn bạn
 
Upvote 0
Chào bạn
Vấn đề 1: Bản chất câu hỏi vẫn như bài #1, là khi có thay đổi nội dung ở sheet DataNCC thì nó không cập nhật ngay trong combo box,
Bài trước là file ở công ty, đoạn code đó là form nhập liệu vào dataNCC định tiện đưa code reset vào form này luôn để khi nhấp lệnh nhập NCC là được luôn,

Về nhà làm file demo thì để đơn giản hơn nên bỏ form đi cho nhanh

"Cụ thể: khi nhập thêm hoặc sửa đổi ở sheet DataNCC thì ComboBox cập nhật được ngay, đâu cần phải đóng Excel hoặc reset gì đâu?"
À hôm qua theo gợi ý của bạn mình đã tìm đc một đoạn code cho sự kiện Worksheet_Change nên đã đưa thêm vào nhưng vẫn không ổn
Dữ liệu được đưa vào combo box ngay nhưng vẫn báo lỗi : Runtime error: 1004

Báo lỗi dòng đỏ trong code dưới
----------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cbrReset As CommandBarButton
Set cbrReset = Application.VBE.CommandBars(1).Controls("&Run").Controls("&Reset")
cbrReset.Execute
End Sub
----------------
Không biết máy bạn có báo lỗi vậy không? hay có thể sửa code trên thế nào được không

Cám ơn bạn
Gửi lại file cho bạn (cũng file của bạn nhưng tôi vô hiệu hóa hết các code cũ). Xem trong đó bạn sẽ thấy khi nhập mới, sửa ở danh sách KHNCC thì danh sách trong combobox2 sẽ thay đổi theo. Combobox1 của bạn tạo ra từ nguồn khác nên sheet không cho tác động tới, tôi xóa rồi.

Cách làm:
1. Chèn module, tạo 2 biến public và 1 thủ tục lấy list, gán cho combobox2
2. Tạo sự kiện Worksheet_Change của sheet dataNCC để mỗi khi cập nhật trong cột B hoặc C thì chạy thủ tục ở bước 1
 

File đính kèm

  • ResetComboBox_atomexec.xlsm
    32.2 KB · Đọc: 13
Upvote 0
Bạn dùng cách "reset" nhưng đúng ra là cái này nên nghĩ theo hướng "refresh". Giả sử bạn có một cái sub list_update() dùng để nạp dữ liệu cho combo thì ở những event liên quan của form hay control (chẳng hạn event của control có index liền trước và liền sau combobox) bạn gọi cái sub ấy là được (chèn cái sub ấy vô mấy chục event khác nhau bảo đảm không bao giờ thoát --=0 ) . Hoặc gán sub này cho một phím nóng hay nút gì đó. Đây là cách đơn giản nhất nhưng cũng là cùi nhất do tôi từng nghĩ ra, còn phức tạp hơn là update theo thời gian thực với chu kỳ mỗi x milisecond lại update một lần.

Office của tôi hết hạn trial nên không thử nghiệm được gì cả thậm chí gõ chữ cũng bó tay nên có vài ý tưởng chia sẻ hy vọng là làm được.
 
Upvote 0
Gửi lại file cho bạn (cũng file của bạn nhưng tôi vô hiệu hóa hết các code cũ). Xem trong đó bạn sẽ thấy khi nhập mới, sửa ở danh sách KHNCC thì danh sách trong combobox2 sẽ thay đổi theo. Combobox1 của bạn tạo ra từ nguồn khác nên sheet không cho tác động tới, tôi xóa rồi.

Cách làm:
1. Chèn module, tạo 2 biến public và 1 thủ tục lấy list, gán cho combobox2
2. Tạo sự kiện Worksheet_Change của sheet dataNCC để mỗi khi cập nhật trong cột B hoặc C thì chạy thủ tục ở bước 1
Cám ơn bạn rất nhiều, nhưng có 2 vấn đề ờ file bạn gửi
1- Phải tác động ở thay đổi/ thêm nội dung ở sheet data thì combo box mới hiện dòng để chọn. Mình muốn lúc nào combo box cũng dùng được
2- Bị lỗi hiển thị font unicode tiếng việt khi chọn xong trong combo box
Bạn xem giúp mình nhé
Bài đã được tự động gộp:

Bạn dùng cách "reset" nhưng đúng ra là cái này nên nghĩ theo hướng "refresh". Giả sử bạn có một cái sub list_update() dùng để nạp dữ liệu cho combo thì ở những event liên quan của form hay control (chẳng hạn event của control có index liền trước và liền sau combobox) bạn gọi cái sub ấy là được (chèn cái sub ấy vô mấy chục event khác nhau bảo đảm không bao giờ thoát --=0 ) . Hoặc gán sub này cho một phím nóng hay nút gì đó. Đây là cách đơn giản nhất nhưng cũng là cùi nhất do tôi từng nghĩ ra, còn phức tạp hơn là update theo thời gian thực với chu kỳ mỗi x milisecond lại update một lần.

Office của tôi hết hạn trial nên không thử nghiệm được gì cả thậm chí gõ chữ cũng bó tay nên có vài ý tưởng chia sẻ hy vọng là làm được.
Cám ơn bạn đã chia sẻ, vì mình không rành vba nên chưa hiểu ý bạn: Refresh có phải tương tự như lệnh Ctr+Alt+F5 trong Excel???
nếu đúng như vây thì cũng không được vì mình thử sau khi cập nhật data rồi bấm Ctr+Alt+F5 cũng không được, mà phải vào vba bấm nút reset trên thanh công cụ mới được
 
Upvote 0
Tôi hàm ý refresh theo hướng khái quát chứ không cụ thể như thế đâu. Điển hình như Windows có những thay đổi thông số nhưng bạn cũng phải "refresh" thì những thay đổi này mới có hiệu lực hoặc trên bất cứ trang web nào muốn xem nội dung có gì mới không thì bạn cũng phải "refresh". Cách đơn giản nhất cho bạn là tạo cái nút refresh (kiếm cái hình xoáy tròn) nằm kế bên cái combobox rồi gán một cái sub list_update() load dữ liệu cho combobox hoặc dùng sự kiện liên quan tới combobox chẳng click, focus, active (tôi không có VBA để kiểm thử nên không chắc tên event lắm)
 
Upvote 0
Cám ơn bạn rất nhiều, nhưng có 2 vấn đề ờ file bạn gửi
1- Phải tác động ở thay đổi/ thêm nội dung ở sheet data thì combo box mới hiện dòng để chọn. Mình muốn lúc nào combo box cũng dùng được
2- Bị lỗi hiển thị font unicode tiếng việt khi chọn xong trong combo box
Bạn xem giúp mình nhé
1. Thêm sự kiện Workbook_Open để lấy list cho combobox
2. Vụ lỗi font đó là do hệ thống không cách gì sửa được nhưng vấn đề là chọn 1 dòng trong combobox là để nhập liệu cho 1 cell nào đó chứ không phải để hiển thị không không trong đó. Bạn chọn 1 dòng của combobox để xem kết quả được gán cho ô E3 và G3, nó đâu bị lỗi font.
 

File đính kèm

  • ResetComboBox_atomexec.xlsm
    32.8 KB · Đọc: 11
Upvote 0
1. Thêm sự kiện Workbook_Open để lấy list cho combobox
2. Vụ lỗi font đó là do hệ thống không cách gì sửa được nhưng vấn đề là chọn 1 dòng trong combobox là để nhập liệu cho 1 cell nào đó chứ không phải để hiển thị không không trong đó. Bạn chọn 1 dòng của combobox để xem kết quả được gán cho ô E3 và G3, nó đâu bị lỗi font.
Bạn hỗ trợ tiếp nhé,
1- Mình không biết thêm sự kiện thế nào bạn sửa luôn vào file giúp nhé
2- xử lý vụ lỗi font, đúng là combo box là để chọn dữ liệu còn hiển thị là trên ô cell, nhưng như thế trên file không được đẹp và rối
trong file trước của mình có đoạn code ẩn combo box khi chọn xong, hoặc combox trắng thì cũng không hiện chỉ khí click chuột vào ô hiển thị kết quả mới ra combo box, vậy trong file này bạn xử lý theo cách đó được không
Bài đã được tự động gộp:

Tôi hàm ý refresh theo hướng khái quát chứ không cụ thể như thế đâu. Điển hình như Windows có những thay đổi thông số nhưng bạn cũng phải "refresh" thì những thay đổi này mới có hiệu lực hoặc trên bất cứ trang web nào muốn xem nội dung có gì mới không thì bạn cũng phải "refresh". Cách đơn giản nhất cho bạn là tạo cái nút refresh (kiếm cái hình xoáy tròn) nằm kế bên cái combobox rồi gán một cái sub list_update() load dữ liệu cho combobox hoặc dùng sự kiện liên quan tới combobox chẳng click, focus, active (tôi không có VBA để kiểm thử nên không chắc tên event lắm)
Cách này mình cũng đã nghĩ đến là tạo một nút update data hoặc refresh cạnh combobox nhưng vấn đề là không biết làm code cho nút đó. hix
 
Upvote 0
)Bạn hỗ trợ tiếp nhé,
1- Mình không biết thêm sự kiện thế nào bạn sửa luôn vào file giúp nhé
2- xử lý vụ lỗi font, đúng là combo box là để chọn dữ liệu còn hiển thị là trên ô cell, nhưng như thế trên file không được đẹp và rối
trong file trước của mình có đoạn code ẩn combo box khi chọn xong, hoặc combox trắng thì cũng không hiện chỉ khí click chuột vào ô hiển thị kết quả mới ra combo box, vậy trong file này bạn xử lý theo cách đó được không
1. Đã thêm trong file rồi. Bạn không xem file xem code à?
2. Ẩn hiện thì được nhưng bạn có biết tùy biến nó không (hay là gì cũng không biết bạn sửa luôn giúp nhé @!>>< ) thì chẳng đâu vào đâu.
 
Upvote 0
1. Đã thêm trong file rồi. Bạn không xem file xem code à?
2. Ẩn hiện thì được nhưng bạn có biết tùy biến nó không (hay là gì cũng không biết bạn sửa luôn giúp nhé @!>>< ) thì chẳng đâu vào đâu.
1.Sorry bạn, vì mình đang mở mấy file excel lúc trước đang bị lỗi nó stop vba nên không biết, mờ file bạn gửi nó ko chạy, bậy giờ mở lại thì có dữ liệu rồi nhưng khi xóa dữ liệu trong combo để gõ tên cty khác thì bị lỗi ví dụ xóa trắng rồi gõ chữ s (hoặc chữ bất kỳ mà trong danh sách không bắt đầu bằng chữ cái đó)

2.Ngay từ đầu mình đã nói không rành VBA rồi mà :(, bạn cố giúp mình nốt đoạn code ẩn combo box nhé
theo điều kiện, khi ô dữ liệu trắng combox ẩn, click vào ô hiển thị tên NCC thì combox hiện, và khi chọn xong thì combobox lại ẩn

Bạn giúp mình nhé, cám ơn bạn nhiều
 
Upvote 0
1.Sorry bạn, vì mình đang mở mấy file excel lúc trước đang bị lỗi nó stop vba nên không biết, mờ file bạn gửi nó ko chạy, bậy giờ mở lại thì có dữ liệu rồi nhưng khi xóa dữ liệu trong combo để gõ tên cty khác thì bị lỗi ví dụ xóa trắng rồi gõ chữ s (hoặc chữ bất kỳ mà trong danh sách không bắt đầu bằng chữ cái đó)

2.Ngay từ đầu mình đã nói không rành VBA rồi mà :(, bạn cố giúp mình nốt đoạn code ẩn combo box nhé
theo điều kiện, khi ô dữ liệu trắng combox ẩn, click vào ô hiển thị tên NCC thì combox hiện, và khi chọn xong thì combobox lại ẩn

Bạn giúp mình nhé, cám ơn bạn nhiều
Bạn thử dùng nhé. Bấm vào D3 thì hiện combobox, chọn 1 dòng bấm ra ngoài thì ẩn đi và điền giá trị 1 vào D3, giá trị 2 vào D4
 

File đính kèm

  • ResetComboBox_atomexec.xlsm
    34.9 KB · Đọc: 20
Upvote 0
Upvote 0
Đó chưa hay. Khi gõ vào combobox để thu hẹp danh sách chọn mới là hay. Bạn tham khảo file trong chủ đề này của tôi
https://www.giaiphapexcel.com/diendan/threads/tặng-file-quản-lý-vật-tư-công-nợ-nhập-xuất-kho-hàng-và-công-nợ-khách-hàng.151557/
Đúng rồi, Mình cũng đang định hỏi thêm vì lúc trước đang mải trao đổi về cập nhật dữ liệu vào combobox quên mất phần tìm kiếm theo ký tự
vì file trước của mình code đấy rồi nên không hỏi
Bây giờ đang check lại thì khi gõ vào combobox ký tự bất kỳ không search được và cũng không rút gọn danh sách, bạn sửa giúp được không

File chủ đề trên của bạn thì quá Pro rồi, mình đang xem và học hỏi dần
 
Upvote 0
Web KT

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

Back
Top Bottom