Code vba chuyển bàn, gộp bàn cho quán ăn (1 người xem)

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

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

BoKuDo

Thành viên chính thức
Tham gia
17/12/13
Bài viết
92
Được thích
5
Nghề nghiệp
Kế toán
Chào các bạn trên GPE!
Mình tải được file quản lý bán hàng bằng excel trên một topic ở GPE, đã tùy biến lại cho phù hợp với quán nhỏ của mình.
Tuy nhiên mình gặp một số vấn đề nên nhờ các bạn hỗ trợ mình.

1. Xảy ra thông báo lỗi khi mình nhấn nút "save" trong trường hợp hóa đơn không có dữ liệu. (Như hình mình đính kèm)
2. Các bạn có thể giúp mình code vba chuyển bàn và gộp bàn, mình rất cần 2 chức năng này.

Mình có tùy biến một chút ở trong code theo hình thức mò mẫm, không biết có sai chỗ nào không nữa :)

Mình rất cảm ơn!
 

File đính kèm

  • Untitled.jpg
    Untitled.jpg
    20.2 KB · Đọc: 24
  • 2.jpg
    2.jpg
    20.5 KB · Đọc: 21
  • 3.jpg
    3.jpg
    19.3 KB · Đọc: 25
  • QLBH.xlsm
    QLBH.xlsm
    63 KB · Đọc: 38
Lần chỉnh sửa cuối:
Up lên nhờ các bạn giúp với.
 
Upvote 0
Giúp mình với ........................ :(
 
Upvote 0
Vẫn đang cần sự giúp đỡ từ các bạn.
 
Upvote 0
thấy bạn kêu giúp nhiều quá, để mình xem cho. nhưng đợi 1, 2 hôm nữa, mình đang bận tí. :)
 
Upvote 0
hóng dài cả cổ... hix:)
 
Upvote 0
Chuyển bàn, gộp bàn như thế nào thì chưa biết cách làm bạn ah. Chỉ có cái Save thì thấy lỗi đâu mình sửa chỗ ấy cho bạn thôi.

Bạn sửa sub XoaDL thành
Mã:
Sub XoaDL()
Sheets("Invoice").[B9:E15].ClearContents
End Sub
 
Upvote 0
Chuyển bàn, gộp bàn như thế nào thì chưa biết cách làm bạn ah. Chỉ có cái Save thì thấy lỗi đâu mình sửa chỗ ấy cho bạn thôi.

Bạn sửa sub XoaDL thành
Mã:
Sub XoaDL()
Sheets("Invoice").[B9:E15].ClearContents
End Sub

Thật sự mình ngóng topic miết ah, thấy có hồi âm hỗ trợ cho dù ít hay nhiều là mình cũng vui lắm.
Mình rất cảm ơn!
 
Upvote 0
Thật sự mình ngóng topic miết ah, thấy có hồi âm hỗ trợ cho dù ít hay nhiều là mình cũng vui lắm.
Mình rất cảm ơn!
Thực ra là do bạn đặt câu hỏi về cái gộp bạn với chuyển bàn mà nhìn file thì không biết được sẽ phải làm gì, làm như thế nào, làm vào đâu, hiển thị ra sao... thì không có ai làm được bạn ah.

Bạn chỉ rõ yêu cầu thì mọi người giúp ngay ấy mà. Sẽ rất nhanh đó bạn ạ.
 
Upvote 0
Tôi thấy có người hứa giúp kìa. 1 + 2 = 3 hôm rồi mà chưa thấy gì.
 
Upvote 0
Tôi thấy có người hứa giúp kìa. 1 + 2 = 3 hôm rồi mà chưa thấy gì.

Cảm ơn bạn, tuy nhiên mỗi người đều có việc riêng, công việc và gia đình rồi mới đến niềm đam mê. mình biết GPE có rất nhiều người có thể giúp đc vấn đề này, chỉ tại vì mình trình bày ko đc rõ ràng giống như bạn dhn46 nói nên phải đợi thôi. hì :)
 
Upvote 0
Mình có làm file quản lý phòng cho khách sạn. Cũng có in hoá đơn. Cũng có chuyển Room với gộp room. Mà không biết có giống với yêu cầu của bạn k?
 
Upvote 0
Mình có làm file quản lý phòng cho khách sạn. Cũng có in hoá đơn. Cũng có chuyển Room với gộp room. Mà không biết có giống với yêu cầu của bạn k?

Bạn có thể chia sẻ với mình không? Mình nghĩ về nguyên lý thì giống nhau, mình sẽ tùy biến cho phù hợp.
Mình cảm ơn trước!
 
Upvote 0
Chào các bạn trên GPE!
Mình tải được file quản lý bán hàng bằng excel trên một topic ở GPE, đã tùy biến lại cho phù hợp với quán nhỏ của mình.
Tuy nhiên mình gặp một số vấn đề nên nhờ các bạn hỗ trợ mình.

1. Xảy ra thông báo lỗi khi mình nhấn nút "save" trong trường hợp hóa đơn không có dữ liệu. (Như hình mình đính kèm)
2. Các bạn có thể giúp mình code vba chuyển bàn và gộp bàn, mình rất cần 2 chức năng này.

Mình có tùy biến một chút ở trong code theo hình thức mò mẫm, không biết có sai chỗ nào không nữa :)

Mình rất cảm ơn!

Mình sẽ cố gắng trình bày chi tiết để các bạn hỗ trợ dễ hơn:

1. Ví dụ mình đang ở sheet "Home", và có mấy vị khách vào bàn số 4 => kích chọn bàn 4 sẽ đưa ta đến sheet "Invoice"
Tại sheet "Invoice", khách dùng gì thì mình chọn vào cột B và nạp số lượng vào. => xong ta kích vào nút "save" để lưu dữ liệu vào sheet "Data" và trở về sheet "Home" để chờ khách khác vào :)
2. Một lát sau mấy vị khách ở bàn số 4 bị muỗi cắn quá nên yêu cầu chuyển qua bàn số 6. Vậy lúc này ta chạy 1 code chuyển bàn để hiện lên 1 user form, trong user form này có 2 ô để ta chọn bàn gốc và bàn muốn chuyển đến, ở giữa 2 ô có cái mũi tên cho dễ hình dung.
Vậy là ở sheet "Data", cột B và C (số bàn và số hóa đơn của bàn 4) sẽ thay đổi sang cùng tên với số bàn và số hóa đơn của bàn 6.
Như vậy là xong công tác chuyển bàn
3. Đến công tác gộp bàn thì cũng tương tự như chuyển bàn, nhưng nếu bàn 6 đã có khách thì gộp thêm các dòng ở bàn 4 qua thêm cho bàn 6.
Trình bày một lúc mình cũng thấy rối nữa :)
Hy vọng các bạn hiểu.
Mình cảm ơn!
 
Upvote 0
Khi 1 người đến bàn 1 thì có một số khả năng:
1. Người mới đến vào bàn 1 đang trống, hay gặp nhất.
2. Người mới đến vào bàn 1 đang có người và ăn chung với họ, trường hợp này không làm gì cả.
3. Người mới đến vào bàn 1 đang có người và ăn riêng. Ta có thể giả thiết mỗi bàn không quá 5 nhóm riêng biệt. Cần làm 5 hóa đơn với mỗi bàn.
4 5 6 tương tự 1 2 3 nhưng người này từ bàn khác tới.
Tóm lại code cần xét tất cả trường hợp trên
 
Upvote 0
Khi 1 người đến bàn 1 thì có một số khả năng:
1. Người mới đến vào bàn 1 đang trống, hay gặp nhất.
2. Người mới đến vào bàn 1 đang có người và ăn chung với họ, trường hợp này không làm gì cả.
3. Người mới đến vào bàn 1 đang có người và ăn riêng. Ta có thể giả thiết mỗi bàn không quá 5 nhóm riêng biệt. Cần làm 5 hóa đơn với mỗi bàn.
4 5 6 tương tự 1 2 3 nhưng người này từ bàn khác tới.
Tóm lại code cần xét tất cả trường hợp trên

phức tạp vậy bạn? ý mình là chỉ như thế này thôi:
Đang ngồi bàn 1 (Đã vào hóa đơn nhưng chưa in) và muốn chuyển qua bàn khác (với mục đích gì thì kệ họ, tuy nhiên khách thì mình phải chìu) và thao tác của mình lúc này là phải chuyển những món trong hóa đơn ở bàn 1 sang bàn khác.
Lúc này có 2 trường hợp
1. Nếu bàn khác trống thì chuyển hết các món mà khách dùng ở hóa đơn bàn 1 sang hóa đơn bàn khác
2. Nếu bàn khác có người quen và họ muốn gộp lại chung cho vui thì chuyển hết các món mà khách dùng ở hóa đơn bàn 1 sang gộp vào chung với hóa đơn của bàn mới đó (Món nào giống nhau thì cộng lại, còn món nào khác thì bổ sung vào trong hóa đơn).
Còn trường hợp Người mới đến vào bàn 1 đang có người và ăn riêng thì cái này mình ko tính tới vì tất nhiên mỗi người 1 hóa đơn rồi. Với lại quán nhỏ của mình ko có trường hợp ngồi chung mà ăn riêng nên mình loại trường hợp này.
 
Upvote 0
Tôi không hứa giúp, nhưng có góp ý bổ sung vào vấn đề của bạn như sau:

Sheet Invoice: Khi có khách vào thì cứ nhập thông tin xong thì nhấn nút Save, cần chuyển bàn hay gộp bàn thì thêm code truy vấn ngược lại hóa đơn để sửa và ghi đè lên dữ liệu cũ.

File của bạn thì sheet Home để di chuyển đến các bàn chẳng có tác dụng gì cả. Còn muốn sử dụng sheet Home để di chuyển đến bàn hoặc gộp bàn thì tôi làm theo kiểu khác.
 
Upvote 0
Tôi không hứa giúp, nhưng có góp ý bổ sung vào vấn đề của bạn như sau:

Sheet Invoice: Khi có khách vào thì cứ nhập thông tin xong thì nhấn nút Save, cần chuyển bàn hay gộp bàn thì thêm code truy vấn ngược lại hóa đơn để sửa và ghi đè lên dữ liệu cũ.

File của bạn thì sheet Home để di chuyển đến các bàn chẳng có tác dụng gì cả. Còn muốn sử dụng sheet Home để di chuyển đến bàn hoặc gộp bàn thì tôi làm theo kiểu khác.

Ý của bạn thật hay, tuy bạn ko hứa giúp, nhưng nếu bạn hoặc các bạn khác dựa vào ý này để giúp mình thì thật tuyệt.
Mình cảm ơn vì ý này làm rõ được những gì mình cần, chứ như những giải thích của mình thì có lẽ tới mùa quýt cũng chưa rõ đc :(
Cảm ơn rất nhiều!
 
Upvote 0
Mình sẽ cố gắng trình bày chi tiết để các bạn hỗ trợ dễ hơn:

1. Ví dụ mình đang ở sheet "Home", và có mấy vị khách vào bàn số 4 => kích chọn bàn 4 sẽ đưa ta đến sheet "Invoice"
Tại sheet "Invoice", khách dùng gì thì mình chọn vào cột B và nạp số lượng vào. => xong ta kích vào nút "save" để lưu dữ liệu vào sheet "Data" và trở về sheet "Home" để chờ khách khác vào :)
2. Một lát sau mấy vị khách ở bàn số 4 bị muỗi cắn quá nên yêu cầu chuyển qua bàn số 6. Vậy lúc này ta chạy 1 code chuyển bàn để hiện lên 1 user form, trong user form này có 2 ô để ta chọn bàn gốc và bàn muốn chuyển đến, ở giữa 2 ô có cái mũi tên cho dễ hình dung.
Vậy là ở sheet "Data", cột B và C (số bàn và số hóa đơn của bàn 4) sẽ thay đổi sang cùng tên với số bàn và số hóa đơn của bàn 6.
Như vậy là xong công tác chuyển bàn
3. Đến công tác gộp bàn thì cũng tương tự như chuyển bàn, nhưng nếu bàn 6 đã có khách thì gộp thêm các dòng ở bàn 4 qua thêm cho bàn 6.
Trình bày một lúc mình cũng thấy rối nữa :)
Hy vọng các bạn hiểu.
Mình cảm ơn!

Tôi cảm giác mọi người "phức tạp hóa một vấn đề đơn giản". Theo các miêu tả này cho thấy: quán bạn chỉ có 8 bàn, khả năng khách đang ngồi bàn 4 đổi bàn 6, chắc lâu lâu mới có một lần. Tại sao khách đổi bàn thì bạn gõ lại số bàn ô E2 và số HĐ ô B2 trong Invoice là xong. Sao cái gì mà phải VBA, userform nghe to tát thế.
 
Upvote 0
Hello all
1. Mình bảo 1, 2 hôm nữa sẽ xem cho bạn, mình bận chút nên giờ mới xem đc. Mình làm xong việc gộp bàn cho bạn rồi đấy, còn cái chuyển bàn thì bạn tự nghiên cứu làm nốt đi. Nếu ko làm đc, thì để mình làm nốt. :)
2. ko biết tác giả của những dòng code của chương trình này thế nào chứ viết code thế này, mình nghĩ chắc là ng mới viết. Đọc code để xem thuật toán với cách tính toán, lưu csdl mà ức chế quá.
3. Chủ topic nên mua hoặc kiếm 1 phần mềm bán hàng nào tốt hơn mà dùng, mình thấy cái dantrisoft hay winta cũng đc đấy, nó miễn phí, chứ xài cái bản bán hàng trên excel kiểu này khó chịu lắm.
4. Còn bạn nào giúp đc chủ topic thì nhảy vào mà giúp hoặc chí ít cũng đưa ra lời khuyên cho ng ta, đừng có đứng ngoài xỏ xiên :D. Học code bao năm ngoài phục vụ cho cá nhân thì ko để kiếm tiền thì để làm gì. !!! :D :D
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mình tạo nốt tính năng chuyển bàn cho bạn rồi đấy.
 

File đính kèm

Upvote 0
Hello all
1. Mình bảo 1, 2 hôm nữa sẽ xem cho bạn, mình bận chút nên giờ mới xem đc. Mình làm xong việc gộp bàn cho bạn rồi đấy, còn cái chuyển bàn thì bạn tự nghiên cứu làm nốt đi. Nếu ko làm đc, thì để mình làm nốt. :)
2. ko biết tác giả của những dòng code của chương trình này thế nào chứ viết code thế này, mình nghĩ chắc là ng mới viết. Đọc code để xem thuật toán với cách tính toán, lưu csdl mà ức chế quá.
3. Chủ topic nên mua hoặc kiếm 1 phần mềm bán hàng nào tốt hơn mà dùng, mình thấy cái dantrisoft hay winta cũng đc đấy, nó miễn phí, chứ xài cái bản bán hàng trên excel kiểu này khó chịu lắm.
4. Còn bạn nào giúp đc chủ topic thì nhảy vào mà giúp hoặc chí ít cũng đưa ra lời khuyên cho ng ta, đừng có đứng ngoài xỏ xiên :D. Học code bao năm ngoài phục vụ cho cá nhân thì ko để kiếm tiền thì để làm gì. !!! :D :D

Mình ko biết nói gì hơn, đúng ý mình muốn rồi bạn ah, mình cảm ơn bạn nhiều!
Ah, mình đã tải 2 phần mềm miễn phí bạn nói ở trên về rồi, tuy nhiên mình lại ko thích dùng, vẫn thích làm trên excel hơn, phần code thì những cái khó chưa biết có thể nhờ các bạn, còn những cái nào mò mẫm đc thì mò, tuy ko chuyên nghiệp bằng các phần mềm trên thị trường, nhưng lại thấy thú vị hơn :)
 
Upvote 0
Khi gộp bàn thì các món giống nhau sẽ được cộng dồn số lượng lại (mục đích để hóa đơn được gọn, ko mất nhiều dòng cho 1 món), bạn giúp mình chỉnh sửa nốt phần này nhé.
Mình cảm ơn!
 
Upvote 0
Hôm qua, mình nhìn thấy vấn đề về cộng dồn số lượng rồi, nhưng buồn ngủ quá nên chưa làm, mai thứ bảy mình làm cho nhé.
 
Upvote 0
Của bạn đây nhé. Cộng dồn lại rồi đấy. Thêm cho bạn chức năng hủy bàn nữa.
 

File đính kèm

Upvote 0
Mình gửi lại. Sửa code tí cho nhanh hơn.
 

File đính kèm

Upvote 0
Xin phép cho mình chen ngang chút nhé. Mình thấy bạn duongcga rất nhiệt tình. Bạn có thể ghé qua topic này giúp mình được không, vấn đề của mình cũng tương tự. Cảm ơn bạn.
 
Upvote 0
Xin phép cho mình chen ngang chút nhé. Mình thấy bạn duongcga rất nhiệt tình. Bạn có thể ghé qua topic này giúp mình được không, vấn đề của mình cũng tương tự. Cảm ơn bạn.
 
Upvote 0
@iloveit trong chương trình này, chức năng sửa phiếu ( hóa đơn ) sau khi đã đc thanh toán (in) là ko cần thiết. Đó là vì chương trình ko có chức năng tạo báo cáo (report) nên những dữ liệu sau khi thanh toán coi như là dữ liệu chết, bạn nhé.
 
Upvote 0
@duongcga có thể thêm chức năng tạo báo cáo (dùng Pivot Table chẳng hạn). Hình như chương trình này cũng không có chức năng in lại phiếu thì phải.

P/S: Topic mình nhờ bạn giúp khi nào rảnh xem giúp mình nhé. Vì ở topic này chương trình tối đa có 8 bàn thôi thí ít quá.
 
Upvote 0
file này lúc trước mình viết hồi còn chập chững vba, Hiện nay mình đã chỉnh sửa rất nhiều về giao diện và tính năng, nhưng lâu rồi kô dùng tới. hiện giờ mình ở cơ quan, để về nhà lục lại sẽ post cho bạn.Nhưng có một số tính năng mình chưa hoàn thiện. mong anh e diễn đàn góp ý
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom