Quản lý khách sạn (1 người xem)

Liên hệ QC

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

tuankiet139075

Thành viên mới
Tham gia
8/6/18
Bài viết
16
Được thích
3
Nhờ các thành viên GPE giúp đỡ mình file này.
File của mình gồm 2 sheet.
Ở Sheet (THANG 6) có cột A là ngày trong tháng, từ CỘt B -> Cột L tương ứng với phòng của Khách Sạn.
Những ô nào có khách đặt phòng rồi thì mình điền tên vào
vd: PHONG đặt phòng 101 ngày 01-06-2018 và 02-06-2018 ( tạm hiểu ngày đi là 3-6-2018)
TUAN: ĐẶT NGUYÊN CĂN (NC) Từ ngày 05-06-18 và ngày 06-06-2018 ( tạm hiểu ngày đi là 7-6-2018)
MONG MUỐN:
1/ Khi nhập tên khách đã đặt phòng ở bên sheet (THANG6) VÀ khi bấm button CẬP NHẬT thì sẽ copy Thông tin qua sheet (THONG TIN) giống như ví dụ mình đã điền vào .
2/ Nếu cùng 1 tên mà đặt hết tất cả các phòng thì Mã phòng bên sheet (Thong tin) là "NC".
Đó là thông tin và mong muốn cần giúp đỡ của mình, mong mọi người bỏ chút thời gian giúp đỡ.
Cảm ơn tất cả mọi người.
 

File đính kèm

Lần chỉnh sửa cuối:
Chuyện này có lẽ cũng không khó lắm, người bình thường cũng có thể làm được, nhưng bạn lại muốn nhờ "cao nhân" chắc phải chờ hơi bị lâu.
Cao nhân tạm hiểu là người nhiều tuổi, nên làm cái gì cũng phải lâu. Vì vậy, phải chờ đỏ con mắt rồi.
 
Upvote 0
Cao nhân là chân dài đó các vị!
:?>?<}{
 
Upvote 0
Chắc em phải sửa lại là " Siêu nhân" mới mong được giúp đỡ. Chứ người " Bình Nhân" như em thì bó tay.
Góp ý cho bạn:
1/ Tiêu đề bài viết nên sửa là Quản lý Khách sạn.
2/ Các thành viên rất ngán ngại các từ cao nhân, cao thủ.
3/ File của bạn còn thiếu nhiều thông tin quá: KS có bao nhiêu tầng, mỗi tầng có bao nhiêu phòng (liệt kê tên phòng), nên có cột người thu tiền (hay quản lý).
4/ Bạn nên có 1 sheet đơn giá phòng với giá: giờ, buổi, ngày, đêm, tuần (để còn tra cứu) ..v.v......
5/ Danh mục thức uống, thức ăn nếu có.
 
Upvote 0
Góp ý cho bạn:
1/ Tiêu đề bài viết nên sửa là Quản lý Khách sạn.
2/ Các thành viên rất ngán ngại các từ cao nhân, cao thủ.
3/ File của bạn còn thiếu nhiều thông tin quá: KS có bao nhiêu tầng, mỗi tầng có bao nhiêu phòng (liệt kê tên phòng), nên có cột người thu tiền (hay quản lý).
4/ Bạn nên có 1 sheet đơn giá phòng với giá: giờ, buổi, ngày, đêm, tuần (để còn tra cứu) ..v.v......
5/ Danh mục thức uống, thức ăn nếu có.
Chào anh Be09!
Cảm ơn anh đã góp ý.Em sẽ rút kinh nghiệm cách xưng hô.
Khách sạn có 4 tầng x 3 phòng = 12 phòng.
Nhưng em đưa lên vài phòng ví dụ để không bị rối, với nhu cầu em chỉ cần copy thông tin qua chứ phần tính tiền em có thể làm sau cũng được.
Mong mọi người giúp đỡ!
 
Upvote 0
Chào anh Be09!
Cảm ơn anh đã góp ý.Em sẽ rút kinh nghiệm cách xưng hô.
Khách sạn có 4 tầng x 3 phòng = 12 phòng.
Nhưng em đưa lên vài phòng ví dụ để không bị rối, với nhu cầu em chỉ cần copy thông tin qua chứ phần tính tiền em có thể làm sau cũng được.
Mong mọi người giúp đỡ!
Bạn phải sửa tiêu đề bài viết như đã nêu bài 6, cách sửa như sau:

Khi đăng nhập xong, vào Công cụ chủ đề (trên cùng bên phải bài viết), chọn Edit Title , nó hiện ra hộp thoại để sửa tiêu đề, khi sửa xong nhấn nút Lưu thay đổi.
Bạn có 50 phòng cũng phải liệt kê hết ra, để muốn muốn tính tiền phòng nào thì chọn tên phòng đó nó mới lấy thông tin phòng vào hóa đơn, rồi áp giá, không có tên phòng không có bảng giá thì làm sao tính tiền phòng và làm sao quản lý phòng nào có khách phòng nào trống để còn bố trí phòng cho khách.
Ngoài ra trong mỗi phòng còn có tủ lạnh chứa thức uống, không có danh mục thì tính tiền như thế nào?
 
Upvote 0
Em đã sửa tiêu đề như yêu cầu của anh Be09.
Nhưng chắc có lẽ anh Be09 hiểu nhầm mục đích của em rồi, Ở đây em chỉ muốn lấy thông tin đã nhập ở sheet 1( Thang 6) đưa sang sheet2(Thong tin)
kèm theo những điều kiện ngày tháng, mã phòng như trong file mẫu ( không liên quan đến tính tiền)
Em đính kèm file đã liệt kê các phòng.
 

File đính kèm

Upvote 0
Em đã sửa tiêu đề như yêu cầu của anh Be09.
Nhưng chắc có lẽ anh Be09 hiểu nhầm mục đích của em rồi, Ở đây em chỉ muốn lấy thông tin đã nhập ở sheet 1( Thang 6) đưa sang sheet2(Thong tin)
kèm theo những điều kiện ngày tháng, mã phòng như trong file mẫu ( không liên quan đến tính tiền)
Em đính kèm file đã liệt kê các phòng.
Tôi lại hiểu thế này:
1/ Khi có khách nhận phòng thì nhập thông tin vào sheet theo dõi và ở sheet trang chủ sẽ hiện màu cam.
2/ Nếu phòng chưa có khách nhận phòng thì ở sheet trang chủ sẽ hiện màu xanh.

Nhìn vào trang chủ để biết phòng nào có khách rồi, phòng nào chưa có khách mà bố trí phòng cho thích hợp.

A_Hinh.JPG
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi lại hiểu thế này:
1/ Khi có khách nhận phòng thì nhập thông tin vào sheet theo dõi và ở sheet trang chủ sẽ hiện màu cam.
2/ Nếu phòng có khách nhận thì ở sheet trang chủ sẽ hiện màu.

Nhìn vào trang chủ để biết phòng nào có khách rồi, phòng nào chưa có khách mà bố trí phòng cho thích hợp.

View attachment 197354
Tại KS em được cho thuê theo ngày chứ ko phải theo giờ và đa số khách book phòng trước.
Như File em gửi nhìn vào sheet1 sẽ biết được ngày nào, phòng nào trống để nhận khách vì khách nào book mình đã nhập thông tin vào rồi.
Em nghĩ macro sẽ giúp mình phần lọc điều kiện để lấy thông tin đưa qua sheet2, nhưng mà em ko rành vba nên cần giúp đỡ.
 
Upvote 0
Nhưng chắc có lẽ anh Be09 hiểu nhầm mục đích của em rồi, Ở đây em chỉ muốn lấy thông tin đã nhập ở sheet 1( Thang 6) đưa sang sheet2(Thong tin)
kèm theo những điều kiện ngày tháng, mã phòng như trong file mẫu ( không liên quan đến tính tiền)
Em đính kèm file đã liệt kê các phòng.
Không muốn cũng không được. Không có chuyện chỉ nhờ 1 ý. Muốn được giúp thì bắt buộc phải nhận sự giúp đỡ trọn gói, từ A đến Z :D
 
Upvote 0
Tại KS em được cho thuê theo ngày chứ ko phải theo giờ và đa số khách book phòng trước.
Như File em gửi nhìn vào sheet1 sẽ biết được ngày nào, phòng nào trống để nhận khách vì khách nào book mình đã nhập thông tin vào rồi.
Em nghĩ macro sẽ giúp mình phần lọc điều kiện để lấy thông tin đưa qua sheet2, nhưng mà em ko rành vba nên cần giúp đỡ.
Theo ý này thì chỉ cần nhập thông tin từng phòng vào sheet NHAP_LIEU, sang sheet TRANG_CHU xem kết quả (hình).
- Phòng có khách màu hường.
- Phòng không có khách màu xanh biển.
- Phòng đặt (NC) màu vàng.

Ý tưởng làm gần giống với đèn tín hiệu giao thông.

A_H.JPG
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Theo ý này thì chỉ cần nhập thông tin từng phòng vào sheet NHAP_LIEU, sang sheet TRANG_CHU xem kết quả (hình).
- Phòng có khách màu hường.
- Phòng không có khách màu xanh biển.
- Phòng đặt (NC) màu vàng.

Ý tưởng làm gần giống với đèn tín hiệu giao thông.

View attachment 197362
Qủa thật ý tưởng của anh Be09 là một ý tưởng rất tuyệt vời, giao diện dễ nhìn, dễ sử dụng.
Nó sẽ rất phù hợp với hình thức kinh doanh khách sạn truyền thống là quản lý theo ngày và khách đặt tại chỗ. "Mỳ ăn liền"
Ở chỗ Nguyên Căn (NC) trong file của anh nó đúng chỉ nguyên Tầng (2), nhưng cũng ko đúng vì tên khách hàng khác nhau.. Còn ở bài toán của em nguyên căn nghĩa là thuê hết nguyên khách sạn (dạng Villa).
ks.png
Ở hình trên, nhìn vào mình biết ngày nào và phòng nào trống để nhận khách ( đặt trước qua điện thoại, facebook, zalo...)
Còn file anh thì chỉ nhìn được 1 ngày cụ thể.
 
Lần chỉnh sửa cuối:
Upvote 0
Qủa thật ý tưởng của anh Be09 là một ý tưởng rất tuyệt vời, giao diện dễ nhìn, dễ sử dụng.
Nó sẽ rất phù hợp với hình thức kinh doanh khách sạn truyền thống là quản lý theo ngày và khách đặt tại chỗ. "Mỳ ăn liền"
Ở chỗ Nguyên Căn (NC) trong file của anh nó đúng chỉ nguyên Tầng (2), nhưng cũng ko đúng vì tên khách hàng khác nhau.. Còn ở bài toán của em nguyên căn nghĩa là thuê hết nguyên khách sạn (dạng Villa).
Trong File bài 14 anh đưa tên vào để thử thôi:
Do em thao tác chưa đúng thì làm sao chính xác được.
Nếu 1 người thuê nguyên căn thì vào C6 (tên Lê Thị Lan) sheet NHAP_LIEU rồi Fill tên xuống C21 và D6 chọn NC rồi Fill tên xuống D21, rồi sang sheet TRANG_CHU xem kết quả (hình).

A_H1.JPGA_H2.JPG
 
Upvote 0
Trong File bài 14 anh đưa tên vào để thử thôi:
Do em thao tác chưa đúng thì làm sao chính xác được.
Nếu 1 người thuê nguyên căn thì vào C6 (tên Lê Thị Lan) sheet NHAP_LIEU rồi Fill tên xuống C21 và D6 chọn NC rồi Fill tên xuống D21, rồi sang sheet TRANG_CHU xem kết quả (hình).

View attachment 197365View attachment 197366
View attachment 197364
Ở hình trên, nhìn vào mình biết ngày nào và phòng nào trống để nhận khách ( đặt trước qua điện thoại, facebook, zalo...)
Còn file anh thì chỉ nhìn được 1 ngày cụ thể.
 
Upvote 0
View attachment 197364
Ở hình trên, nhìn vào mình biết ngày nào và phòng nào trống để nhận khách ( đặt trước qua điện thoại, facebook, zalo...)
Còn file anh thì chỉ nhìn được 1 ngày cụ thể.
Muốn hiện thêm nội dung gì Ngày đến, Ngày đi chỗ nào thì em thể hiện trong File (mẫu 1 phòng) thì anh mới biết, chứ nói mà không thể hiện thì anh biết chỗ nào để thêm vô.
 
Upvote 0
Muốn hiện thêm nội dung gì Ngày đến, Ngày đi chỗ nào thì em thể hiện trong File (mẫu 1 phòng) thì anh mới biết, chứ nói mà không thể hiện thì anh biết chỗ nào để thêm vô.
Em lấy ví dụ ở hình em đính kèm:
PHONG đặt phòng 101 2 ngày (1-6-18 & 2-6-2018) thì mình hiểu như sau:
ngày đến: 1-6-2018
ngày đi: = (2-6-2018)+1
Đặc thù công việc của em ở đây chỉ theo dõi và nhận khách đặt trong tháng.
 
Upvote 0
Em lấy ví dụ ở hình em đính kèm:
PHONG đặt phòng 101 2 ngày (1-6-18 & 2-6-2018) thì mình hiểu như sau:
ngày đến: 1-6-2018
ngày đi: = (2-6-2018)+1
Đặc thù công việc của em ở đây chỉ theo dõi và nhận khách đặt trong tháng.
Lúc đầu nếu nêu cụ thể như bài này và đính kèm Hình bài 15 thì dễ hiểu quá, có đúng như số phòng như ở bài 15 hình không? nếu không chính xác số phòng thì sửa lại hơi mệt đấy.
Em không nêu cụ thể, nên từ bài đầu đến đây coi như công sức phá sản rồi, đập hộp làm lại từ đầu.
 
Upvote 0
Lúc đầu nếu nêu cụ thể như bài này và đính kèm Hình bài 15 thì dễ hiểu quá, có đúng như số phòng như ở bài 15 hình không? nếu không chính xác số phòng thì sửa lại hơi mệt đấy.
Em không nêu cụ thể, nên từ bài đầu đến đây coi như công sức phá sản rồi, đập hộp làm lại từ đầu.
Dạ em thành thật xin lỗi anh vì mới lần đầu tiên tham gia diễn đàn nên còn nhiều thiếu sót.
Số phòng em liệt kê là chính xác rồi ạ.
và phải ngày theo dòng như hình em đính kèm thì em nghĩ sẽ dễ theo dõi phòng nào, ngày nào chưa có khách để mình nhận thì hay hơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Mình cũng cố bon chen; Nhưng chưa gọn lắm
 

File đính kèm

Upvote 0
Dạ em thành thật xin lỗi anh vì mới lần đầu tiên tham gia diễn đàn nên còn nhiều thiếu sót.
Về ý của bạn, tức vẫn dữ liệu như sheet THANG 6 nhưng trình bầy theo cấu trúc ở sheet THONG TIN thì ai cũng có thể hiểu ngay từ đầu, không có gì phải xin lỗi.

Nhưng có vẻ vấn đề không đơn giản như bạn nghĩ.

1/ Khi nhập tên khách đã đặt phòng ở bên sheet (THANG6) VÀ khi bấm button CẬP NHẬT thì sẽ copy Thông tin qua sheet (THONG TIN) giống như ví dụ mình đã điền vào .
Không đơn giản thế đâu.
Giả sử mỗi lần bạn chỉ nhập 1 khách rồi nhấn nút thì code cũng khó biết bạn đã nhập khách nào. Vd. có khách đặt ngày 7. Khách sau đặt ngày 9, tức dữ liệu mới nằm "ở dưới", nhưng cũng có thể đặt ngày 5, tức dữ liệu nằm "ở trên". Code khó biết bạn vừa nhập khách nào. Tôi nói khó vì để biết thì phải theo dõi. Hoặc mỗi lần nhấn nút thì xóa toàn bộ dữ liệu cũ ở sheet THONG TIN rồi tính toán lại từ đầu. Code sẽ hơi phức tạp thêm.

Trong vd. bạn có TUAN đặt nguyên căn cho 2 ngày. Nhưng cũng có thể chỉ là 1 ngày nguyên căn (họp lớp gặp tất cả các bạn nam nữ), còn ngày thứ 2 chỉ đặt vài phòng (các bạn nữ phải về nấu cơm cho chồng con) cho mình và các "chiến hữu".

Ngoài ra chắc bạn chưa lường trường hợp sau. Giả sử HIEP đặt 3 ngày 1-3/6 phòng 201. Nhưng tối 2/6 HIEP bị người cũ mồi chài bay ra Hà Nội. Vậy HIEP trả phòng để bay ra với người cũ. Tất nhiên HIEP không lấy lại tiền, vì loại tiền này một ra đi thì không trở lại. Nhưng bạn phải biết là phòng 201 ngày 3/6 không có khách. Nếu không biết mà có khách đặt thì bạn sẽ nói: "Rất tiếc, ngày 3/6 tôi không còn phòng nào". Thế là mất cái áo cho vợ, hộp sữa cho con rồi còn gì.

Theo tôi để xử lý thì mỗi khi nhấn CẬP NHẬT phải xóa mọi dữ liệu THONG TIN rồi trên cơ sở dữ liệu hiện hành của THANG 6 tính lại từ đầu mọi dữ liệu cho THONG TIN
 
Upvote 0
Em hoàn toàn đồng ý và thấy ý kiến của anh rất hợp lý.
Theo tôi để xử lý thì mỗi khi nhấn CẬP NHẬT phải xóa mọi dữ liệu THONG TIN rồi trên cơ sở dữ liệu hiện hành của THANG 6 tính lại từ đầu mọi dữ liệu cho THONG TIN
Bài đã được tự động gộp:

Mình cũng cố bon chen; Nhưng chưa gọn lắm
Em đã xem file của anh, thật sự rất ngưỡng mộ.
Anh đổi hình thức cho ngày chạy dài theo cột thì cũng ok ko vấn đề gì.
Chỉ có một vấn đề là khi cập nhật qua sheet thông tin thì nó không gộp lại ( chung khách hàng) mà nó copy thành nhiều dòng ( vd: 1 khách ở cùng 1 phòng 2 ngày thì nó show ra 2 dòng bên sheet thông tin). Em nghĩ nếu có cách nào tính toán cho nó biết cùng phòng các ngày liền kề nhau mà tên giống nhau thì nó cộng gộp lại là thành công rực rỡ luôn.
Cảm ơn anh SA_DQ rất nhiều!
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn tham khảo trong sheet1 thử nhe, code hơi rườm rà nhưng chắc đáp ứng được yêu cầu của bạn.
 

File đính kèm

Upvote 0
Qua xem các bài viết thì có lẽ cũng chưa đáp ứng được yêu cầu:
1/ Vấn đề trực quan: Nói chung chưa được trực quan cho lắm, vấn đề này tôi vẫn giữ nguyên như File cũ, nhưng thêm 1 sheet Loc dữ liệu, để kiểm tra phòng qua các ngày.
2/ Việc theo dõi cũng cần tính đến việc tổng hợp báo cáo (tính doanh thu), Nếu có tính đến tặng quà cuối năm cho mối ruột thì tính thế nào?
 
Upvote 0
Qua xem các bài viết thì có lẽ cũng chưa đáp ứng được yêu cầu:
1/ Vấn đề trực quan: Nói chung chưa được trực quan cho lắm, vấn đề này tôi vẫn giữ nguyên như File cũ, nhưng thêm 1 sheet Loc dữ liệu, để kiểm tra phòng qua các ngày.
2/ Việc theo dõi cũng cần tính đến việc tổng hợp báo cáo (tính doanh thu), Nếu có tính đến tặng quà cuối năm cho mối ruột thì tính thế nào?
Về vấn đề 1, con nghĩ nên chuyển dữ liệu ngày thành tiêu đề cột, số phòng thành tiêu đề dòng, như thế nhĩn sẽ thuận mắt, trước đây con có làm lễ tân, khách check in check out theo giờ thường xuyên thì nhìn vào timeline như vậy sẽ biết ngay thông tin phòng đang được sử dụng, phòng đang trống để thông báo liền cho khách, thêm conditional formatting để phân loại phòng trống, phòng khách đang ở, phòng đã được đặt thì sẽ dễ nhìn hơn nữa. file của chú con có xem qua, nó giống mấy cái phần mềm quản lý khách sạn trước đây, nhưng khi con sử dụng phần mềm quản lý khách sạn "ezcloud" thiết kế theo timeline thì cảm thấy thuận tiện cho công việc lễ tân của con hơn.
 
Upvote 0
Bạn tham khảo trong sheet1 thử nhe, code hơi rườm rà nhưng chắc đáp ứng được yêu cầu của bạn.
Chào anh!
File của anh thật sự hoàn toàn đáp ứng được nhu cầu của em, em đã test tất cả các trường hợp thấy rất Ok.
Em chỉ thắc mắc 1 chỗ khi xóa dữ liệu cũ trước khi cập nhật thì vô tình xóa luôn định dạng mình đã trang trí từ trước.
Anh có thể tỉnh chỉnh chỗ đó lại giúp em được không!
Cảm ơn tất cả mọi người đã dành thời gian giúp đỡ!
 
Upvote 0
Chào anh!
File của anh thật sự hoàn toàn đáp ứng được nhu cầu của em, em đã test tất cả các trường hợp thấy rất Ok.
!
Tôi nghĩ bạn chưa test kỹ.

Với dữ liệu như tập tin saKS TUANKIET.xlsm thì kết quả sai:
- dòng 10: kết quả là 101, CUONG, 2018-06-08, 2016-06-10, 2
Kết quả đúng là: 101, CUONG, 2018-06-08, 2016-06-09, 1
- dòng 13: kết quả là NC, CUONG, 2018-06-09, 2016-06-11, 2
Kết quả đúng là: NC, CUONG, 2018-06-09, 2016-06-010, 1
-------------
Tôi đề nghị như tập tin. Tôi đã định dạng cột D, E là ngày tháng và cột F là số.

Phải đủ 12 phòng - dữ liệu tới cột M. Nếu khác thì phải sửa code. Cấu trúc phải giữ nguyên: dữ liệu từ dòng tới dòng, từ cột tới cột, thứ tự các cột, ở cả 2 sheet

Vì cái sai của người khác nó luôn như con voi nhìn rõ, còn cái sai của bản thân luôn như con kiến khó nhìn. Vì thế mọi người kiểm tra hộ. Mỗi người nhìn thấy con voi của người kia. :D
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Về vấn đề 1, con nghĩ nên chuyển dữ liệu ngày thành tiêu đề cột, số phòng thành tiêu đề dòng, như thế nhĩn sẽ thuận mắt, trước đây con có làm lễ tân, khách check in check out theo giờ thường xuyên thì nhìn vào timeline như vậy sẽ biết ngay thông tin phòng đang được sử dụng, phòng đang trống để thông báo liền cho khách, thêm conditional formatting để phân loại phòng trống, phòng khách đang ở, phòng đã được đặt thì sẽ dễ nhìn hơn nữa. file của chú con có xem qua, nó giống mấy cái phần mềm quản lý khách sạn trước đây, nhưng khi con sử dụng phần mềm quản lý khách sạn "ezcloud" thiết kế theo timeline thì cảm thấy thuận tiện cho công việc lễ tân của con hơn.
Cách làm và cấu trúc như File bài 14 và bổ sung thêm như sau:
1/ Thêm phần nhập liệu cho sheet NHAP_LIEU, lưu dữ liệu tiếp theo từng ngày vào sheet THEO_DOI (từ sheet này sẽ tổng hợp theo tháng và tổng hợp doanh thu cả năm).
2/ Thêm 1 sheet loc dữ liệu để tìm phòng trống gán vào sheet NHAP_LIEU để truy vấn ngược lại sheet TRANG_CHU (nhằm kiểm tra phòng nào có khách, phòng nào trống).
 
Upvote 0
Code tuy dài nhưng tốc độ nhanh vì không truy cập liên tục tới sheet

Nếu luôn đủ phòng thì 12*30*vài triệu
Thế thì bạn thu bộn tiền. Hậu tạ, bồi dưỡng cho chúng tôi chút nhỉ? Hoặc 1 đêm với người cũ miễn phí nhể?

Nhiều người để khuyến khích người ta ghi dòng cuối: "Có hậu tạ" mà :D
 
Lần chỉnh sửa cuối:
Upvote 0
Chào anh!
File của anh thật sự hoàn toàn đáp ứng được nhu cầu của em, em đã test tất cả các trường hợp thấy rất Ok.
Em chỉ thắc mắc 1 chỗ khi xóa dữ liệu cũ trước khi cập nhật thì vô tình xóa luôn định dạng mình đã trang trí từ trước.
Anh có thể tỉnh chỉnh chỗ đó lại giúp em được không!
Cảm ơn tất cả mọi người đã dành thời gian giúp đỡ!
Sry bạn, file của mình còn lỗi, bạn tham khảo file của anh batman1 nhe.
Bài đã được tự động gộp:

Tôi nghĩ bạn chưa test kỹ.

Với dữ liệu như tập tin saKS TUANKIET.xlsm thì kết quả sai:
- dòng 10: kết quả là 101, CUONG, 2018-06-08, 2016-06-10, 2
Kết quả đúng là: 101, CUONG, 2018-06-08, 2016-06-09, 1
- dòng 13: kết quả là NC, CUONG, 2018-06-09, 2016-06-11, 2
Kết quả đúng là: NC, CUONG, 2018-06-09, 2016-06-010, 1
-------------
Tôi đề nghị như tập tin. Tôi đã định dạng cột D, E là ngày tháng và cột F là số.

Phải đủ 12 phòng - dữ liệu tới cột M. Nếu khác thì phải sửa code. Cấu trúc phải giữ nguyên: dữ liệu từ dòng tới dòng, từ cột tới cột, thứ tự các cột, ở cả 2 sheet

Vì cái sai của người khác nó luôn như con voi nhìn rõ, còn cái sai của bản thân luôn như con kiến khó nhìn. Vì thế mọi người kiểm tra hộ. Mỗi người nhìn thấy con voi của người kia. :D
Sry,sau khi em xem lại file anh up lên thì phát hiện ra lỗi, đúng là em chưa test kĩ về trường hợp khách book phòng sát ngày nhau, em còn yếu về mảng nên chưa thể thiết kế như file của anh được, sẽ tiếp tục học hỏi mọi người trên diễn đàn :).
Bài đã được tự động gộp:

Cách làm và cấu trúc như File bài 14 và bổ sung thêm như sau:
1/ Thêm phần nhập liệu cho sheet NHAP_LIEU, lưu dữ liệu tiếp theo từng ngày vào sheet THEO_DOI (từ sheet này sẽ tổng hợp theo tháng và tổng hợp doanh thu cả năm).
2/ Thêm 1 sheet loc dữ liệu để tìm phòng trống gán vào sheet NHAP_LIEU để truy vấn ngược lại sheet TRANG_CHU (nhằm kiểm tra phòng nào có khách, phòng nào trống).
Con chưa biết file của chú khi xử lý với trường hợp khách đã đặt phòng trước và trường hợp khách hỏi đặt phòng cho tương lai thì như thế nào. Con vẫn giữ quan điểm của con là trang chủ sẽ sử dụng timeline, vì khi có khách gọi tới hỏi còn phòng vào ngày (tương lai) đó hay không, thì chỉ cần nhìn vào timeline là biết và trả lời cho khách ngay lúc ấy.:)
 
Lần chỉnh sửa cuối:
Upvote 0
Code tuy dài nhưng tốc độ nhanh vì không truy cập liên tục tới sheet

Nếu luôn đủ phòng thì 12*30*vài triệu
Thế thì bạn thu bộn tiền. Hậu tạ, bồi dưỡng cho chúng tôi chút nhỉ? Hoặc 1 đêm với người cũ miễn phí nhể?

Nhiều người để khuyến khích người ta ghi dòng cuối: "Có hậu tạ" mà :D
Trước hết, em xin gửi lời cảm ơn đến tất cả mọi người đã giúp đỡ và cảm ơn sâu sắc đến anh batman1 đã dành thời gian làm 1 file hoàn chỉnh và đúng với nhu cầu cần giúp đỡ của em.
Hi, em chỉ nhân viên làm cho ks nên em có thể "Hậu tạ" bằng cây nhà lá vườn đó là có dịp đi Đà Lạt ghé Ks em đang làm sẽ ưu đãi tiền thuê phòng và 1 bữa ăn nhậu ạ!
 
Lần chỉnh sửa cuối:
Upvote 0
Trước hết, em xin gửi lời cảm ơn đến tất cả mọi người đã giúp đỡ và cảm ơn sâu sắc đến anh batman1 đã dành thời gian làm 1 file hoàn chỉnh và đúng với nhu cầu cần giúp đỡ của em.
Hi, em chỉ nhân viên làm cho ks nên em có thể "Hậu tạ" bằng cây nhà lá vườn đó là có dịp đi Đà Lạt ghé Ks em đang làm sẽ ưu đãi tiền thuê phòng và 1 bữa ăn nhậu ạ!
Nhìn thấy chỗ này là được nè "ưu đãi tiền thuê phòng và 1 bữa ăn nhậu".
Anh cũng hạp ba cái vụ nhậu, nhẹt và anh ở Đồng Nai nên đi Đà Lạt cũng gần gũi, nếu sẽ có dịp anh sẽ đi Đà Lạt chơi và sẽ ghé chỗ em. Đây là địa chỉ Khách sạn của em phải không?
Lô C11, đường Trần Lê, Phường 4, Thành phố Đà Lạt, tỉnh Lâm Đồng.

Em có cần làm phiếu tính tiền phòng không? tính riêng 1 phòng hoặc tính cùng lúc nhiều phòng đặt.
Hôm nay, anh sẽ tập trung làm cho em 1 File hoàn chỉnh nhất (gần tương đương với cái File mà em thấy mấy trang mạng rao bán).
 
Lần chỉnh sửa cuối:
Upvote 0
Mình xoay bảng dữ liệu là có lý do của nó;
Sau mọi nổ lực mình cũng xong theo iêu cầu của bạn:
 

File đính kèm

Upvote 0
Mình xoay bảng dữ liệu là có lý do của nó;
Sau mọi nổ lực mình cũng xong theo iêu cầu của bạn:
Chào anh!
Cách của anh cũng rất hay, nhưng nếu mình muốn khi data validation chọn tháng nào thì tham chiếu đến nội dung của tháng đó ( giả sử mỗi sheet mình tạo 1 tháng) thì có được không anh?
chứ file hiện tại thì khi mình chọn các tháng thì nội dung ( khách hàng) trong đó vẫn giữ nguyên mà ko cập nhật các tháng khác mặc dù ngày tháng đã thay đổi theo.
 
Upvote 0
Chào anh!
Cách của anh cũng rất hay, nhưng nếu mình muốn khi data validation chọn tháng nào thì tham chiếu đến nội dung của tháng đó ( giả sử mỗi sheet mình tạo 1 tháng) thì có được không anh?
chứ file hiện tại thì khi mình chọn các tháng thì nội dung ( khách hàng) trong đó vẫn giữ nguyên mà ko cập nhật các tháng khác mặc dù ngày tháng đã thay đổi theo.
Theo cách anh làm thì theo dõi tất cả chỉ trong 1 sheet, muốn tổng hợp của bất kỳ khách hàng (khách ruột để giảm giá) hoặc muốn tính doanh theo ngày, tháng, năm thì tùy biến.
Và có thể hiện lại nội dung của bất kỳ ngày nào ở sheet TRANG_CHU cũng được.
 
Upvote 0
Cách của anh cũng rất hay, nhưng nếu mình muốn khi data validation chọn tháng nào thì tham chiếu đến nội dung của tháng đó ; (1) Giả sử mỗi sheet mình tạo 1 tháng) thì có được không anh?
chứ file hiện tại thì khi mình chọn các tháng thì nội dung ( khách hàng) trong đó vẫn giữ nguyên mà ko cập nhật các tháng khác mặc dù ngày tháng đã thay đổi theo.
(1) Nên là 4 trang tính cho 4 quí trong năm; Là vì du lịch có mùa, ta nên ứng xử theo mùa.
Nếu có 2 mùa, ta chỉ nên làm 2 trang;
Tuy nhiên trong mỗi trang ta xếp các tháng từ trên xuống dưới, chứ khong lạm dụng theo cột
Lúc này sẽ khó CF để hiện các thứ theo những màu khác nhau

(1.1) Mình nghỉ đến cách ta hiện 45 ngày liên tục, thay vì 31 ngày trong tháng
& cái 45 ngày này theo í muốn của ta; có nghĩa là ngày bắt đầu của 45 ngày do ta quyết định.

(*) Kết quả sau mỗi lần chạy các tháng & hình thành trên trang 'THop' ta nên lưu lại 1 cách tuần tự theo tháng
Để khi muốn xem tháng nào thì ta lấy từ CSDL này tạo lại lịch đặt fòng của khách hàng.
Khi đó ta khỏi cần lưu lịch đặt fòng của các tháng trước đó.
Nếu muốn theo xu hướng này, bạn & mình cần thời gian thêm.

Chúc vui & mong tiếp tục thảo luận cùng bạn!
 
Upvote 0
Tôi nghĩ bạn chưa test kỹ.
Vì cái sai của người khác nó luôn như con voi nhìn rõ, còn cái sai của bản thân luôn như con kiến khó nhìn. Vì thế mọi người kiểm tra hộ. Mỗi người nhìn thấy con voi của người kia. :D
Chào anh batman1!
Em đã test nếu số lượng khách khi update qua sheet THONG TIN lớn hơn 31 dòng thì nó báo lỗi, em dính kèm file anh và mọi người xem lại giúp em nhé.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Chào anh batman1!
Em đã test nếu số lượng khách khi update qua sheet THONG TIN lớn hơn 31 dòng thì nó báo lỗi, em dính kèm file anh và mọi người xem lại giúp em nhé.
Tìm trong Sub dòng này:
ReDim result(1 To UBound(Arr) - 2, 1 To 6)
Sửa thành
ReDim result(1 To 372, 1 To 6)
 
Upvote 0
Chào anh batman1!
Em đã test nếu số lượng khách khi update qua sheet THONG TIN lớn hơn 31 dòng thì nó báo lỗi, em dính kèm file anh và mọi người xem lại giúp em nhé.
1. Tôi quên không nhân với 12

Nếu ngày nào cũng có 12 khach đặt phòng chỉ 1 ngày thì trong 31 ngày có 31*12 = 372 khách - tức 372 dòng trong THONG TIN.

Nhưng tôi khuyên không sửa thành 372. Bạn chỉ dùng 1 tháng nhưng code của tôi muốn mềm dẻo, tùy biến, có tham vọng thích hợp với dữ liệu hiện hành. Nếu một ngày đẹp trời bạn muốn làm 2 tháng liền (61 ngày) hoặc 3 tháng (1 quí) thì 372 kia tèo.

Tôi chỉ quên nhân với 12 thôi.

Bạn hãy tìm và sửa thành
Mã:
ReDim result(1 To 12 * (UBound(Arr) - 2), 1 To 6)

Nếu bạn sửa thành 372 là bạn thu hẹp khả năng của code của tôi đấy.

2. Trong module của THONG TIN tôi quên chưa xóa code. Code này lúc đầu tôi định đề nghị nhập dữ liệu ở THONG TIN rồi code bắn chúng sang DAT PHÒNG - tức làm ngược lại.

Phải chuột trên thẻ THONG TIN ở thanh sheet ở dưới cùng trong cửa sổ -> chọn "View code". Xóa toàn bộ code Worksheet_Change
Bài đã được tự động gộp:

Em đã sửa và chạy ok rồi, em hiểu rằng 372=12*31.
Hãy đọc bài của tôi và sửa thành
Mã:
ReDim result(1 To 12 * (UBound(Arr) - 2), 1 To 6)

Không dùng 372
Còn theo code của anh batman1 thì UBound(Arr) - 2 NGHĨA LÀ SAO VẬY Ạ?
Cảm ơn!
Trong sheet DAT PHONG dữ liệu khách bắt đầu từ dòng 5, từ cột B nhưng vì tôi không truy cập liên tục xuống sheet mà lấy toàn bộ dữ liệu vào mảng rồi xử lý trong đó nên tôi phải lấy từ dòng 3 (có cả mã phòng) - tức dư 2 dòng, và từ cột A (có ngày tháng). Vậy thì số các dòng ngày tháng chỉ là Ubound(Arr) - 2 (trừ 2 do lấy dư 2 dòng) thôi. Cụ thể là tháng 6 có 30 ngày nên dữ liệu chỉ tới dòng 34. Do code lấy từ dòng 3 nên mảng Arr có 32 dòng - Ubound(Arr) = 32. UBound(Arr) - 2 = 32 - 2 = 30 - tức số ngày trong tháng 6.
 
Lần chỉnh sửa cuối:
Upvote 0
Thường thì khách hàng ở 2 ngày trở lên thì có thể dễ gặp trường hợp chiếm dụng fòng nào đó xuyên suốt từ cuối tháng trước sang đầu tháng sau.

Như vậy trên báo cáo sẽ không đủ thông tin thực chất về khách

???
 
Upvote 0
Thường thì khách hàng ở 2 ngày trở lên thì có thể dễ gặp trường hợp chiếm dụng fòng nào đó xuyên suốt từ cuối tháng trước sang đầu tháng sau.

Như vậy trên báo cáo sẽ không đủ thông tin thực chất về khách

???
Code của tôi chính là sự mềm dẻo, tùy biến.
Mặc dù người hỏi yêu cầu 1 tháng nhưng code của tôi phục vụ dữ liệu nhiều tùy ý.
Nếu chỉ phục vụ 1 tháng thì chỉ cần
Mã:
Arr = sh.Range("A3:M35").Value
Nhưng tại sao tôi dùng?
Mã:
Arr = sh.Range("A3:M" & r).Value
Tôi có điên đâu? Tôi viết thế chính là để phục vụ dữ liệu nhiều tùy ý.

Tôi viết code là có suy nghĩ, không chỉ bó hẹp trong yêu cầu của người hỏi.

Khách đến đặt phòng từ 28-06 tới 13-07? Thì nhập tiếp trong cột A sau ngày 30-06 những ngày 01-07 tới 13-07 rồi nhấn cập nhật thôi.

Sau một thời gian sang tận tháng 8 không cần tháng 6 và 7 nữa? Thì hủy các dòng (delete các dòng chứ không phải chỉ xóa nội dung) ứng với tháng 6 và 7 trong sheet DAT PHONG rồi nhấn cập nhật thôi. Sheet DAT PHONG "gầy" đi thì sheet THONG TIN cũng gầy đi. Thế thôi.

Nếu cần lưu thông tin trong sheet THONG TIN của tháng 6 và 7? Thì trước khi delete các dòng tháng 6 và 7 ở sheet DAT PHONG thì trong sheet THONG TIN copy các dòng ứng với tháng 6 và 7, chúng đứng liền nhau do sắp xếp, sang sheet mới thôi.

Chính vì code của tôi phục vụ dữ liệu nhiều tùy ý nên tôi đã nói là không thể dùng 372. Dùng 372 là cố tình hạn chế khả năng code của tôi, làm nó nghèo nàn đi.
--------------
Tất nhiên khi xóa dữ liệu cũ thì tôi quên không lấy vùng đủ lớn. Vì vậy chủ chủ đề nên sửa
Mã:
Worksheets("THONG TIN").Range("A4:F34").ClearContents
thành vd.
Mã:
Worksheets("THONG TIN").Range("A4:F1000").ClearContents
 
Upvote 0
Mình nêu ra là để chủ đề tài dè chừng hay nêu tiếp vấn đề cần giải quyết thôi.

Rất vui & cám ơn bạn đã giải đáp rất chi là cặn kẻ!
 
Upvote 0
Code của tôi chính là sự mềm dẻo, tùy biến.
Mặc dù người hỏi yêu cầu 1 tháng nhưng code của tôi phục vụ dữ liệu nhiều tùy ý.
Nếu chỉ phục vụ 1 tháng thì chỉ cần
Mã:
Arr = sh.Range("A3:M35").Value
Nhưng tại sao tôi dùng?
Mã:
Arr = sh.Range("A3:M" & r).Value
Tôi có điên đâu? Tôi viết thế chính là để phục vụ dữ liệu nhiều tùy ý.

Tôi viết code là có suy nghĩ, không chỉ bó hẹp trong yêu cầu của người hỏi.

Khách đến đặt phòng từ 28-06 tới 13-07? Thì nhập tiếp trong cột A sau ngày 30-06 những ngày 01-07 tới 13-07 rồi nhấn cập nhật thôi.

Sau một thời gian sang tận tháng 8 không cần tháng 6 và 7 nữa? Thì hủy các dòng (delete các dòng chứ không phải chỉ xóa nội dung) ứng với tháng 6 và 7 trong sheet DAT PHONG rồi nhấn cập nhật thôi. Sheet DAT PHONG "gầy" đi thì sheet THONG TIN cũng gầy đi. Thế thôi.

Nếu cần lưu thông tin trong sheet THONG TIN của tháng 6 và 7? Thì trước khi delete các dòng tháng 6 và 7 ở sheet DAT PHONG thì trong sheet THONG TIN copy các dòng ứng với tháng 6 và 7, chúng đứng liền nhau do sắp xếp, sang sheet mới thôi.

Chính vì code của tôi phục vụ dữ liệu nhiều tùy ý nên tôi đã nói là không thể dùng 372. Dùng 372 là cố tình hạn chế khả năng code của tôi, làm nó nghèo nàn đi.
--------------
Tất nhiên khi xóa dữ liệu cũ thì tôi quên không lấy vùng đủ lớn. Vì vậy chủ chủ đề nên sửa
Mã:
Worksheets("THONG TIN").Range("A4:F34").ClearContents
thành vd.
Mã:
Worksheets("THONG TIN").Range("A4:F1000").ClearContents
Cảm ơn anh đã giải thích rõ ràng và thật dễ hiểu.
 
Upvote 0

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

Back
Top Bottom