[Hỏi]Code liên kết Listbox và Textbox (1 người xem)

Liên hệ QC

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

ultimatum86

Thành viên chính thức
Tham gia
19/11/10
Bài viết
79
Được thích
5
Xin chào Anh Chị GPE,

Nhờ Anh Chị xem giúp em file đính kèm, trong file e có dùng listbox và Textbox để liên kết hiển thị nội dung trong sheet khác, nhưng mà khi đưa vào Form của em thì nó nặng quá, bấm 1 ký tự mà nó hiển thị rất lâu.

Anh Chị xem giúp Code này có thể làm sao để chạy nhanh không nha, vì trong Form có nhiều công thức khác nên ưu tiên Code nhanh nhất là được.

Cảm ơn Anh Chị rất nhiều.
 

File đính kèm

Xin chào Anh Chị GPE,

Nhờ Anh Chị xem giúp em file đính kèm, trong file e có dùng listbox và Textbox để liên kết hiển thị nội dung trong sheet khác, nhưng mà khi đưa vào Form của em thì nó nặng quá, bấm 1 ký tự mà nó hiển thị rất lâu.

Anh Chị xem giúp Code này có thể làm sao để chạy nhanh không nha, vì trong Form có nhiều công thức khác nên ưu tiên Code nhanh nhất là được.

Cảm ơn Anh Chị rất nhiều.

bạn tham khảo các link sau thử nhé:
- Tính tổng theo từng loại #3
- Nhập dữ liệu từ 1 cột có sẵn sang cột khác excel

- Ứng dụng tạo mã hàng
 
Upvote 0
Upvote 0
Cảm ơn anh Phúc nha,
Anh xem giúp em chủ đề này luôn có thực hiện được như vậy không nha.
http://www.giaiphapexcel.com/forum/...Hỏi-Code-Cập-nhật-báo-cáo&p=574161#post574161

- vấn đề cập nhật số liệu vào file đang đóng --> liên quan nhiều đến ADO --> bạn nên hỏi ở Box Cơ sở dữ liệu
(mình nghĩ bài đó, bạn trình bày có vẻ chi tiết nhưng số liệu trong file thì quá "sơ sài" --> người muốn giúp cũng "nản" --=0)
 
Upvote 0

- vấn đề cập nhật số liệu vào file đang đóng --> liên quan nhiều đến ADO --> bạn nên hỏi ở Box Cơ sở dữ liệu
(mình nghĩ bài đó, bạn trình bày có vẻ chi tiết nhưng số liệu trong file thì quá "sơ sài" --> người muốn giúp cũng "nản" --=0)

- vấn đề cập nhật số liệu vào file đang đóng --> liên quan nhiều đến ADO --> bạn nên hỏi ở Box Cơ sở dữ liệu
(mình nghĩ bài đó, bạn trình bày có vẻ chi tiết nhưng số liệu trong file thì quá "sơ sài" --> người muốn giúp cũng "nản" --=0)


Cảm ơn anh, Cái này thì ok, em sẽ làm file có số liệu đầy đủ hơn.


Về file Textbox và listbox của anh, Anh chỉnh lại giúp em thế này.


Chỉ cần click ô vào là chạy thôi, và dùng phím để chọn, giống như file của em vậy đó. File của anh cần phải Double click và phải chọn bằng chuột, sẽ rất lâu.


Anh chỉnh lại code giúp e nha.
 
Upvote 0
Mong Anh Chị xem giúp em phần này nha.

Vì code này khi đưa vào Form của em thì nó chạy chậm quá nên hiện tại đang không thể chạy được.
 
Upvote 0
Thanks Anh Phúc nha,Em làm theo cách thứ 2 Combo box chạy rất ok.
Nhưng anh sửa lại giúp em 1 chút xíu thôi, vì không phải dòng nào em muốn nhập dữ liệu, khi dòng nào em không muốn nhập dữ liệu thì chỉ cần ấn Enter là nó sẽ chạy xuống dòng tiếp theo.

Rất mong nhận được hồi âm từ Anh.
 

File đính kèm

Upvote 0
Thanks Anh Phúc nha,Em làm theo cách thứ 2 Combo box chạy rất ok.
Nhưng anh sửa lại giúp em 1 chút xíu thôi, vì không phải dòng nào em muốn nhập dữ liệu, khi dòng nào em không muốn nhập dữ liệu thì chỉ cần ấn Enter là nó sẽ chạy xuống dòng tiếp theo.
Rất mong nhận được hồi âm từ Anh.
bạn tìm đến Private Sub ComboBox1_KeyUp
tại nhóm Case 13 thêm "cái eo" nữa là xong --=0
(Case 13 <=> nút Enter, các Case khác chắc là bốn mũi tên lên, xuống, trái phải **~**)
[GPECODE=vb]
If ComboBox1.MatchFound Then
ComboBox1.Visible = False
pri_RangeFilter.AutoFilter 1, ComboBox1, , , False
ActiveCell.Offset(, -1) = ComboBox1.Value
ActiveCell.Offset(1).Select
Else
ComboBox1.Visible = False
ActiveCell.Offset(1).Select
End If

[/GPECODE]
 
Upvote 0
bạn tìm đến Private Sub ComboBox1_KeyUp
tại nhóm Case 13 thêm "cái eo" nữa là xong --=0
(Case 13 <=> nút Enter, các Case khác chắc là bốn mũi tên lên, xuống, trái phải **~**)
[GPECODE=vb]
If ComboBox1.MatchFound Then
ComboBox1.Visible = False
pri_RangeFilter.AutoFilter 1, ComboBox1, , , False
ActiveCell.Offset(, -1) = ComboBox1.Value
ActiveCell.Offset(1).Select
Else
ComboBox1.Visible = False
ActiveCell.Offset(1).Select
End If

[/GPECODE]
Cảm ơn anh Phúc rất nhiều, đã Enter ok rồi.

Nhưng khi em sử dụng có 2 vấn đề chính như sau:
1- Khi chọn mã hàng rồi nhưng chưa Enter, bây giờ muốn xóa bằng phím Backspace để chọn lại mã khác thì không được, phải dùng chuột bôi đen rồi mới xóa được.
2- Hình như Code này chưa được ổn định lắm, ví dụ trong file 2 e đính kèm, khi em gõ chữ "DB" thì nó không hiện lên hết các dòng có chữ DB, mà chỉ hiện 1 dòng đầu tiên, tương tự với file 1, khi em gõ chữ "bo" thì nó cũng hiện ra dòng đầu tiên.

Cái này phải khắc phục sao đây anh?
 

File đính kèm

Upvote 0
Cảm ơn anh Phúc rất nhiều, đã Enter ok rồi.
Nhưng khi em sử dụng có 2 vấn đề chính như sau:
1- Khi chọn mã hàng rồi nhưng chưa Enter, bây giờ muốn xóa bằng phím Backspace để chọn lại mã khác thì không được, phải dùng chuột bôi đen rồi mới xóa được.
2- Hình như Code này chưa được ổn định lắm, ví dụ trong file 2 e đính kèm, khi em gõ chữ "DB" thì nó không hiện lên hết các dòng có chữ DB, mà chỉ hiện 1 dòng đầu tiên, tương tự với file 1, khi em gõ chữ "bo" thì nó cũng hiện ra dòng đầu tiên.
Cái này phải khắc phục sao đây anh?
cho hỏi,
- thứ 1: khi bạn tìm kiếm "Mã" thì số liệu Update vào Combobox là 1 cột hay nhiều cột ?
- thứ 2: việc nhập mã như vậy là liên tục trong 1 cột hay sau khi nhập 1 mã xong thì nhảy sang cột khác để các điền thông tin tiếp theo và tiếp tục tìm kiếm mã thứ 2 và ... (kiểu điền dữ liệu theo hàng ngang)
 
Upvote 0
cho hỏi,
- thứ 1: khi bạn tìm kiếm "Mã" thì số liệu Update vào Combobox là 1 cột hay nhiều cột ?
- thứ 2: việc nhập mã như vậy là liên tục trong 1 cột hay sau khi nhập 1 mã xong thì nhảy sang cột khác để các điền thông tin tiếp theo và tiếp tục tìm kiếm mã thứ 2 và ... (kiểu điền dữ liệu theo hàng ngang)
Hi Anh Phúc
- Thứ 1: Em chỉ cần giá trị của 1 cột update vào combox thôi, nhưng yêu cầu là khi gõ bất kỳ ký tự nào nó cũng sẽ hiện hết các mã có chứa ký tự đó.
- Thứ 2: em nhập theo chiều dọc ạ, em nhập mã liên tục luôn sau đó mới nhập số lượng vào sau.
Code của anh chạy rất tốt rồi, chỉ cần chỉnh lại lỗi em phản ánh nữa là tuyệt vời.
Anh Phúc xem giúp em nha.
 
Upvote 0
Hi Anh Phúc
- Thứ 1: Em chỉ cần giá trị của 1 cột update vào combox thôi, nhưng yêu cầu là khi gõ bất kỳ ký tự nào nó cũng sẽ hiện hết các mã có chứa ký tự đó.
- Thứ 2: em nhập theo chiều dọc ạ, em nhập mã liên tục luôn sau đó mới nhập số lượng vào sau.
Code của anh chạy rất tốt rồi, chỉ cần chỉnh lại lỗi em phản ánh nữa là tuyệt vời.
Anh Phúc xem giúp em nha.
- ở #2 có share 3 link mà bạn chọn trúng file đầu tiên "mình vọc code đó" --=0,
- mình đã chọn lại 1 code "khá chuẩn mực" và có thể áp dụng cho nhiều trường hợp,
- bạn tải file đính kèm về xem nhé !

'----
file mới nhất --> #17
 
Lần chỉnh sửa cuối:
Upvote 0
- ở #2 có share 3 link mà bạn chọn trúng file đầu tiên "mình vọc code đó" --=0,
- mình đã chọn lại 1 code "khá chuẩn mực" và có thể áp dụng cho nhiều trường hợp,
- bạn tải file đính kèm về xem nhé !
Cảm ơn anh Phúc nha, file của anh hay quá xá. --=0

Nhưng hiện tại em chỉ cần cái combo box để search mã hàng, combo box tại cột B và cột cần add giá trị từ combo box là cột C, giống như file lúc trước vậy đó. Để em chỉnh lại code rồi post lên anh kiểm tra giúp em nha.

Về phần User Form rất hay nhưng hơi bị thiếu, e có gửi cái hình yêu cầu nếu dùng User Form. Anh xem giúp em như thế có khả thi không nha. Nếu dùng User Form thì cột cần add mã hàng là cột B và cột số lượng là cột G.

Lại làm khó cho anh nữa rồi. hjhjhj.

2014-05-17_224702.jpg
 
Upvote 0
Về phần User Form rất hay nhưng hơi bị thiếu, e có gửi cái hình yêu cầu nếu dùng User Form. Anh xem giúp em như thế có khả thi không nha. Nếu dùng User Form thì cột cần add mã hàng là cột B và cột số lượng là cột G.
yêu cầu này của bạn hầu như đã được đáp ứng -\\/.

'---
file mới nhất ---> #17
 
Lần chỉnh sửa cuối:
Upvote 0
yêu cầu này của bạn hầu như đã được đáp ứng -\\/.
Hi Anh Phúc,

Chắc em bỏ cái combo box chuyển qua xài user form thôi, hay quá.

Nhưng anh giúp e chỉnh 1 xíu nữa nha, gần xong rồi.

- Phần Seach mã hàng, phần = 1 mà ấn Enter như vậy thì ok, nhưng >1 đó anh, phải dùng chuột để double lick như vậy ko tiện chút nào, vì em muốn dùng phím hết luôn. Khi gõ vào từ nó filter ra bên dưới các mã hàng gần giống thì mình sẽ bấm phím xuống để chuyển sang listbox chọn mã mình cần, chọn xong ấn Enter thì nó nhảy qua cột Số lượng >>>>>.

- Bên sheet 1, cột D em có thêm 1 cột thông tin chi tiết của sản phẩm, và em muốn hiển thị lên Form luôn ( như trong hình em gửi. Ở phần thông tin chi tiết trên Form: khi mình đang chọn sản phẩm bên Listbox, mình chọn sản phẩm nào thì nó hiển thị thông tin chi tiết của sản phầm đó. khi chọn xong mã hàng và ấn Enter thì Tên chủng loại và chi tiết đều hiển thị.

- Sheet user Form, Double click vào cột B để hiện User Form nhưng khi Add tên chủng loại thì là vào cột C chứ không phải cột B( cột B chỉ để chạy User Form thôi)

2014-05-18_131450.jpg
 

File đính kèm

Upvote 0
- Phần Seach mã hàng, phần = 1 mà ấn Enter như vậy thì ok, nhưng >1 đó anh, phải dùng chuột để double lick như vậy ko tiện chút nào, vì em muốn dùng phím hết luôn. Khi gõ vào từ nó filter ra bên dưới các mã hàng gần giống thì mình sẽ bấm phím xuống để chuyển sang listbox chọn mã mình cần, chọn xong ấn Enter thì nó nhảy qua cột Số lượng >>>>>.
thật ra mình đã cài sẵn ở file đó nhưng chưa có hướng dẫn bạn --=0, khi bạn chọn phím lên hoặc xuống trong vùng Listbox và Enter thì nó sẽ lấy giá trị mà bạn đang chọn sang 2 textbox kia.

- Bên sheet 1, cột D em có thêm 1 cột thông tin chi tiết của sản phẩm, và em muốn hiển thị lên Form luôn ( như trong hình em gửi. Ở phần thông tin chi tiết trên Form: khi mình đang chọn sản phẩm bên Listbox, mình chọn sản phẩm nào thì nó hiển thị thông tin chi tiết của sản phầm đó. khi chọn xong mã hàng và ấn Enter thì Tên chủng loại và chi tiết đều hiển thị.

- Sheet user Form, Double click vào cột B để hiện User Form nhưng khi Add tên chủng loại thì là vào cột C chứ không phải cột B( cột B chỉ để chạy User Form thôi)
vấn đề này mình đã tính trước và có thể thêm bao nhiêu cột cũng được -\\/., bạn tải file về xem sao nhé !
Form.jpg
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
thật ra mình đã cài sẵn ở file đó nhưng chưa có hướng dẫn bạn --=0, khi bạn chọn phím lên hoặc xuống trong vùng Listbox và Enter thì nó sẽ lấy giá trị mà bạn đang chọn sang 2 textbox kia.


vấn đề này mình đã tính trước và có thể thêm bao nhiêu cột cũng được -\\/., bạn tải file về xem sao nhé !

Hình như là hoàn hảo quá rồi. Thanks anh rất nhiều. để em đưa vào Form của em, có gì em sẽ phản hồi lại anh nha.

Form e còn nhiều cái để hỏi lắm. hjhj. vì trước kia dùng công thức bây giờ muốn chuyển sang VBA cho nó nhẹ, vì dữ liệu nhiều quá.
 
Upvote 0
Còn 1 chổ chưa được anh Phúc ơi.

phần thông tin chi tiết đó. em muốn là khi mình đang di chuyển lên xuống để chọn mã hàng thì mỗi khi đang ở mã hàng nào thì nó sẽ hiển thị thông tin mã hàng đó lên để mình xem trước(mục đích là muốn xem thông tin về mã hàng đó như thế nào trước khi nhấn Enter )
 
Upvote 0
Còn 1 chổ chưa được anh Phúc ơi.
phần thông tin chi tiết đó. em muốn là khi mình đang di chuyển lên xuống để chọn mã hàng thì mỗi khi đang ở mã hàng nào thì nó sẽ hiển thị thông tin mã hàng đó lên để mình xem trước(mục đích là muốn xem thông tin về mã hàng đó như thế nào trước khi nhấn Enter )
ah,
bạn muốn xem thông tin của cột thứ 2 (cột Chi Tiết), khi cho hiển thị nội dung lên Textbox kia thì mất công liếc qua liếc về rất mệt.

hiện tại Form của bạn còn rất rộng, bạn làm theo cách sau:
- trên Listbox bạn điều chỉnh lại chiều rộng của nó.
- tại UserForm_Initialize, có thể phải điều chỉnh thêm dòng này : .ColumnWidths = "210,1" (210 --> cột 1, còn con số 1 phía sau ko quan trọng vì nó phụ thuộc vào cột thứ 1)
'-----------
(bạn có thể tải lại file mới ở #17 nhé)
 
Lần chỉnh sửa cuối:
Upvote 0
ah,
bạn muốn xem thông tin của cột thứ 2 (cột Chi Tiết), khi cho hiển thị nội dung lên Textbox kia thì mất công liếc qua liếc về rất mệt.

hiện tại Form của bạn còn rất rộng, bạn làm theo cách sau:
- trên Listbox bạn điều chỉnh lại chiều rộng của nó.
- tại UserForm_Initialize, có thể phải điều chỉnh thêm dòng này : .ColumnWidths = "210,1" (210 --> cột 1, còn con số 1 phía sau ko quan trọng vì nó phụ thuộc vào cột thứ 1)
View attachment 121699

(bạn có thể tải lại file mới ở #18 nhé)

Vâng, rất đúng với ý em,hjjh
Em chỉ còn 1 yêu cầu nữa, chắc là cuối cùng. hjhj.

Anh Phúc chỉnh giúp em, nếu dấu nháy đang ở khung Search mà mình chưa nhập gì cả, khi ấn Enter thì bên excel sẽ nhảy xuống dòng tiếp theo.
(vì trong Form của em giá trị nhập vào có thể cách nhau vài dòng )

Thanks Anh rất nhiều.
 
Upvote 0
Vâng, rất đúng với ý em,hjjh
Em chỉ còn 1 yêu cầu nữa, chắc là cuối cùng. hjhj.
Anh Phúc chỉnh giúp em, nếu dấu nháy đang ở khung Search mà mình chưa nhập gì cả, khi ấn Enter thì bên excel sẽ nhảy xuống dòng tiếp theo.
(vì trong Form của em giá trị nhập vào có thể cách nhau vài dòng )
Thanks Anh rất nhiều.
đến bài này thì phải nói rằng "tránh vỏ dưa thì gặp phải vỏ dừa" --=0, và có phát sinh thêm 2 trường hợp (nếu vị trí Search bị bỏ trống):
1. khi dùng mũi tên lên (UP ARROW) thì ntn?
2. có cho phép chọn chuột trực tiếp ngay trên sheet trong khi Form vẫn show (hiện tại Form đó có Show modal = True --> ko thể đặt chuột vào sheet được) ví dụ: Activecell tại B5 muốn chọn nhanh đến B20 thì dùng chuột sẽ nhanh hơn là Enter từng cái 1.
 
Lần chỉnh sửa cuối:
Upvote 0
bạn muốn cài đặt hết các trường hợp trên hay chỉ lựa chọn 1 trong số đó ?
 
Upvote 0
bạn muốn cài đặt hết các trường hợp trên hay chỉ lựa chọn 1 trong số đó ?
Vâng, tại em thấy ko đưa chuột vào excel được nên mới hỏi Enter, Em lựa chọn mục 2 anh ah. như thế mình sẽ làm việc tự do hơn.

Em đã chỉnh được rồi anh, em đưa Show modal = False là ok.

Thanks Anh nha.

P/s: mà thôi, nếu được thì mình chỉnh xíu cho nó pro luôn, cách nhiều dòng thì dùng chuột, 1 dòng thì trên Form nhấn Enter luôn cho nhanh.
 
Lần chỉnh sửa cuối:
Upvote 0
Anh Phúc ơi, sao e đưa vào Form thì khi chạy lên nó ko có dấu nháy ở tbx_Search vậy anh? Vòng lặp lại sao khi nhấn Enter thì mới có, và trong Form của anh có "CommandButton1.TabIndex = 1" ,nhưng ko biết là button nào, khi em đưa vào Form thì phải xóa nó đi mới chạy được.
 
Upvote 0
Anh Phúc ơi, sao e đưa vào Form thì khi chạy lên nó ko có dấu nháy ở tbx_Search vậy anh? Vòng lặp lại sao khi nhấn Enter thì mới có, và trong Form của anh có "CommandButton1.TabIndex = 1" ,nhưng ko biết là button nào, khi em đưa vào Form thì phải xóa nó đi mới chạy được.
- ở #22 có nói "tránh vỏ dưa thì gặp phải vỏ dừa" còn gì -\\/., mình đang thử với 2 trường hợp trên (Enter và chọn chuột) --> phát sinh khá nhiều thứ, **~**
- còn cái nút "độc đáo" CommandButton1 mình giấu ở bên trong --> bạn nới rộng Form thì sẽ thấy --=0
 
Upvote 0
- ở #22 có nói "tránh vỏ dưa thì gặp phải vỏ dừa" còn gì -\\/., mình đang thử với 2 trường hợp trên (Enter và chọn chuột) --> phát sinh khá nhiều thứ, **~**
- còn cái nút "độc đáo" CommandButton1 mình giấu ở bên trong --> bạn nới rộng Form thì sẽ thấy --=0
đưa Show modal = False chạy ngon. +-+-+-+ . học được thêm e kinh nghiệm. hjhj. em thấy cái button đó hình như ko có tác dụng thì phải.
 
Upvote 0
đưa Show modal = False chạy ngon. +-+-+-+ . học được thêm e kinh nghiệm. hjhj. em thấy cái button đó hình như ko có tác dụng thì phải.
nói về chuyện bẫy lỗi trên Form thì giống như bạn xem fim kiếm hiệp dài tập vậy --=0, bạn add nick Face của mình rồi cùng nghiên cứu nhé, chứ post tới post lui chắc đến sang năm cũng ko xong cái Topic này +-+-+-+

(https://www.facebook.com/phuc.nguyenhuu.7927)
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom