Lập hóa đơn/ phiếu tính tiền bằng pivot table hay data validation? (2 người xem)

  • Thread starter Thread starter Vingrau
  • Ngày gửi Ngày gửi
Liên hệ QC

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

Vingrau

Thành viên mới
Tham gia
5/11/07
Bài viết
5
Được thích
0
Em đã google để tìm cách sử dụng pivot table hoặc data validation nhưng chưa tìm được câu trả lời.

Tình huống là: Công ty em bán n sản phẩm. Em đã nhập một bảng thế này:

Tên sản phẩm_Đơn giá
SP1_________Giá SP1
SP2_________Giá SP1
...___________...
SPn_________Giá SPn

Em muốn lập một bảng Excel dạng drop down list để đơn giản hóa, tránh nhầm lẫn cho người lập hóa đơn hoặc báo giá, như này:

Tên SP__________________Đơn giá_____________________SL___Thành tiền
(Drop down list SP1-SPn)___(Tự động lấy giá trị tương ứng)_-___ /-----

- Vấn đề thứ nhất: Làm sao để cột đơn giá nó tự nhận giá trị tương ứng đúng với sản phẩm đã chọn ở cột 1 (cột sản phẩm)

- Vấn đề còn lại: Cột số lượng em cũng sẽ làm drop down list (từ 1-5 chẳng hạn). Cột thành tiền em sẽ nhân đơn giá với số lượng, sau cùng em cộng tổng thành tiền. Những vấn đề này dễ thôi nếu đã giải quyết được vấn đề thứ nhất.

Mong các bác hướng dẫn giúp.
 
Lần chỉnh sửa cuối:
Em đã google để tìm cách sử dụng pivot table hoặc data validation nhưng chưa tìm được câu trả lời.

Tình huống là: Công ty em bán n sản phẩm. Em đã nhập một bảng thế này:

Tên sản phẩm_Đơn giá
SP1_________Giá SP1
SP2_________Giá SP1
...___________...
SPn_________Giá SPn

Em muốn lập một bảng Excel dạng drop down list để đơn giản hóa, tránh nhầm lẫn cho người lập hóa đơn hoặc báo giá, như này:

Tên SP__________________Đơn giá_____________________SL___Thành tiền
(Drop down list SP1-SPn)___(Tự động lấy giá trị tương ứng)_-___ /-----

- Vấn đề thứ nhất: Làm sao để cột đơn giá nó tự nhận giá trị tương ứng đúng với sản phẩm đã chọn ở cột 1 (cột sản phẩm)

- Vấn đề còn lại: Cột số lượng em cũng sẽ làm drop down list (từ 1-5 chẳng hạn). Cột thành tiền em sẽ nhân đơn giá với số lượng, sau cùng em cộng tổng thành tiền. Những vấn đề này dễ thôi nếu đã giải quyết được vấn đề thứ nhất.

Mong các bác hướng dẫn giúp.

cái này em phải tự thiết kế mẫu hóa đơn và 1 sheet chứa dữ liệu đã nhập và 1 sheet chứa danh sách các sản phẩm kèm giá tiền rồi Upload File lên thì may ra mới có người giúp, chứ nói khơi khơi vầy thì chẳng ai giúp được đâu.
 
Đơn giản mà bác, có điều nếu chưa biết thì mày mò sẽ hơi lâu. Dù sao thì em cũng mò ra rồi, 100% hài lòng.

Tóm lại:


Tên sản phẩm_Đơn giá
SP1_________Giá SP1
SP2_________Giá SP1
...___________...
SPn_________Giá SPn

Cột 1: Tên sản phẩm làm drop down list bằng data validation. Chỉ những sản phẩm có trong list mới lựa chọn được.
Cột 2: Giá sản phẩm tương ứng thì dùng hàm VLOOKUP.

Một số chi tiết khó chịu như: bên cột thành tiền sẽ hiện lỗi #REF hoặc #VALUE hoặc #N/A nếu bên các cột bên trái chọn không đúng, đã có số lượng và đơn giá rồi mà cột trái bị vô tình xóa chẳng hạn ==>> Em dùng thêm hàm IF để loại bỏ.

Cuối cùng em dùng chức năng worksheet protection để tránh việc người thao tác xóa nhầm công thức. Họ chỉ thao tác được ở phần tên sản phẩm và số lượng.

Cả phần số lượng em cũng dùng drop down list.

Worksheet này giờ đây hoàn toàn thao tác bằng chuột, không cần dùng bàn phím, không thể xóa nhầm.

100% satisfied.
 
Theo như đâu bài của bạn, kể ra bạn đưa ra mẫu file thì mọi người sẽ hộ bạn được. Còn đây là mình làm. Chẳng biết có đúng ý bạn không.
 

File đính kèm

Không đúng ý bác ạ. Dù sao thì em cũng đã làm xong phần này rồi, xin gửi file và screenshot để mọi người tham khảo, biết đâu lại có ích cho bác nào:




Tiếp theo em định làm thế này, không biết là có thể dùng các hàm và chức năng có sẵn của Excel không hay là lại phải lập trình VBA, mà em thì chưa biết món này :D

Em muốn làm thêm một nút "CLEAR" phía dưới đơn hàng để sau khi đã giải quyết xong đơn hàng này (đã in ra, đã thu tiền) thì người thao tác bấm nút CLEAR là lập tức Excel sẽ xóa sạch các ô đã điền vào trước đó, gồm có tên sản phẩm và số lượng sản phẩm tương ứng. Coi như là đưa bảng này về trạng thái sẵn sàng nhập liệu cho đơn hàng mới.

Em còn muốn là đồng thời với việc xóa dữ liệu cũ, khi bấm "CLEAR" thì Excel còn đồng thời nhặt hết các giá trị cũ này để cộng dồn vào một sheet khác. Mục đích của việc này là để cho đến cuối ngày em có thể xem tổng kết ở sheet đó xem toàn bộ phiên làm việc đã lập bao nhiêu đơn hàng gồm bao nhiêu sản phẩm 1, sản phẩm n, tổng giá trị thanh toán là bao nhiêu. Nôm na như là tổng kết cuối ngày ý các bác.

Như thế có khả thi không hay là phải lập trình quá khó đối với người chưa biết VBA?
 

File đính kèm

THỬ CÁI CÙI BẮP NÀY COI CÓ DÙNG ĐƯỢC KHÔNG.

HƯỚNG DẪN:
Dùng validation để nhập món vào vùng C4:C11 và số lượng vào vùng E4:E11, sang sheet Theodoi ở cột B Click vào Cell trống, xong sang sheet NhapLieu nhấn nút nhập dữ liệu là hoàn tất việc nhập liệu.
 

File đính kèm

Bác be09 lập trình quá hay, 100% đúng ý em mong muốn và 90% hài lòng :clap:

Những gì em muốn hoàn thiện tiếp (10% kia) là:

- Module này chưa tự tìm được dòng trống gần nhất của bảng trong sheet "Theo dõi" để tránh ghi đè và xoá mất dữ liệu của lần nhập liệu trước;

- Hoặc sau khi nhập liệu sang sheet "Theo dõi" xong thì chương trình phải tự chuyển vị trí hiện tại sang Cell trống gần nhất ở cột B. Hiện nay người dùng phải tự thực hiện thao tác này.

- Ngoài ra em muốn hỏi thêm là trong sheet "Nhập Liệu" có thể làm nhiều hơn 1 bảng nhập dữ liệu không? Lý do là để cho người thao tác có thể làm việc trên nhiều đơn hàng cùng một lúc, mà đơn hàng nào cũng có thể được cộng dồn để tổng kết vào sheet theo dõi. Nếu làm như vậy thì có thể dùng chung module VBA hay phải copy&paste các đoạn code này cho mỗi bảng nhập liệu?
 
Cell trống gần nhất ở cột B của sheet nào em cần nêu rõ, em có thể thiết kế thêm 1 hay nhiều bảng rồi Upload File lên, anh tham khảo rồi tính tiếp.
 
Nhiều bảng là thế này bác ơi, có thể trong sheet nhập liệu có template cho vài đơn hàng chứ không phải chỉ 1. Mỗi đơn hàng đều có nút nhập liệu, cho phép người thao tác có thể làm việc trên vài ba đơn hàng cùng một lúc, xong cái nào thì tổng kết cái đó.



Cell trống gần nhất ở cột B của sheet "Theodoi" là cell này, trong trường hợp này là B6. Sau khi ấn nút "Nhập dữ liệu" ở đơn hàng 1 của sheet "NhapLieu" thì dữ liệu được nhập. Vì đơn hàng 1 chỉ có 2 sản phẩm mà cả form có 8 hàng, có nghĩa là có 6 hàng vẫn được nhập sang sheet "Theodoi" nhưng là 6 hàng trống không có dữ liệu. Em muốn macro nhận ra điều này và vẫn tìm được cell B6 là ô trống gần nhất để làm vị trí hiện thời.

 

File đính kèm

Giải pháp em đưa ra hơi phức tạp, nên tạm thời chưa giải quyết ngay được, đến chúa nhật tới này rảnh thì anh mới nghiên cứu viết code lại theo kiểu khác thì mới giải quyết được vấn đề em đã nêu.
 
Web KT

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

Back
Top Bottom