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: 37
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
Web KT

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

Back
Top Bottom