Tạo tệp tin Báo giá với VBA (1 người xem)

Liên hệ QC

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

nguyendinhtutw

Thành viên chính thức
Tham gia
17/4/17
Bài viết
73
Được thích
3
Giới tính
Nam
Thưa các anh/ chị GPE,
Công việc của em hiện tại là làm báo giá và gửi tới khách hàng, mỗi khách hàng khác nhau thì lại có một đơn giá khác nhau.
Vấn đề ở đây là khi phát sinh một báo giá mới, em muốn tìm lại mức giá trước đây đã báo cho một hoặc một vài đơn vị khác (hiện tại đã lên đến số lượng rất nhiều) để áp dụng/ hoặc tham khảo để đưa vào báo giá mới này. Hiện tại cơ sở dữ liệu báo giá đã tương đối lớn, cộng với số lượng báo giá phải lập ngày càng nhiều trong khi thời gian có hạn nên em mong muốn được anh/chị GPE giúp đỡ để công tác này được giải quyết tốt hơn.
Đính kèm sau đây là tệp tin mẫu của em, trong đó đã nêu các giải thích và mong muốn cần làm, rất mong nhận được sự trợ giúp của anh/chị GPE.
Em xin chân thành cảm ơn.
Trân trọng,
 

File đính kèm

Em mong nhận được sự giúp đỡ của các anh/chị GPE ạ, em xin cảm ơn.
 
Upvote 0
Thấy hay nhưng tôi cũng chỉ dám gãi gãi tí thôi.
Vấn đề ở đây là khi phát sinh một báo giá mới, em muốn ...
thế thì trong sheet CSDL của bạn phải có cột "ngày định giá" để biết đâu là giá cũ, giá mới.

Hỏi thêm, cũng trong sheet CSDL , các cột E - I , ví dụ cột "Giá Novaland" là giá do Novaland báo ra (người bán là Novaland đề nghị) hay giá báo cho Novaland (Novaland là người thuê/mua)
 
Upvote 0
Thấy hay nhưng tôi cũng chỉ dám gãi gãi tí thôi.

thế thì trong sheet CSDL của bạn phải có cột "ngày định giá" để biết đâu là giá cũ, giá mới.

Hỏi thêm, cũng trong sheet CSDL , các cột E - I , ví dụ cột "Giá Novaland" là giá do Novaland báo ra (người bán là Novaland đề nghị) hay giá báo cho Novaland (Novaland là người thuê/mua)
Dạ đó là giá báo cho Novaland (novaland thuê dịch vụ bên em) đó ạ
Giá báo cho 01 khách hàng thường không đổi theo thời gian ngắn hạn đâu ạ, nếu có thay đổi thì em sẽ chỉnh sửa bằng tay.
Ví dụ: Khi báo giá cho khách hàng A mới, ở hạng mục khoan, sếp yêu cầu lấy giá khoan đã báo giá cho Novaland để áp dụng vào báo giá này, thì lúc đó mong muốn của em là truy xuất nhanh nhất
 
Upvote 0
Như vậy, có phải
Bước 1: Bấm chọn đơn giá -> chọn 1 trong các đơn giá báo cho các đơn vị ở trang "CSDL"
là chọn "Giá Novaland", "Giá Coteccons", " Giá Shimizu", " Giá PTSC",...

hỏi thêm: trong bức ảnh có trong sheet BQ, có các cột "Chọn", Mã, Tên, đơn vị, vật liệu, nhân công...
Tức là bạn đã có phần mềm để chạy bước 2. Phần mềm đó chạy trên nền gì (ví dụ Access, Excel, My SQL...).
Nếu trên Excel thì bạn phải gửi đủ dữ liệu. Còn không thì cũng nêu rõ tên để người biết giúp.

À tôi thích bài số 4 vì biết rằng bạn có xem lại bài viết để kịp trao đổi.
Tôi lại bỏ thích rồi
 
Lần chỉnh sửa cuối:
Upvote 0
Như vậy, có phải
Bước 1: Bấm chọn đơn giá -> chọn 1 trong các đơn giá báo cho các đơn vị ở trang "CSDL"
là chọn "Giá Novaland", "Giá Coteccons", " Giá Shimizu", " Giá PTSC",...

hỏi thêm: trong bức ảnh có trong sheet BQ, có các cột "Chọn", Mã, Tên, đơn vị, vật liệu, nhân công...
Tức là bạn đã có phần mềm để chạy bước 2. Phần mềm đó chạy trên nền gì (ví dụ Access, Excel, My SQL...).
Nếu trên Excel thì bạn phải gửi đủ dữ liệu. Còn không thì cũng nêu rõ tên để người biết giúp.

À tôi thích bài số 4 vì biết rằng bạn có xem lại bài viết để kịp trao đổi.
Tôi lại bỏ thích rồi
Bước 1: đúng như @haonlh nói rồi ạ.
Bước 2: hình đó chỉ là để minh họa cho ý định của em thôi ạ, tức là khi gõ 1 từ khóa nào đó vào ô thuộc cột "Tên hạng mục" thì sẽ hiện ra một danh sách các hạng mục có từ khóa đó (các hạng mục này được lấy từ cột "Tên hạng mục" ở bên trang "CSDL") để em lựa chọn ạ.
Em xin lỗi vì đã phản hồi muộn, do cuối tuần vừa rồi phòng làm việc của em phải sắp xếp lại đồ đạc do lắp thêm thiết bị mới.
Mong nhận được thêm sự trợ giúp từ @haonlh và các thành viên khác của GPE ạ.
 
Upvote 0
Tính cải tiến một chút, xong thấy còn vướng 1 vài chỗ nên tôi làm theo dữ liệu có sẵn của bạn.
Hiện chưa xong nhưng sẽ dùng sự kiện. Có các bước sau
Bước 1. Chọn xong đơn giá thì sẽ chép toàn bộ dữ liệu của CSDL của đơn vị tương ứng sang sheet BQ.
Bước 2. Hoặc là
+ Gõ từ khóa vào ô hạng mục , cột C (ví dụ gõ từ "khoan") thì sẽ lọc các hạng mục có từ "khoan" trong đó để lựa chọn.
+ Nhập số vô cột khối lượng (cột E)
Chú ý là bước 1 hiện mọi hạng mục có đơn giá dương. Bước 2 chỉ hiện một số hạng mục theo nội dung nhập vô, và (chữ "và" theo nghĩa OR) các hạng mục có cột khối lượng >0.
Nếu bước 2 nhập từ không có trong hạng mục (ví dụ "zz") thì hiện lại mọi hạng mục.
Bước 3. Nhập chữ "xong" vô cột C thì chương trình ẩn mọi dòng có cột khối lượng <=0 và tổng hợp 5 số liệu cuối cùng.
Chú ý, nếu đã làm bước 3 thì vẫn làm lại bước 2.

Tạm thế. Có thể mai xong. Nhưng phải có phản hồi mới làm :D
 
Upvote 0
Tính cải tiến một chút, xong thấy còn vướng 1 vài chỗ nên tôi làm theo dữ liệu có sẵn của bạn.
Hiện chưa xong nhưng sẽ dùng sự kiện. Có các bước sau
Bước 1. Chọn xong đơn giá thì sẽ chép toàn bộ dữ liệu của CSDL của đơn vị tương ứng sang sheet BQ.
Bước 2. Hoặc là
+ Gõ từ khóa vào ô hạng mục , cột C (ví dụ gõ từ "khoan") thì sẽ lọc các hạng mục có từ "khoan" trong đó để lựa chọn.
+ Nhập số vô cột khối lượng (cột E)
Chú ý là bước 1 hiện mọi hạng mục có đơn giá dương. Bước 2 chỉ hiện một số hạng mục theo nội dung nhập vô, và (chữ "và" theo nghĩa OR) các hạng mục có cột khối lượng >0.
Nếu bước 2 nhập từ không có trong hạng mục (ví dụ "zz") thì hiện lại mọi hạng mục.
Bước 3. Nhập chữ "xong" vô cột C thì chương trình ẩn mọi dòng có cột khối lượng <=0 và tổng hợp 5 số liệu cuối cùng.
Chú ý, nếu đã làm bước 3 thì vẫn làm lại bước 2.

Tạm thế. Có thể mai xong. Nhưng phải có phản hồi mới làm :D
Em cảm ơn @haonlh, có thể đơn giản hơn ở Bước 3 được không ạ? Ví dụ như ban đầu ở trang BQ chỉ để khoảng 10 dòng trống để nhập dữ liệu, nếu nhập đến dòng thứ 9 thì sẽ tự động thêm 1 dòng nữa ạ, mong @haonlh xem xét. Em xin cảm ơn!
 
Upvote 0
Thế là không đơn giản hơn đâu
Tuy nhiên không có phản hồi lớn.

Tôi cũng sẽ xem xét cải tiến thêm các bước trên.
 
Upvote 0
Đại để sử dụng 2 sự kiện
- Chọn sheet khác thì khi chọn lại sheet BQ sẽ cập nhật lại dữ liệu vì e rằng bạn sang sheet kia và sửa chữa nó. Riêng cột khối lượng không đổi nhưng cũng nên cẩn thận vì số của hàng này có thể lẫn sang hàng khác nếu bạn đổi hàng các tên sản phẩm (ví dụ sort). Cũng có thể cải tiến thêm để không bị lẫn ...

- Trên sheet BQ, có thể
Bước 1. Chọn xong đơn giá thì sẽ
không chép
toàn bộ dữ liệu của CSDL của đơn vị tương ứng sang sheet BQ.
mà chỉ chép cột đơn giá
Bước 2. Hoặc là
+ Gõ từ khóa vào ô hạng mục , cột C (ví dụ gõ từ "khoan") thì sẽ lọc các hạng mục có từ "khoan" trong đó để lựa chọn.
Có thể nhập đè vô nội dung có trong cột C vì chương trình sẽ Undo

Đọc chỉ dẫn thêm trong file.
 

File đính kèm

Upvote 0
làm xong từ sáng. Nhưng đính kèm xong file thì cứ tưởng là đã gửi và đóng GPE. Giờ mở ra vấn đó nên mới gửi.
 
Upvote 0
Em cảm ơn @haonlh, sau khi thử file, em có một số ý kiến như sau:
- Khi gõ từ khóa vào ô hạng mục , cột D (ví dụ gõ từ "khoan") thì không thấy lọc các hạng mục có từ "khoan" trong đó để lựa chọn
- Việc tự động đánh số thứ tự có vẻ phức tạp, em xin đề xuất được đánh số thứ tự bằng tay, vì có thể thực tế sẽ có nhiều hạng mục, trong đó lại có các hạng mục con.
- Khi chọn nội dung của ô I5 xong thì toàn bộ các hạng mục đã được cập nhật vào sheet "BQ", em mong muốn là sau khi em nhập xong nội dung vào một ô thuộc cột D thì việc cập nhật chỉ tiến hành với dòng có chứa ô đó.
- Chưa tính đến trường hợp em muốn lấy đơn giá của 02 hạng mục khác nhau của 02 đơn vị khác nhau. Ví dụ: lấy giá khoan (mã KH001) của Novaland và lấy giá ống inclinometer (mã ICL001) của Coteccons. Ở file của @haonlh thì khi thay đổi ô I5 thì đơn giá đã cập nhật ở cột G cũng bị thay đổi theo. Em mong muốn đơn giá đã cập nhật vào cột G của sheet "BQ" sẽ không thay đổi khi em thay đổi nội dung ở ô I5

Trên đây là một số ý kiến của em, mong @haonlh và anh/chị GPE giúp đỡ.
Em xin cảm ơn ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
rất sơ xuất. Đã chỉnh sửa. Hãy lấy file về.
- Khi gõ từ khóa vào ô hạng mục , cột D (ví dụ gõ từ "khoan") thì không thấy lọc các hạng mục có từ "khoan" trong đó để lựa chọn
Nếu mục này tốt rồi mới chuyển mục khác
 

File đính kèm

Upvote 0
- Việc tự động đánh số thứ tự có vẻ phức tạp, em xin đề xuất được đánh số thứ tự bằng tay, vì có thể thực tế sẽ có nhiều hạng mục, trong đó lại có các hạng mục con.
Nếu cần, hiện cột B là đánh số gốc. Và ẩn cột A. Nếu muốn bỏ trắng cột A thì xóa ô A8 đi.
 
Upvote 0
Để biết sự kiện của file này có chạy không, có nhiều cách:
1. Bạn mở file và chọn sheet BQ. Rồi nhập vô ô D8 hoặc dưới ô này, có thể trùng ô có dữ liệu, nhập số 1 và gõ enter, rồi nhập số 11 rồi gõ enter. Nếu nội dung thay đổi là sự kiện có chạy
2. Bạn chọn sheet CSDL và nhập thêm 1 dòng, hoặc sửa nội dung 1 dòng , cột tên hạng mục. Rồi chọn sheet BQ. Nếu thấy nội dung thay đổi là sự kiện có chạy.

Bạn đang sống ở tỉnh nào. Có dùng biết liên lạc điện thoại qua zalo hay facebook thì báo. Tôi sẽ cho địa chỉ facebook. Rồi sau nhắn tin qua fb
 
Upvote 0
Web KT

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

Back
Top Bottom