Hỏi cách tạo combo box thông minh

Liên hệ QC
Chào bạn quanghai1969,mình rất vui được bạn quay lại giúp mình, hằng ngày giá hàng hóa luôn thay đổi có ngày chỉ một hai mặt hàng có lúc đến gần 20 mặt hàng, có cái là giá nguyên thùng có cái là giá lẻ hộp rồi có cái lại có thêm chiếc khấu, thuế....mình phải nhập vào những thông tin đó để qua công thức nắn lại thành 1 giá góc(ở file bang gia đính kèm mình đã cắt bớt các cột phụ đó rồi để cho gọn file và cũng vì lí do tế nhị). Vì vậy mình nghĩ phải dùng cách tìm thủ công từng mặt hàng rồi mới sửa từng cột (tùy theo mặt hàng). Bạn xem có cách nào chu toàn thì giúp mình với.
Mình không hình dung hết bạn cần gì vì bạn không cung cấp đủ thông tin.
Gởi bạn ý tưởng thay giá hàng loạt những mã cần thiết.
Nếu muốn có phương án tốt nhất thì bạn nên cung cấp file thật. Mình nghĩ không ai rảnh mà quan tâm đến cái bạn gọi là lý do tế nhị.
 

File đính kèm

  • Thay gia moi.rar
    34.5 KB · Đọc: 113
Mình không hình dung hết bạn cần gì vì bạn không cung cấp đủ thông tin.
Gởi bạn ý tưởng thay giá hàng loạt những mã cần thiết.
Nếu muốn có phương án tốt nhất thì bạn nên cung cấp file thật. Mình nghĩ không ai rảnh mà quan tâm đến cái bạn gọi là lý do tế nhị.

Ý tưởng của bạn rất hay mình gởi file lên bạn xem giúp nhé
 

File đính kèm

  • bang gia2.xls
    40 KB · Đọc: 43
Bạn quanghai1969 ơi, file mình gởi lên rồi bạn xem có cách nào giúp mình nhé.
 
Xem file có hiểu gì đâu mà giúp. Câu hỏi lúc đầu là 1 đường, giờ file thật là 1 nẻo khác xa quá trời mà.

Không phải khác xa đâu bạn mà là có 2 yêu cầu trong 1 file, mình quên nói cụ thể đấy.
Yêu cầu 1 là yêu cầu chánh mình muốn có một công cụ đơn giãn để tìm nhanh đến đúng mặt hàng cần tìm trong bảng giá(ở Sheet GOC CHUNG) để sữa giá: mình đã nhờ bạn can thiệp vào hộp thoại Find and Replace bạn trả lời không được, bảo mình gởi file lên để tìm giải pháp khác (cụ thể ở mục #49 trang 5). Yêu cầu này bạn nhapmon có giải pháp trợ giúp nhưng vẩn chưa phù hợp với ý mình lắm, đó là chưa làm cho combobox cứ nổi và lướt trên bảng tính giống y như cửa sổ Find and Replace nỗi trên bảng tính trong quá trình tìm kiếm tên hàng, và chưa tạo code cho combobox để khi chỉ cần gỏ hai đến ba ký tự là sổ list chọn mặt hàng giống cách bạn đã tạo cho mình ở file LENH GIAO HANG ( mình đã nêu ở mục #54 trang 6).Nếu không thể thực hiện được thì thôi chuyển qua làm theo cách khác đó là yêu cầu 2.
Yêu cầu thứ 2 xuất phát từ ý tưởng của bạn là sửa giá hàng loạt, ý tưởng này rất hay.
Nhưng do cách nhập giá của mình phức tạp ở chổ không nhập duy nhất ở một cột mà là nhiều cột vì vậy khi thực hiện phương pháp nầy bạn nên tạo một sheet phụ để nhập nháp trước tên các mặt hàng muốn sửa giá gồm:cột MAT HANG,nhap gia,qui ra hop,xuat mua,tang, chiec khau,thue và nên tạo thêm code nhập nhanh tên mặt hàng(code Bạn đã làm cho mình để nhập Tên Khách hàng-Địa điểm giao hàng ở file LENH GIAO HANG), khi thay giá hàng loạt chưa kịp xem giá củ là bao nhiêu để so sánh với giá mới nhập,không biết giá mới nhập là lên giá hay giảm giá, do đó nên có một nơi lưu tạm giá củ của những mặt hàng mới nhập để so sánh giá.
Dòng NHẬP THỬ GIÁ chỉ là để nháp không liên quang đến việc nhập giá.
Tuy 2 yêu cầu nhưng thực chất chỉ là một đó là sửa giá đơn giãn hơn và nhanh hơn. Vậy một lần nữa nhờ bạn xem có cách giải quyết nào không, mình xin chân thành cám ơn bạn.
Chúc bạn cùng gia đình năm mới sức khỏe dồi dào,hạnh phúc và vạn sự như ý.
 
Lần chỉnh sửa cuối:
Bạn quanghai1969 ơi mình trình bày như thế có chổ nào chưa rỏ không sao không thấy bạn giúp mình vậy ?
 
Bạn quanghai1969 ơi mình trình bày như thế có chổ nào chưa rỏ không sao không thấy bạn giúp mình vậy ?
Vì không hiểu nổi những gì bạn mô tả nên chịu thua. Viết càng nhiều càng thêm khó hiểu. Tốt nhất gởi dữ liệu. Minh hoạ dữ liệu vào và kết quả đầu ra. Có cái gì và nó sẽ thành cái gì. Cụ thể trên sheet thì may ra có người giúp. Mình thì hết khả năng rồi. Cố đợi các cao thủ khác nha. Nếu không ai giúp thì nên xem lại cách bạn mô tả nhé.
 
Mình trình bài dài là làm theo ý này đây :
Bạn còn yêu cầu gì thì suy nghĩ và cung cấp thông tin 1 lần nhé. Code viêt xong sửa lại mệt lắm.
Cung cấp cái file của bạn luôn để mình có thể nhìn thấy du liệu thật của bạn và viết cho đúng yêu cầu.


Mình xin lấy file của bạn QuangHai sửa lại(file mình thường hay nhắc đến) để minh họa nhé, các bạn xem có giúp được thì giúp mình rất cám ơn nếu không giúp mình cũng cám ơn các bạn đã đọc.

Ví dụ đầu tháng không có chương trình khuyến mãi toa hàng mình nhận từ người bán gồm các mặt hàng đều có đơn giá là giá tiền 1 hộp. Như vậy giá hộp này được nhập vào cột nhap gia(sheet GOC CHUNG), khi đó công thức ở cột ketq ti le và công thức ở cột GOC sẻ tính toán qui ra thành giá góc 1 hộp gán ở cột GOC(ví dụ trong sheet GOC CHUNG bạn thấy mặt hàng Basden(ô B18) có giá nhập 37000 vì vậy cột GOC cũng là 37000).
khi nhập giá tôi phải xem mặt hàng trên toa là tên gì( ví dụ tên hàng là Basden ) rồi nhập vào sheet GOC CHUNG bằng thao tác bấm control-F để hiện cửa sổ Find and Replace rồi gỏ 3 ký tự đầu tiên của tên hàng(Basden thì gỏ là bas) vào hộp Find what kế đến bấm enter từng cái một( hoặc click nút Find Next) để máy nẫy khung chọn cho đến khi mình thấy đúng tên hàng muốn nhập giá (khung chọn nẫy đến ô chứa tên hàng Basden), xong gỏ 37000 vào ô D18. Nhưng do sheet GOC CHUNG có đến gần 2000 dòng nên để tìm một mặt hàng phải gỏ nhiều lần mất nhiều thời gian và mệt mắt.

Vì vậy mình mong muốn có một công cụ giúp mình đơn giản thao tác tìm tên mặt hàng: chỉ vài thao tác gỏ và chọn là khung chọn đã nẫy ngay đến đúng ô chứa tên mặt hàng mình muốn nhập giá.

Đến giữa tháng có khuyến mãi sẻ kéo theo nhiều mặt hàng thay đổi giá bằng nhiều cách ,mình lấy 2 mặt hàng Barol và Barudon làm ví dụ.
Với Barol nếu mua nguyên thùng(1 thùng có 36 hộp) sẻ được giảm giá xuống 1 thùng còn 900.000(khi xuất hóa đơn không sài đơn giá hộp mà tính đơn giá là giá thùng),còn Barudon nếu mua đúng theo xuất mua thì cứ 30 hộp sẻ được tặng 3 hộp với giá mổi hợp là 50.000 và còn được chiếc khấu thêm 2% nữa. Như vậy mình làm như sau: ở sheet GOC CHUNG mình cũng bấm control -F ra cửa sổ Find and Replace gỏ Bar(để tìm Barol) vào hộp Find what, rồi bấm enter (sheet GOC CHUNG có gần 2000 mặt hàng nên phải bấm enter khá nhiều lần) cho đến khi khung chọn nẫy đúng ô có tên Barol(ở ô B16 : tức đã tìm thấy mặt hàng Barol ) và mình nhập giá như thế này: gỏ 900000 vào ô C16, gỏ 36 vào ô I16 như vậy công thức ở N16 và D16 chuyển đổi qui giá thùng thành giá góc 1 hộp gán vào ô D16 là 25000, xong tiếp tục tương tự gỏ Bar(để tìm Barudon) vào hộp Find what, rồi bấm enter cho máy tìm đến khi khung chọn nẫy đúng ô có tên Barol(ở ô B17) và mình nhập giá như thế này :gỏ 50000 vào ô C17, gỏ 30 vào ô J17, gỏ 3 vào ô K17 , gỏ 2 vào ô L17, công thức ô N17 và D17 chuyển giá xuất mua thành giá góc 1 hộp gán vào ô D17 là 44500.

Vì vậy mình mong muốn có một công cụ giúp mình đơn giản bớt đi thao tác tìm tên mặt hàng: chỉ vài thao tác gỏ và chọn là khung chọn đã nẫy ngay đến đúng ô chứa tên mặt hàng mình muốn nhập giá. Cụ thể ví dụ muốn tìm mặt hàng Barudon, ta chỉ cần gỏ b vào công cụ tìm kiếm là xổ ra danh sách các mặt hàng có chử b và cả chử B (nếu có thể: để đừng bị gàn buộc bởi cách gỏ chử thường hay chử hoa và chử có dấu với không dấu như gỏ e vẫn hiện ra e cã ê luôn)cho dù chử b có ở đầu ở giửa ở cuối từ hay ở từ thứ 2 hay từ thứ 3...miển là có chử b (hay chử B) thì sẻ được liệt kê ra hết vào list cho mình chọn lựa. Nếu danh sách xổ ra dài quá chưa thấy tên Barudon, ta gỏ tiếp chử a (tức là gỏ ba ) thì danh sách xổ ra được chọn lọc lại chỉ còn những tên có gán ba (và cả bA Ba, BA), nếu vẫn chưa thấy thì gỏ tiếp chử r (tức là gỏ bar) danh sách xổ ra tiếp tục chọn lọc rút gọn lần nữa theo nguyên tắc trên, đến đây mình nghĩ là cái tên Barudon sẻ có trong danh sách xổ ra rồi, tiếp tục ta bấm phím xuống(phím bấm điều khiển lên, xuống, qua trái, qua phải trên bàn phím đó), để dấu chọn chạy trên danh sách xổ ra đến cái tên Barudon, tiếp tục bấm phím enter rồi enter nữa là khung chọn ô sẻ nẫy đến đúng ngay ô có chứa tên Barudon.

Mình hy vọng lần này các bạn sẻ hiểu biết mình đang cần gì , đâu là đầu vào, đâu là đầu ra nhé. Mình đã cạn từ cạn ý rồi.
Nếu mong muốn của mình được đáp ứng thì đến đây củng đủ rồi.



Nếu các bạn đọc ở trên hiểu được rồi thì mới xem tiếp phần dưới đây nhé vì ở trên là mình nhập giá theo cách thủ công từng mặt hàng, còn phần này mình yêu cầu dựa trên ý tưởng của bạn QuangHai nó vừa hay hơn cũng vừa phức tạp hơn đừng trách mình viết không hiểu nhe. Ý tưởng của bạn QuangHai là nhập giá hàng loạt nhiều mặt hàng cùng 1 lúc. Ở phần này mình lấy file của bạn QuangHai có tạo sẳn code phối hợp cùng textbox và listbox sửa đổi lại giao diện hàng cột cho phù hợp với bảng giá của mình bên sheet ThayGia.

Ở cột B vùng màu xanh lá cây có listbox-textbox và code mà mình cứ nhắc đến hoài đó( lưu ý khi gỏ chử có phân biệt chử hoa và chử thường nhé),ví dụ khi click(hoặc dời khung chọn)đến ô B2-->xuất hiện textbox-listbox, gỏ A ở ô B2(tức textbox) list xổ ra những tên mặt hàng có trong danh sách của cột B(cột MAT HANG ở sheet GOC CHUNG) gồm những tên có chử A, tiếp tục gỏ c list sẻ thu gọn lại còn những tên có Ac(do mình muốn thay giá mặt hàng Acnotin 10)mình thấy có tên Acnotin 10 trong list rồi, tiếp tục bấm phím điều khiển chạy sang trái để chọn tên này, xong bấm enter thế là tên Acnotin 10 sẻ được nhập vào ô B2, tiếp tục nhập các số liệu còn lại là 10000 ở cột nhap gia, 10 ở cột xuat mua, 1 ở cột tang, 2 ở cột thue.(giống như trong sheet ThayGia đang có)
Tương tự bây giờ mình muốn thay giá mặt hàng Acylovir 400, ở ô B3 mình chỉ cần gỏ Ac là củng đủ thấy mặt hàng này, nếu gỏ thêm chử y(tức là gỏ Acy) thì list xổ ra càn gọn lại để cho mình chọn, tiếp tục bấm phím sang trái, rồi phím chạy xuống khi thấy dòng chọn chạy đến hàng có tên Acylovir 400 thì bấm enter thế là tên này sẻ nhập vào ô luôn, nhập tiếp các số liệu 50000 ,5 như trong bảng. xong bấm nút Thay Gia.

Yêu cầu lúc nầy là nút Thay Gia được viết code sao cho khi bấm nút Thay Gia tên các mặt hàng vừa nhập và các số liệu tương ứng với nó được tự động dò tìm tên mặt hàng trên cột MAT HANG của sheet GOC CHUNG để gắn các số liệu vào đúng vị trí tương ứng và tô màu vàng các ô vừa mới nhập như mình đã minh họa ở sheet GOC CHUNG,đồng thời tự động hiển thị sheet GOC CHUNG luôn(nghĩa đang ở sheet ThayGia thì nhãy qua sheet GOC CHUNG),trường hợp nếu lúc nhập tên hàng lở bị sai(do gỏ bị sai sót mà mình không hay) thì sẻ báo lổi không tìm thấy tên mặt hàng bị nhập sai đó .

Sau khi kiểm tra quan sát xem các số liệu đã nhập chính xác đúng số liệu và đúng vị trí hết thì ta bấm nút Xoa Mau
Yêu cầu ở nút Xoa Mau là thực hiện lệnh: chỉ xóa các màu vàng do nhập tự động tạo ra chứ không xóa các định dạng đang có sẳng như: màu chử và số,định dạng dấu " , " (ví dụ: 50000 sẻ là 50,000)...

Như vậy là yêu cầu của mình đã được viết lại rất kỷ rồi, rất mong các bạn xem đưa ra phương án tốt nhất và giúp mình nhé. mình rất cám ơn các bạn.

Trong sheet GOC CHUNG ở cột MAT HANG mình có gán vài tên người và tên địa danh làm ví dụ để đa dạng hóa tên hàng, kiểu chử có dấu và không dấu, đồng thời cho các bạn test thử cái hay của code phối hợp textbox-listbox của bạn QuangHai viết. Các bạn thử gỏ chử vào vùng ô màu xanh (sheet ThayGia cột MAT HANG) chử e xem --> xổ list có cả tên có gán e và cả tên có gán chử ê, gỏ a -->list có cả các tên có gán chử a, â, ạ,...
 

File đính kèm

  • ban gia3.xls
    75.5 KB · Đọc: 69
Lần chỉnh sửa cuối:
Em chào Anh Quanghai1969! Anh ơi khi em nhập vào list box các danh sách hiện lên. Do cột hẹp mà chữ thì dịch sang lề bên phải khoảng 2 ký tự nên dễ ko nhìn thấy hết chữ. Em muốn chữ nó sát sang lề bên trái hết cỡ. Thì có cách nào ko Anh. Mong Anh chỉ giúp Em. Cảm ơn Anh nhiều ạ!
 

File đính kèm

  • GPE.jpg
    GPE.jpg
    18.4 KB · Đọc: 310
Em chào Anh Quanghai1969! Anh ơi khi em nhập vào list box các danh sách hiện lên. Do cột hẹp mà chữ thì dịch sang lề bên phải khoảng 2 ký tự nên dễ ko nhìn thấy hết chữ. Em muốn chữ nó sát sang lề bên trái hết cỡ. Thì có cách nào ko Anh. Mong Anh chỉ giúp Em. Cảm ơn Anh nhiều ạ!
Thì bạn kéo cái cột ra rộng thêm 2 ký tự nữa đi. Sao hà tiện thế. Cái listbox nó đã canh sát lề bên trái rồi đấy.
 
Vậy hả Anh. hihi... Em tưởng còn cho nó sát thêm được. Cảm ơn Anh nhé!
 
Chào anh quanghai1969 và các bạn
Em đang tìm hiểu về combo box và đã đọc qua topic "tạo combo box thông minh", em rất thích nhưng về VBA thì em không biết gì cả. Em có 1 file nhỏ rất cần ứng dụng của anh quanghai1969, em xin up lên đây mong anh và các bạn giúp. Em xin cám ơn.
 

File đính kèm

  • combo box.xlsx
    10.9 KB · Đọc: 33
Chào anh quanghai1969 và các bạn
Em đang tìm hiểu về combo box và đã đọc qua topic "tạo combo box thông minh", em rất thích nhưng về VBA thì em không biết gì cả. Em có 1 file nhỏ rất cần ứng dụng của anh quanghai1969, em xin up lên đây mong anh và các bạn giúp. Em xin cám ơn.
Tên KH trùng như thế thì làm sao biết chọn cái nào là cái nào???
 
Mình có thêm điều kiện lọc mã trùng được không anh quanghai1969.Còn không thì em sẽ tạo thêm cột phụ lọc ra danh sách mã khách hàng và tên khách hàng (tên nhân viên có thể thay đổi theo thời điểm nên em xin bỏ qua). em post lại file. Mong anh giúp đỡ
 

File đính kèm

  • combo box.xlsx
    14.2 KB · Đọc: 44
Mình có thêm điều kiện lọc mã trùng được không anh quanghai1969.Còn không thì em sẽ tạo thêm cột phụ lọc ra danh sách mã khách hàng và tên khách hàng (tên nhân viên có thể thay đổi theo thời điểm nên em xin bỏ qua). em post lại file. Mong anh giúp đỡ

Bạn làm thế không được. Bạn nhập tên KH rồi "bắt" suy ra mã KH là không được. Nếu có 2 KH cùng tên và khác mã (mã dĩ nhiên là duy nhất), vd "Nguyễn Anh" - M1234, "Nguyễn Anh" - M5678 thì khi gõ "Nguyễn Anh" thì chọn mã nào?
Bạn phải: Nhập mã KH rồi suy ra tên KH.
 
Dạ cám ơn góp ý của anh. nhưng đối với dữ liệu của em tên và mã khách hàng đều là duy nhất ạ. Nếu được anh giúp em tìm tên khách hàng thôi cũng được ạ. Em cám ơn anh nhiều
 
Dạ cám ơn góp ý của anh. nhưng đối với dữ liệu của em tên và mã khách hàng đều là duy nhất ạ. Nếu được anh giúp em tìm tên khách hàng thôi cũng được ạ. Em cám ơn anh nhiều

Bạn ơi, chưa bao giờ chắc chắn được rằng tên là duy nhất, tại thời điểm này lượng nhân sự sẽ không trùng, nhưng thời điểm khác thì sẽ trùng. Vì thế, chỉ có mã số là không trùng được thôi.

Chỉ là sự góp ý, chứ việc gõ tên rồi cho ra mã, tôi nghĩ hàm Match, Index hay Vlookup đều có thể đáp ứng điều kiện của bạn mà không cần dùng đến code.
 
Lần chỉnh sửa cuối:
Không trùng đâu anh Hoàng Trọng Nghĩa. Vì dữ liệu mã khách hàng và tên khách hàng bên em tạo là duy nhất (chỉ có tên nhân viên bán hàng là có thể thay đổi thôi). Mã kh được mã hóa bằng ký tự, nếu tìm theo mã thì lâu lắm và cũng không biết mã đó là khách hàng nào.
 
Không trùng đâu anh Hoàng Trọng Nghĩa. Vì dữ liệu mã khách hàng và tên khách hàng bên em tạo là duy nhất (chỉ có tên nhân viên bán hàng là có thể thay đổi thôi). Mã kh được mã hóa bằng ký tự, nếu tìm theo mã thì lâu lắm và cũng không biết mã đó là khách hàng nào.

Ngay cái sheet Phantich, tại ô B2 bạn copy công thức này vào:

Mã:
=IF(C2="","",INDEX('data goc'!$C$3:$C$21,MATCH(C2,'data goc'!$D$3:$D$21,0)))

Thế là xong!
 
Oh không phải vậy đâu anh Trọng Nghĩa ơi. Em đang làm 1 combo box tại ô C2, combo box này để tìm tên khách hàng theo cách mà anh quanghai1969 trình bày tại topic này (đánh 1 text box nó sẽ list ra tên khách hàng chứa text mình vừa nhập). sau khi đã chọn được khách hàng thì nó sẽ kết xuất ra mã kh tương ứng tại ô B2.
 
Web KT

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

Back
Top Bottom