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, â, ạ,...