Hỏi về Data validation -> không cho trùng dữ liệu (1 người xem)

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

pacificvo

Thành viên mới
Tham gia
17/6/07
Bài viết
2
Được thích
2
Trong ví dụ sau:

Tên hành khách _______ Số ghế
Nguyen Van A____________12A
Tran Thi B_______________37C
Vo Van C________________13D


Có thể dùng chức năng validation để thông báo khi ta nhập trùng số ghế vào cột Số ghế không ? (mỗi tên khách chỉ được có 1 số ghế duy nhất)Mình đã thử validation nhưng không được, còn cách nào khác không mấy bro ? TKS !
 
Lần chỉnh sửa cuối:
pacificvo đã viết:
Trong ví dụ sau:

Tên hành khách _______ Số ghế
Nguyen Van A____________12A
Tran Thi B_______________37C
Vo Van C________________13D


Có thể dùng chức năng validation để thông báo khi ta nhập trùng số ghế vào cột Số ghế không ? (mỗi tên khách chỉ được có 1 số ghế duy nhất)Mình đã thử validation nhưng không được, còn cách nào khác không mấy bro ? TKS !

Bạn xem qua nhé !!!
 

File đính kèm

Tôi chưa sử dụng chức năng validation bao giờ nên dù đã down file soghe.xls xem nhưng không hiểu. Các bạn có thể nói thêm về cách làm được không? Thanks!
 
vi rus đã viết:
Tôi chưa sử dụng chức năng validation bao giờ nên dù đã down file soghe.xls xem nhưng không hiểu. Các bạn có thể nói thêm về cách làm được không? Thanks!

Bạn thử nhập thêm một số ghế đã có bên trên xem như thế nào

Thân !
 
Vâng tôi đã thử và thấy rất hay, ý tôi muốn hỏi là bạn làm như thế nào để được như vậy?
 
vi_rus đã viết:
Vâng tôi đã thử và thấy rất hay, ý tôi muốn hỏi là bạn làm như thế nào để được như vậy?

Cụ thể với file trên, nếu bạn muốn biết làm thế nào để được vậy - bạn hãy mở file SoGhe tiếp theo bạn vào Menu Data chọn mục Validation sau đó chọn thẻ Settings và ErrorAlert. Bạn hãy quan sát kỹ các thuộc tính của 2 thẻ này để biết cách làm.

Chúc bạn vui !
 
Cách này cũng hay nhưng vẫn ko ổn lắm. Nếu tự tay đánh vào mà nó phát hiện có trùng với dử liệu đã có ở trên thì nó sẽ báo lỗi. Còn nếu như bạn thử dùng chuột kéo fill xuống thì nó chẳng báo gì cả. Thử xem!
ANH TUẤN
 
Tốt nhất kết hợp thêm Conditional Formating nữa
 
Lần chỉnh sửa cuối:
bạn thử chuyển số ghế thành dữ liệu số và dùng hàm mode(cột số ghế) để tìm dữ liệu trùng.
 
lxthanh đã viết:
bạn thử chuyển số ghế thành dữ liệu số và dùng hàm mode(cột số ghế) để tìm dữ liệu trùng.

Hàm mode chỉ có tác dụng chỉ ra được 1 phần tử nào đấy trong tập hợp mà nó xuất hiện nhiều nhất

Thân!
 
Ứng dụng Validation như thế nào?

Chào mọi người, mình có vấn đề này nhưng chưa có hướng giải quyết.
Ví dụ: Mình có 5 cột: A, B, C, D, E, F, ...
Yêu cầu là: Mình muốn dùng chức năng Validaiton để thông báo:
Phải theo thứ tự từ A, B, .....Z nếu A là gõ số 1 thì cột tiếp theo bắt buộc phải là số 0 hoặc để rỗng, nếu gõ số 1 thì hiện ra thông báo "Bạn phải nhập số 0"
Giả sử cột A là số 0 thì bắt buộc cột tiếp theo nó phải gõ số 1 mới được, nếu gõ số 0 thì hiện thông báo "Bạn phải gõ số 1"
Tương tự như thế cứ tiếp diễn theo quy luât: 1 0 1 0 1.....

Mong mọi người chỉ dẫn, Cảm ơn rất nhiêu, chúc GPEC có nhiểu tiến bộ hơn nữa!)(&&@@
 
Chào mọi người, mình có vấn đề này nhưng chưa có hướng giải quyết.
Ví dụ: Mình có 5 cột: A, B, C, D, E, F, ...
Yêu cầu là: Mình muốn dùng chức năng Validaiton để thông báo:
Phải theo thứ tự từ A, B, .....Z nếu A là gõ số 1 thì cột tiếp theo bắt buộc phải là số 0 hoặc để rỗng, nếu gõ số 1 thì hiện ra thông báo "Bạn phải nhập số 0"
Giả sử cột A là số 0 thì bắt buộc cột tiếp theo nó phải gõ số 1 mới được, nếu gõ số 0 thì hiện thông báo "Bạn phải gõ số 1"
Tương tự như thế cứ tiếp diễn theo quy luât: 1 0 1 0 1.....

Mong mọi người chỉ dẫn, Cảm ơn rất nhiêu, chúc GPEC có nhiểu tiến bộ hơn nữa!)(&&@@

Vào Data Validation, tại thẻ Setting, chọn trong Allow > Custom; Tại Formular bạn gõ =IF(A1=0,1,0)

Tại thẻ Error Alert > Chọn Style là Stop (đề nghị) > Title bạn gõ THÔNG BÁO (đề nghị), Error message bạn gõ BẠN PHẢI NHẬP LÀ SỐ 0

Tương tự với cột B, với công thức là =IF(B1=1,1,0) ..., msg bạn gõ lại là BẠN PHẢI NHẬP SỐ 1.

BẠN CHỈ LÀM 2 CELL A1 VÀ B1 THÔI, SAU ĐÓ BẠN COPY TỪ TRÊN XUỐNG DƯỚI, TỪ TRÁI SANG PHẢI THEO Ý CỦA BẠN.


Thân ái.
 
Lần chỉnh sửa cuối:
Như vậy nếu trường hợp cột C là rỗng thì cột D ở đây không gõ được số 0,
Ý mình là phải tất cả phải theo thư tự là: 1 0 1 0 1 0 .......lạo trừ những ô rỗng, tức là nếu A là 1 B rỗng thì muốn cho giá trị vào C thì C phải là số 0.
Mong mọi người chỉ bảo thêm
Thanks!

Có phải ý bạn là khi gõ vào tại cell A1 là 0 thì cell B1 phải tự hiển thị là 1, rồi C1 tự hiển thị là 0 .... ???
Ý mình là nếu cell đầu tiên là 1 thì cell tiếp theo nó phải là 0 mới chấp nhận, Không kể những ô không có giá trị
Ví dụ: Cell A1=1
Cell B, C rỗng chẳng hạn, thì Cell D phải là 0
Thanks mọi người!
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Mong các cao thủ trợ giúp, Thanks!
Thấy yêu cầu này ngồ ngộ, không biết có công việc nào cần cái "zụ" này hông nữa
Tạm thời mình làm thế này:
- Khi chọn sheet1 nó sẽ tự động tạo validation cho các cell từ A1 đến BW1 với list là 0 và 1
- Bạn nhập một số (0 hoặc 1) ở cell bất kỳ trong hàng 1, chọn một cell khác về phía bên phải cell vừa nhập, bấm Ctrl + M rồi xem validation trong cell đang chọn nhé
( Mình định đưa vào sự kiện của sheet nhưng vì chưa biết bạn làm gì nên tạm thời thế này thôi nhé)
 

File đính kèm

Thấy yêu cầu này ngồ ngộ, không biết có công việc nào cần cái "zụ" này hông nữa
Tạm thời mình làm thế này:
- Khi chọn sheet1 nó sẽ tự động tạo validation cho các cell từ A1 đến BW1 với list là 0 và 1
- Bạn nhập một số (0 hoặc 1) ở cell bất kỳ trong hàng 1, chọn một cell khác về phía bên phải cell vừa nhập, bấm Ctrl + M rồi xem validation trong cell đang chọn nhé
( Mình định đưa vào sự kiện của sheet nhưng vì chưa biết bạn làm gì nên tạm thời thế này thôi nhé)
Ví dụ: Giờ mình muốn quản lý tình hình sử dụng của một thẻ T:
Mình muốn dùng số 1, 0 để thể hiện tình hình sử dụng của thẻ T
Giả sử: Số 1: Thẻ T đang sử dụng
2: Thẻ T không còn sử dụng
Giả sử ngày 1/8/2010: thẻ này đã giao cho khách hàng A(thẻ đang sử dụng)----->1
3/8/2010: Khách A trả thẻ----->0
7/8/2010: Thẻ này bán cho khách hàng B khác------>1
8/8/2010: Khách hàng B trả thẻ------>0
Cứ như thế thẻ thẻ T này được sử dụng nhiểu lần.
Mình muốn dung thuộc tính Validation để áp dụng trường hợp này nhưng ko rõ lắm
Tức là nếu ngày 3/8 khách hàng A trả thẻ thì ngày 7/8/2010 khách hàng B mới có thể sử dụng thẻ T này và khi đó ta mới có thể chọn số 1, nếu chọn số 0 thì sẽ báo lỗi, và trường hợp ngược lại.
Mình có hướng này, nếu mọi người có gỉai pháp nào hay thì share cho mình với
Thanks GPEC!
 
Ví dụ: Giờ mình muốn quản lý tình hình sử dụng của một thẻ T:
Mình muốn dùng số 1, 0 để thể hiện tình hình sử dụng của thẻ T
Giả sử: Số 1: Thẻ T đang sử dụng
2: Thẻ T không còn sử dụng
Giả sử ngày 1/8/2010: thẻ này đã giao cho khách hàng A(thẻ đang sử dụng)----->1
3/8/2010: Khách A trả thẻ----->0
7/8/2010: Thẻ này bán cho khách hàng B khác------>1
8/8/2010: Khách hàng B trả thẻ------>0
Cứ như thế thẻ thẻ T này được sử dụng nhiểu lần.
Mình muốn dung thuộc tính Validation để áp dụng trường hợp này nhưng ko rõ lắm
Tức là nếu ngày 3/8 khách hàng A trả thẻ thì ngày 7/8/2010 khách hàng B mới có thể sử dụng thẻ T này và khi đó ta mới có thể chọn số 1, nếu chọn số 0 thì sẽ báo lỗi, và trường hợp ngược lại.
Mình có hướng này, nếu mọi người có gỉai pháp nào hay thì share cho mình với
Thanks GPEC!
Có thể là như thế này, ngồi buồn buồn làm đại, có gì nói tiếp (thật ra chẳng hiểu mô tê chi rứa)
 

File đính kèm

oh,đúng ý mình rồi,
Mà có cách nào để câu thông báo hiên ra theo như yêu cầu của mình không cậu.
Thank!
Oh, may quá, làm đại mà cũng trúng, mà mình "hổng" phải Cậu (mình là Cò mà)
Vậy bạn muốn câu thông báo hiện ra như thế nào "zị"?
 
Oh, may quá, làm đại mà cũng trúng, mà mình "hổng" phải Cậu (mình là Cò mà)
Vậy bạn muốn câu thông báo hiện ra như thế nào "zị"?
Kaka, Nếu trước đó là số 1, mình nhập số 1 ở cell tiếp theo nó sẽ báo lỗi, câu thông báo như zay chẳng hạn:"Thẻ này khách đã sử dụng chưa trả".
Thanks Co!
 
Kaka, Nếu trước đó là số 1, mình nhập số 1 ở cell tiếp theo nó sẽ báo lỗi, câu thông báo như zay chẳng hạn:"Thẻ này khách đã sử dụng chưa trả".
Thanks Co!

Tôi nghĩ bài này đã trả lời cho bạn câu hỏi này rồi nè!

Vào Data Validation, tại thẻ Setting, chọn trong Allow > Custom; Tại Formular bạn gõ =IF(A1=0,1,0)

Tại thẻ Error Alert > Chọn Style là Stop (đề nghị) > Title bạn gõ THÔNG BÁO (đề nghị), Error message bạn gõ BẠN PHẢI NHẬP LÀ SỐ 0

Tương tự với cột B, với công thức là =IF(B1=1,1,0) ..., msg bạn gõ lại là BẠN PHẢI NHẬP SỐ 1.

BẠN CHỈ LÀM 2 CELL A1 VÀ B1 THÔI, SAU ĐÓ BẠN COPY TỪ TRÊN XUỐNG DƯỚI, TỪ TRÁI SANG PHẢI THEO Ý CỦA BẠN.


Thân ái.
 
Híc, cái "thằng" validation này tạo bằng code thì phải vào code "xử" nó chứ lị, phạt Learning 5 ve và phải vào code sửa cho bạn ba.ho_eis

Cái này tác giả đưa File lên và nói rõ ý đồ của mình đi, em bảo đảm không cần dùng Code, mà dùng Validation là đủ rồi cần gì viết code cho nhọc công vậy Bác! Mất công lại phải viết thêm UniMsgbox nữa, rõ khổ, trong khi thằng Msg trong Validation vừa đẹp mắt vừa cho viết tiếng Việt!

Ẹc ẹc ....
 
Tác giả đã nói rõ ý rồi, và Cò già đã làm đúng ý. Learning không dùng code làm thử 1 file đưa lên đi.
Nếu mà làm không được, đề nghị Bác Cò phạt quỳ gai mít cho chừa. À không, quỳ nắp chai bia mới đúng tội .
 
Tác giả đã nói rõ ý rồi, và Cò già đã làm đúng ý. Learning không dùng code làm thử 1 file đưa lên đi.
Nếu mà làm không được, đề nghị Bác Cò phạt quỳ gai mít cho chừa. À không, quỳ nắp chai bia mới đúng tội .

CÓ NGƯỜI THẦY CHỈ THẤY PHẠT MÀ KHÔNG THẤY THƯỞNG NÈ!

Bài này sẽ so sánh viết code và không code nhé!
 

File đính kèm

Lần chỉnh sửa cuối:
Thật ra không biết được tác giả có chắc chắn rằng tới mỗi kỳ (ngày hay tháng hoặc năm... gì đó) có đánh dấu 0 hoặc 1 hay không, bởi nếu không đánh dấu gì thì ai biết được đã thuê hay không thuê, chính mình còn không xác định thì làm sao máy hiểu nhỉ? Em đang thắc mắc điểm này!
 
Như vậy nếu trường hợp cột C là rỗng thì cột D ở đây không gõ được số 0,
Ý mình là phải tất cả phải theo thư tự là: 1 0 1 0 1 0 .......lạo trừ những ô rỗng, tức là nếu A là 1 B rỗng thì muốn cho giá trị vào C thì C phải là số 0.
....
Ý mình là nếu cell đầu tiên là 1 thì cell tiếp theo nó phải là 0 mới chấp nhận, Không kể những ô không có giá trị
Ví dụ: Cell A1=1
Cell B, C rỗng chẳng hạn, thì Cell D phải là 0
Thanks mọi người!
Mình muốn dùng số 1, 0 để thể hiện tình hình sử dụng của thẻ T
Giả sử: Số 1: Thẻ T đang sử dụng
2: Thẻ T không còn sử dụng
Giả sử ngày 1/8/2010: thẻ này đã giao cho khách hàng A(thẻ đang sử dụng)----->1
3/8/2010: Khách A trả thẻ----->0

Nghĩa là 1 và 0 là tình trạng thẻ: đã cho mượn và đã trả. Thí dụ cũng rất rõ ràng: Ngày cho mượn đánh 1, ngày trả đánh 0. Ngày chưa trả hoặc chưa cho mượn thì không ghi để trống. Nhiệm vụ của validation là đi tìm ô có giá trị 1 hoặc 0 gần nhất bên trái để buộc ô này là 0 hay 1 (ngược lại).
Code Cò già làm đúng như vậy rồi.
Còn của ku Learning, nếu ngày 1 tình trạng là đã cho mượn, ngày 2 chưa trả (để trống), ngày 3 cũng có thể cho mượn lần nữa.
Môt chuyện nữa: có 1 thẻ, đã cho 1 ai đó mượn rồi, mà khi trả rồi, đánh 0 rồi, ngày kế muốn đánh 0 nữa cũng được, nghĩa là 2, 3 lần trả cho 1 lần mượn thẻ?

Vậy, quỳ đúng tội chưa?
 
Lần chỉnh sửa cuối:
Ngay từ lúc đầu bài 1, tác giả đã nói thế này:
Chào mọi người, mình có vấn đề này nhưng chưa có hướng giải quyết.
Ví dụ: Mình có 5 cột: A, B, C, D, E, F, ...
Yêu cầu là: Mình muốn dùng chức năng Validaiton để thông báo:
Phải theo thứ tự từ A, B, .....Z nếu A là gõ số 1 thì cột tiếp theo bắt buộc phải là số 0 hoặc để rỗng, nếu gõ số 1 thì hiện ra thông báo "Bạn phải nhập số 0"
Giả sử cột A là số 0 thì bắt buộc cột tiếp theo nó phải gõ số 1 mới được, nếu gõ số 0 thì hiện thông báo "Bạn phải gõ số 1"
Tương tự như thế cứ tiếp diễn theo quy luât: 1 0 1 0 1.....

Mong mọi người chỉ dẫn, Cảm ơn rất nhiêu, chúc GPEC có nhiểu tiến bộ hơn nữa!)(&&@@

Cho nên mới làm theo đó, còn triển khai thêm thì tác giả gửi File lên đi chứ!


Một số lý do đang thắc mắc:

1) Nếu một người hoàn toàn không biết code, thử hỏi sẽ ứng dụng như thế nào đây?

2) Mỗi kỳ tiếp theo phải kiểm tra chứ sao lại để một khoảng thời gian rồi mới đánh dấu? trong khi ô trống không có nghĩa là đã thuê hay chưa thuê?

3) Nếu mỗi kỳ đã kiểm tra thì mắc mớ gì gõ vào một thời điểm ở tương lai một con số nào đó làm chi? => không cần thiết!



---------------------------------------

À, nếu thêm số 2 nữa thì thêm công thức vào thôi, nếu đã là 2 phía trước "quánh" cái gì vào đó sẽ báo lỗi thêm "thẻ này không còn sử dụng!"

Sơ bộ thì code của bác concogia đáp ứng được yêu cầu của câu hỏi, nhưng thật ra code của Bác CÒ không phải là không có thiếu sót, ví dụ ở ô C4 có giá trị là 2 thì tại D4 vẫn gõ vào 1 được và E4 lại tiếp tục xuất hiện list với giá trị là 0 => đã mất thẻ sao cho thuê tiếp (1), và lại tiếp tục trả thẻ (0)?

Thêm nữa là nếu thẻ đang sử dụng bị mất, không thể gõ vào 2 được?
 
Lần chỉnh sửa cuối:
Ngay từ lúc đầu bài 1, tác giả đã nói thế này:


Cho nên mới làm theo đó, còn triển khai thêm thì tác giả gửi File lên đi chứ!


Một số lý do đang thắc mắc:

1) Nếu một người hoàn toàn không biết code, thử hỏi sẽ ứng dụng như thế nào đây?

2) Mỗi kỳ tiếp theo phải kiểm tra chứ sao lại để một khoảng thời gian rồi mới đánh dấu? trong khi ô trống không có nghĩa là đã thuê hay chưa thuê?

3) Nếu mỗi kỳ đã kiểm tra thì mắc mớ gì gõ vào một thời điểm ở tương lai một con số nào đó làm chi? => không cần thiết!


---------------------------------------

À, nếu thêm số 2 nữa thì thêm công thức vào thôi, nếu đã là 2 phía trước "quánh" cái gì vào đó sẽ báo lỗi thêm "thẻ này không còn sử dụng!"
Bạn Learning_Excel nói vậy cũng đúng, nhưng bạn thử nghĩ nếu 10,000 thẻ như vậy mình phải gõ 10,000 lần cho mỗi ngày vậy sao.
Mình chỉ muốn cho giá trị vào cell mà ngày đó thẻ có sự thay đổi thôi.
Mọi người có cách nào để thể hiện Thông báo theo như yêu cầu không.
Thanks GPEC!
 

File đính kèm

Cho nên mới làm theo đó, còn triển khai thêm thì tác giả gửi File lên đi chứ!
Không có file mà Bác Cò già vẫn làm đúng. Đâu nhất thiết phải có file? Thực ra phải đến 3, 4 bài mới hểu hết ý tác giả, chỉ là do diễn đạt không đúng thôi.
Một số lý do đang thắc mắc:
1) Nếu một người hoàn toàn không biết code, thử hỏi sẽ ứng dụng như thế nào đây?
Nếu 1 người không biết code, thì chép code Bác Cò về xài, vì vậy mới có GPE.
2) Mỗi kỳ tiếp theo phải kiểm tra chứ sao lại để một khoảng thời gian rồi mới đánh dấu? trong khi ô trống không có nghĩa là đã thuê hay chưa thuê?
Người ta muốn dùng validation để kiểm tra đấy! Ô trống có nghĩa là mượn chưa trả, hoặc trả chưa ai mượn. Một ô là 1 ngày mà, người ta có quyền mượn nhiều ngày mới trả chứ? Hoặc ế, để không cả tuần mới có người khác mượn thì sao?
3) Nếu mỗi kỳ đã kiểm tra thì mắc mớ gì gõ vào một thời điểm ở tương lai một con số nào đó làm chi? => không cần thiết!
Validation là để kiểm tra. Ai nói là người dùng gõ vào 1 ô ở tương lai? Nhưng khi test thì phải test mọi trường hợp.

Nói lại cho rõ là khi tình trạng 1 ô là 1, nghĩa là đã có cho mượn mất rồi, thì từ ô kế tiếp trở đi, chỉ được quyền để trống hoặc nhận trả về (0). Nếu 1 ô đã đánh 0, nghĩa là đã trả, thì từ ô kế tiếp trở về sau, đổi điều kiện validation, chỉ có thể để trống hoặc cho mượn đi (1) mà thôi.
 
Híc, cái "thằng" validation này tạo bằng code thì phải vào code "xử" nó chứ lị, phạt Learning 5 ve và phải vào code sửa cho bạn ba.ho_eis
Không có file mà Bác Cò già vẫn làm đúng. Đâu nhất thiết phải có file? Thực ra phải đến 3, 4 bài mới hểu hết ý tác giả, chỉ là do diễn đạt không đúng thôi.

Nếu 1 người không biết code, thì chép code Bác Cò về xài, vì vậy mới có GPE.

Người ta muốn dùng validation để kiểm tra đấy! Ô trống có nghĩa là mượn chưa trả, hoặc trả chưa ai mượn. Một ô là 1 ngày mà, người ta có quyền mượn nhiều ngày mới trả chứ? Hoặc ế, để không cả tuần mới có người khác mượn thì sao?

Validation là để kiểm tra. Ai nói là người dùng gõ vào 1 ô ở tương lai? Nhưng khi test thì phải test mọi trường hợp.

Nói lại cho rõ là khi tình trạng 1 ô là 1, nghĩa là đã có cho mượn mất rồi, thì từ ô kế tiếp trở đi, chỉ được quyền để trống hoặc nhận trả về (0). Nếu 1 ô đã đánh 0, nghĩa là đã trả, thì từ ô kế tiếp trở về sau, đổi điều kiện validation, chỉ có thể để trống hoặc cho mượn đi (1) mà thôi.
Bác Cò có code của trường hợp Validation này thì cho mình xin đi, vụ nay mình hơi kém.
Thanks GPEC!
 
Như em đã nói thêm tại đây:
....................
Sơ bộ thì code của bác concogia đáp ứng được yêu cầu của câu hỏi, nhưng thật ra code của Bác CÒ không phải là không có thiếu sót, ví dụ ở ô C4 có giá trị là 2 thì tại D4 vẫn gõ vào 1 được và E4 lại tiếp tục xuất hiện list với giá trị là 0 => đã mất thẻ sao cho thuê tiếp (1), và lại tiếp tục trả thẻ (0)?

Thêm nữa là nếu thẻ đang sử dụng bị mất, không thể gõ vào 2 được?

Theo em nghĩ vẫn có giải pháp không viết code, em đang nghiên cứu!!!
 
Ăn gian edit bài sau khi có trả lời nha! Phạm luật chơi là phạt nặng à nha!

Có thêm tình trạng 2 là mất thẻ ở đâu ra? Hình như chỉ có tình trạng 2 là không còn sử dụng.
Cứ cho là có đi, thì sửa code bác Cò 1 chút, thêm vào list cho phép con số 2, và nếu là 2 thì không cho nhập kí rì hết.

Ngoài ra làm cảnh báo luôn đây.
 

File đính kèm

Lần chỉnh sửa cuối:
Ăn gian edit bài sau khi có trả lời nha! Phạm luật chơi là phạt nặng à nha!

Có thêm tình trạng 2 là mất thẻ ở đâu ra? Hình như chỉ có tình trạng 2 là không còn sử dụng.
Cứ cho là có đi, thì sửa code bác Cò 1 chút, thêm vào list cho phép con số 2, và nếu là 2 thì không cho nhập kí rì hết.

Ngoài ra làm cảnh báo luôn đây.

OK, code của THẦY phát triển thêm từ code của Concogia, em tâm phục khẩu phục! Nhưng nói em ăn gian thì hỏng có phải Thầy ui, sau khi gửi bài xong em tiếp tục làm thử công thức (tới giờ vẫn chưa ra, mà có ra họa chăng chỉ có 1 msg chung), có Refresh đâu mà biết có bài đã trả lời rồi! Sau khi sửa lại thì một đống bài đã gửi lên! Bó tay luôn!

Theo em nghĩ tại cột C tình trạng ban đầu để làm mốc, và thêm 1 cột nữa làm cột tình trạng hiện tại để nhìn vào cột đó là biết liền; chứ mỗi lần dò 1 thẻ/ n thẻ, 1 kỳ/ m kỳ, cũng khá mệt mõi!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Ăn gian edit bài sau khi có trả lời nha! Phạm luật chơi là phạt nặng à nha!

Có thêm tình trạng 2 là mất thẻ ở đâu ra? Hình như chỉ có tình trạng 2 là không còn sử dụng.
Cứ cho là có đi, thì sửa code bác Cò 1 chút, thêm vào list cho phép con số 2, và nếu là 2 thì không cho nhập kí rì hết.

Ngoài ra làm cảnh báo luôn đây.
Thanks Ptm 0412 nhiều,
Mình học rất nhiều từ diễn đàn này, Chúc cho GPEC ngày càng phát triển hơn,Chúc ban quản trị thành công...!
 
Bài này vẫn có thể không dùng code. Tuy nhiên, chỉ dùng validation thì chỉ có 1 dạng cảnh báo chung. Đố Learning Excel làm được. Quỳ vẫn phải quỳ, nhưng lần này làm được có thưởng.
 
Bài này vẫn có thể không dùng code. Tuy nhiên, chỉ dùng validation thì chỉ có 1 dạng cảnh báo chung. Đố Learning Excel làm được. Quỳ vẫn phải quỳ, nhưng lần này làm được có thưởng.

Chiều tối qua, ngồi mò mẫm mãi, định kết hợp các hàm IF, AND, OR, COUNTIF, COLUMNS (tính số cột chẳn lẻ), ISODD... đang làm cũng chẳng biết có lối ra không, thấy bài của Thầy post lên hay quá, đáp ứng đầy đủ cách mà em định làm, thế là không muốn làm nữa, cũng chẳng save lại. Chắc rảnh rỗi làm lại để được "chai sữa bắp" hay "bánh canh giò heo" gì của Thầy xem có được không hen!!! Hihihihi
 
Nguyên lý là đi tìm ô có dữ liệu cuối cùng của dòng, từ cột C đến cột kề bên trái ô đang xét, xem là bao nhiêu, 0, 1, hay 2, rồi gán validation tương ứng.
Thí dụ đang gán validation cho ô K5, thì tìm từ C5 đến J5 xem giá trị ô cuối (có giá trị) là bao nhiêu.
Một tô hoặc 1 chai!
 
Ăn gian edit bài sau khi có trả lời nha! Phạm luật chơi là phạt nặng à nha!

Có thêm tình trạng 2 là mất thẻ ở đâu ra? Hình như chỉ có tình trạng 2 là không còn sử dụng.
Cứ cho là có đi, thì sửa code bác Cò 1 chút, thêm vào list cho phép con số 2, và nếu là 2 thì không cho nhập kí rì hết.

Ngoài ra làm cảnh báo luôn đây.
Món này mình kém lắm,
Bác Ptm 0412, pác có thể nói rõ hơn quy trình viết code này không,
Mình không rõ các câu thông báo này, code của nó được viết ở đâu cả,
Thank pác!
 
Các câu cảnh báo nằm trong name.
Quy trình viết code à, code đó của Bác Cò, tôi chỉ thêm tí mắm muối. Có lẽ Bác ấy (và cả tôi) record macro và sửa chút đỉnh và đặt điều kiện theo ý mình.
 
Lần chỉnh sửa cuối:
Món này mình kém lắm,
Bác Ptm 0412, pác có thể nói rõ hơn quy trình viết code này không,
Mình không rõ các câu thông báo này, code của nó được viết ở đâu cả,
Thank pác!

Các câu cảnh báo nằm trong name.
Quy trình viết code à, code đó của Bác Cò, tôi chỉ thêm tí mắm muối. Có lẽ Bác ấy (và cả tôi) record macro và sửa chút đỉnh và đặt điều kiện theo ý mình.

Hic hic, viết code mà người dùng không biết gì về nó càng thảm hại hơn, code là cố định địa chỉ cells, còn nếu làm mà không code có thể copy sao chép vẫn hiểu. Mình cố muốn làm trên Excel cho người chưa biết VBA, nhưng chưa đáp ứng được yêu cầu.

Thầy Mỹ làm trên Excel giúp bạn ấy đi, code này mà ứng dụng trên bảng biểu của bạn ấy là bó tay.

@: ba.ho_eis: Bạn cũng nên gửi File thật của bạn lên đi sẽ dễ dàng giúp cho bạn!
 
Hic hic, viết code mà người dùng không biết gì về nó càng thảm hại hơn, code là cố định địa chỉ cells, còn nếu làm mà không code có thể copy sao chép vẫn hiểu. Mình cố muốn làm trên Excel cho người chưa biết VBA, nhưng chưa đáp ứng được yêu cầu.

@: ba.ho_eis: Bạn cũng nên gửi File thật của bạn lên đi sẽ dễ dàng giúp cho bạn!
Sao lại coi thường bạn mình đến thế? Người ta khi áp dụng sẽ phải thay đổi cho phù hợp, không thay đổi được sẽ hỏi tiếp chứ có sao đâu?

Thầy Mỹ làm trên Excel giúp bạn ấy đi, code này mà ứng dụng trên bảng biểu của bạn ấy là bó tay.

Đã bó tay thì công thức cũng sẽ bó tay!
Viết code hay công thức gì cũng vậy, đâu bao giờ copy 100% vào là xài được ngay? Cố gắng lắm thì cũng là dùng 1 Name động áp dụng dự phòng cho dữ liệu nhập thêm vào, người dùng cũng phải vận dụng lại cho dữ liệu thực. Nhưng tin chắc là bạn mình không tệ như Learning nói, trừ phi Learning đang khích tướng để người khác làm cho Learning xem.

Tôi thì không bị khích tướng đâu, nhưng cũng post cách làm lên đây, coi như khỏi thưởng khỏi phạt.

1. Về VBA: Dùng 1 Name động co dãn 2 chiều, sẽ không phải sửa code cho dữ liệu thực, nhưng sẽ phải sửa Name cho phù hợp dữ liệu thực. Name trong file là:
=OFFSET(ValiVBA!$D$5;0;0;COUNTA(ValiVBA!$A$5:$A$1000);COUNTA(ValiVBA!$D$4:$IV$4))

2. Về Validation không dùng VBA:

Vẫn phải sửa tham chiếu trong công thức dùng làm list cho Validation (A1:B2) và công thức chọn list của validation. Công thức đó là:

=IF(HLOOKUP(3;$D4:D4;1;1)=0;$A$1:$A$2;IF(HLOOKUP(3;$D4:D4;1;1)=1;$B$1:$B$2;" "))
 

File đính kèm

Lần chỉnh sửa cuối:
Sao lại coi thường bạn mình đến thế? Người ta khi áp dụng sẽ phải thay đổi cho phù hợp, không thay đổi được sẽ hỏi tiếp chứ có sao đâu?



Đã bó tay thì công thức cũng sẽ bó tay!
Viết code hay công thức gì cũng vậy, đâu bao giờ copy 100% vào là xài được ngay? Cố gắng lắm thì cũng là dùng 1 Name động áp dụng dự phòng cho dữ liệu nhập thêm vào, người dùng cũng phải vận dụng lại cho dữ liệu thực. Nhưng tin chắc là bạn mình không tệ như Learning nói, trừ phi Learning đang khích tướng để người khác làm cho Learning xem.

Tôi thì không bị khích tướng đâu, nhưng cũng post cách làm lên đây, coi như khỏi thưởng khỏi phạt.

1. Về VBA: Dùng 1 Name động co dãn 2 chiều, sẽ không phải sửa code cho dữ liệu thực, nhưng sẽ phải sửa Name cho phù hợp dữ liệu thực. Name trong file là:
=OFFSET(ValiVBA!$D$5;0;0;COUNTA(ValiVBA!$A$5:$A$1000);COUNTA(ValiVBA!$D$4:$IV$4))

2. Về Validation không dùng VBA:

Vẫn phải sửa tham chiếu trong công thức dùng làm list cho Validation (A1:B2) và công thức chọn list của validation. Công thức đó là:

=IF(HLOOKUP(3;$D4:D4;1;1)=0;$A$1:$A$2;IF(HLOOKUP(3;$D4:D4;1;1)=1;$B$1:$B$2;" "))
Hjx,.. Pác ptm0412 thật nhiệt tình không như bạn Learning_Excel chỉ toàn nói thôi không hè.
Giờ em muốn mở rộng thêm,
Pác ptm0412 & Learning_Excel xem giúp em với.
Em có đính kèm file.
Thanks các pác!
 

File đính kèm

Hjx,.. Pác ptm0412 thật nhiệt tình không như bạn Learning_Excel chỉ toàn nói thôi không hè.
Giờ em muốn mở rộng thêm,
Pác ptm0412 & Learning_Excel xem giúp em với.
Em có đính kèm file.
Thanks các pác!

Ái chà, hình như bạn là người đang cần giúp đỡ thì phải, mình hỏi nhiều như vậy cốt để biết rõ chi tiết bạn cần làm là gì để có hướng giúp bạn tốt hơn thôi.
Nếu như làm theo File của bạn thì có nhiều điều bất cập. Lấy ví dụ, nếu người thuê sách trả sách ngay trong ngày thì bạn sẽ xử sự sao đây? Vài trăm thẻ cũng không sao, tạm là thủ công được đi, nếu hàng ngàn, hàng vạn cuốn sách bạn sẽ xử lý như thế nào nhỉ? Còn nữa, 1 bộ truyện có nhiều cuốn, nếu họ mượn trọn bộ thì không nói gì, mượn vài cuốn trong bộ truyện đó không biết phải sử dụng bao nhiêu thẻ nhỉ?

Tôi đang định viết 1 chương trình cho bạn, không biết bạn có hứng thú không nhỉ? (lại nói nữa đó, chưa thấy làm)
 
LearningExcel đã viết:
Xin lỗi, Mình có một thắc mắc nho nhỏ, Bạn có biết Code của Thầy PTM nằm ở đâu không?
LearningExcel đã viết:
Hic hic, viết code mà người dùng không biết gì về nó càng thảm hại hơn,
Tôi đang định viết 1 chương trình cho bạn, không biết bạn có hứng thú không nhỉ?
Mình cũng có 1 thắc mắc nho nhỏ: Learning định viết chương trình bằng VBA hay công thức vậy?
 
Mình cũng có 1 thắc mắc nho nhỏ: Learning định viết chương trình bằng VBA hay công thức vậy?

Heheheh, không dám "múa rìu qua mắt thợ" nhưng chương trình dành cho bạn ấy hoàn toàn bằng VBA, chẳng có công thức nào ở đây! Đầu nhập sách, cho thuê sách, trả sách, ..., đều nhập bằng UserForm, không phải nhọc công gõ từng cái chi cho mệt! Sáng giờ lu bu công việc quá không làm được, giờ sẽ bắt tay làm nếu bạn ấy đồng tình.

Hay em cứ làm đi rồi gửi lên luôn, nhờ các Thầy kiểm tra giúp lỗi? Lần đầu tiên em dùng chính textbox thông báo nhập thiếu, nhập sai mà không phải dùng Msgbox để thông báo! Vừa đỡ tốn thời gian bấm OK, vừa trực quan!
 
Ái chà, hình như bạn là người đang cần giúp đỡ thì phải, mình hỏi nhiều như vậy cốt để biết rõ chi tiết bạn cần làm là gì để có hướng giúp bạn tốt hơn thôi.
Nếu như làm theo File của bạn thì có nhiều điều bất cập. Lấy ví dụ, nếu người thuê sách trả sách ngay trong ngày thì bạn sẽ xử sự sao đây? Vài trăm thẻ cũng không sao, tạm là thủ công được đi, nếu hàng ngàn, hàng vạn cuốn sách bạn sẽ xử lý như thế nào nhỉ? Còn nữa, 1 bộ truyện có nhiều cuốn, nếu họ mượn trọn bộ thì không nói gì, mượn vài cuốn trong bộ truyện đó không biết phải sử dụng bao nhiêu thẻ nhỉ?

Tôi đang định viết 1 chương trình cho bạn, không biết bạn có hứng thú không nhỉ? (lại nói nữa đó, chưa thấy làm)
Hjx, em cũng định đề cập đến vấn đề sách mượn & trả 1 ngày nhưng sợ rắc rối, pác giải quyết được vấn đề này nữa thì tôt quá,
Với lại yêu cầu này chỉ vậy thôi Pác Learning_Excel ơi, ko nhiều như pác tưởng đâu, ko cần phải theo dõi yêu cầu 1 bộ có nhiều quyển sách đâu,
Cái em cần là làm sao theo dõi được quá trình bắt đầu phát hành - mượn - trả - hỏng của từng quyển sách(vì mỗi quyển có 1 mã riêng rồi).
Các pác xem giúp em,
Chúc cả nhả vui vẻ!
 
Heheheh, không dám "múa rìu qua mắt thợ" nhưng chương trình dành cho bạn ấy hoàn toàn bằng VBA, chẳng có công thức nào ở đây!
Không sợ chuyện "viết code mà người dùng không biết gì về nó càng thảm hại hơn" nữa à?
baho đã viết:
Hjx, em cũng định đề cập đến vấn đề sách mượn & trả 1 ngày nhưng sợ rắc rối, pác giải quyết được vấn đề này nữa thì tôt quá,
Với file bài trên, hoặc code hoặc không code, xoá gõ lại đều được. Thí dụ cho mượn, gõ 1. Trả trong ngày không thể gõ 0 đè lên 1, thì xoá phứt số 1 đi, trả về tình trạng đã trả chưa ai mượn của ngày trước đó. File này chỉ theo dõi tình trạng, miễn tình trạng đúng thì thôi, đâu có tính tiền thuê sách đâu mà lo.
Còn 1 cuốn sách ngày 8/1 mua về, khi mua về rồi mới nhập thêm 1 mã, thêm tình trạng 0 vô cột tình trạng ban đầu. Sau đó mới bắt đầu cho thuê. Ai điên mà quay về 6/1 (ngày trong quá khứ) xách đi cho thuê?
 
Lần chỉnh sửa cuối:
Lẽ ra đã hoàn tất chiều qua, nhưng vì mãi vui chơi với Anh NGHĨA VioletDylan nên chưa kịp hoàn tất. Đến giờ, tôi đã viết xong chương trình Quản lý Thư viện sách này, không hẳn là dành riêng cho bạn ba.ho_eis, mà cho tất cả mọi người còn thiếu nhiều kinh nghiệm như tôi cùng nhau nghiên cứu thêm về VBA; đặc biệt là tôi muốn chứng minh rằng, qua chương trình này tôi đã học hỏi, rút ra những kinh nghiệm quý báu từ các Thầy, các Đàn Anh đi trước ở diễn đàn giaiphapexcel.com này rất nhiều. Nhờ diễn đàn mà ngay từ đầu "nhập gia", kiến thức VBA của tôi bắt đầu từ con số 0, cho đến nay tôi có thể làm được một vài chương trình hữu ích cho riêng mình. Tôi cảm thấy mình thật hạnh phúc!

Giới thiệu đôi nét về Chương trình này:

Chương trình có các Form như:

MENU FORM:

attachment.php


Với Form Menu này bạn có thể dễ dàng lựa chọn thao tác của bạn.


FORM MƯỢN SÁCH:

attachment.php


Mã sách lấy từ Thư viện, đã lọc những sách đã Cho Mượn và sách Hư Hỏng, chỉ còn lại Sách Mới và Sách chưa cho mượn, sắp xếp theo Sách nhập mới cho đến sách nhập cũ. (Khi nhập sẽ không cho nhập Mã sách khác mã thư viện)

Mã khách hàng được Đề nghị là <Mã sách_ddmmyy_HH:MM>, như vậy sẽ tránh được trùng mã số khách nhằm bảo đảm truy xuất về sau. Nhưng người dùng có thể dùng mã số khác, sẽ thông báo nếu mã đó đã tồn tại trong CSDL.

Ngày mượn, ngày nhập, ngày trả nói chung khi nhấp vào Textbox ngày sẽ hiện một Form lịch, mặc định là ngày hiện hành, chỉ cần click chuột vào ngày nào cần chọn là có ngay trên Textbox không cần phải gõ ngày tháng.

Sau khi điền đầy đủ thông tin và click Nhập, sẽ được ghi vào Sheet Quản lý Sách, đồng thời sẽ ghi vào tình trạng sách đó CHO MƯỢN trong sheet THƯ VIỆN.


FORM TRẢ SÁCH:

attachment.php


Khi khách hàng trả sách, chọn đúng mã khách hàng sẽ được thông tin về sách đã mượn.

Nhập số ngày trả sẽ cho ra giá trị số ngày. Sẽ hiện thông báo NGÀY NHẬP KHÔNG HỢP LÝ khi chọn ngày trước cả ngày mượn sách.

Cách tính số ngày = ngày trả + 1 - ngày mượn.

Cũng như Form Mượn Sách, sau khi nhập xong sẽ nhập vào Sheet Quản lý Sách ngày trả và xóa chữ CHO MƯỢN tại Sheet Thư Viện.


FORM NHẬP SÁCH MỚI:

attachment.php


Nhập sách mới vào THƯ VIỆN, Mã Sách được đề nghị theo số thứ tự kế tiếp liền kề trên nó một số n+1, nhưng cũng có thể đổi mã sách tùy thích và nếu như có trùng mã số sẽ được nhận thông báo.

Sau khi nhập vào, Mặc định sẽ ghi vào THƯ VIỆN là SÁCH MỚI.

FORM GHI NHẬN TÌNH TRẠNG HƯ HỎNG CỦA SÁCH

attachment.php


Nếu có sách hư hỏng, thì cập nhật tại đây, tình trạng sách có 2 giá trị: Hư hỏng và Sách mới (chắc có lẽ sẽ không dùng để ghi Sách mới vì sau khi Cập nhật sách mới đã được nhập vào trước đó rồi).



-----------------------------------------------------

Trong sheet THƯ VIỆN sẽ dễ dàng nhận ra sách nào là sách hư hỏng, cho mượn ... Dùng Conditional Formatting để cho loại sách Hư Hỏng mà đỏ, sách Cho Mượn màu xanh, còn lại Sách mới, sách chưa thuê (không ghi tình trạng) màu đen.

------------------------------------------
Mặc dù đã rất cố gắng nhưng vẫn không tránh khỏi thiếu sót và lỗi, kính mong các Thầy, đàn Anh và các bạn giúp đỡ, hướng dẫn, chỉ giáo thêm.

Chân thành cám ơn!
 

File đính kèm

  • Picture2.jpg
    Picture2.jpg
    18.1 KB · Đọc: 111
  • Picture5.jpg
    Picture5.jpg
    19.4 KB · Đọc: 111
  • Picture4.jpg
    Picture4.jpg
    20.5 KB · Đọc: 111
  • Picture3.jpg
    Picture3.jpg
    18.1 KB · Đọc: 113
  • Picture1.jpg
    Picture1.jpg
    20 KB · Đọc: 116
Thật đáng ghi nhận Learning_Excel,
Anh ấy đã nghiên cứu rất kỳ công. Hy vọng đây là ứng dụng sẽ giúp ích cho mọi người.
Chúc GPEC mình ngày càng nhiều thêm những đóng góp của mọi người!
 
Thật đáng ghi nhận Learning_Excel,
Anh ấy đã nghiên cứu rất kỳ công. Hy vọng đây là ứng dụng sẽ giúp ích cho mọi người.
Chúc GPEC mình ngày càng nhiều thêm những đóng góp của mọi người!

Đọc cái bài này của bạn tôi cứ thấy mắc cười, nhất là câu "Thật đáng ghi nhận...". Bài mình gửi mà bạn không nhận ra điều gì là quan trọng sao? Ngoài mấy cái hình ra thì chẳng thể hiện được gì cả!

Sau đây là File đính kèm, hy vọng bạn sẽ hài lòng!

Với mong mỏi được hoàn thiện thêm về code, mong các Thầy kiểm tra lỗi và bổ sung những phần còn khiếm khuyết cho File này. Xin chân thành cảm ơn!

<<VBA Pass: minhthien321>>

=========================================================================
ĐỂ TẢI FILE PHÙ HỢP VỚI EXCEL 2003, CLICK VÀO ĐƯỜNG DẪN SAU:
http://www.giaiphapexcel.com/forum/...-Validation-như-thế-nào&p=261948#post261948
 
Lần chỉnh sửa cuối:
File này có một lỗi nghiêm trọng mà không thể bẩy lỗi, buộc lòng phải dùng Properties để khắc phục, không biết các Thầy có nhận ra không ta?
 
Đọc cái bài này của bạn tôi cứ thấy mắc cười, nhất là câu "Thật đáng ghi nhận...". Bài mình gửi mà bạn không nhận ra điều gì là quan trọng sao? Ngoài mấy cái hình ra thì chẳng thể hiện được gì cả!

Sau đây là File đính kèm, hy vọng bạn sẽ hài lòng!

Với mong mỏi được hoàn thiện thêm về code, mong các Thầy kiểm tra lỗi và bổ sung những phần còn khiếm khuyết cho File này. Xin chân thành cảm ơn!

<<VBA Pass: minhthien321>>
Đừng qua nghệu mạn như vậy chứ, tôi biết là bạn đang trong quá trình nghiên cứu nên ko đề cập thôi,
Tôi chỉ nhận xét về hình thức bên ngoài thôi, nhưng đó cũng là quá trình nghiên cứu của Learning_Excel chúng ta nên ghi nhận.
Thanks Learning_Excel rất nhiều, tôi se tìm hiểu sâu hơn về vấn đề này, chúc bạn thành công!
 
File này có một lỗi nghiêm trọng mà không thể bẩy lỗi, buộc lòng phải dùng Properties để khắc phục, không biết các Thầy có nhận ra không ta?

Thứ nhất là file có pass mà đòi góp ý.

Thứ 2, là file mở startup form lên là ẩn application. Mới nhấn nút mở 1 form, chỉ xem chưa làm gì, nhấn nút thoát, báo lỗi đòi debug. Có pass mà debug cái nỗi gì, nên cancel, nhấn End.
Thế là đi luôn. Lại phải vào task manager tắt excel.

Do đó, hai loại file này, không bao giờ muốn mở lần 2.
 
Lần chỉnh sửa cuối:
Tôi đánh giá cao sự nhiệt tình của Learning_Excel, chỉ một câu hỏi thôi mà bạn đã làm cả một chương trình, hiếm khi ai làm như bạn.

Tôi đã kiểm tra lỗi trên nhiều máy tính, máy bàn có, laptop có, kiểm tra tại cơ quan có, ở nhà có, vẫn không phát hiện lỗi => chưa thấy lỗi do code.

Vậy là lỗi gì? Tôi vô tình mở Form và click vào màn hình máy tính (ngoài Form) và điều khiển được bên ngoài, vì thế, bạn đang sử dụng Properties cho Form tại mục ShowModal=False, tôi lại chọn UsfMenu, ShowModal=True, click vào FORM TRẢ SÁCH, rồi thoát, rồi chọn lại Form đó, hiện tượng là Form này ngưng hoạt động, treo Excel. Như vậy, chỉ có chọn ShowModal=False mới không bị lỗi này. Tại sao như vậy thì chỉ có các cao thủ mới có thể giải thích nổi!

To THẦY PTM0412:

LỖI DO NGƯỜI VIẾT LÀ CHUYỆN RẤT BÌNH THƯỜNG, NGƯỜI VIẾT CHƯƠNG TRÌNH THƯỜNG NÓI "CHƯƠNG TRÌNH KHÔNG CÓ LỖI LÀ CHƯƠNG TRÌNH CHẾT". CÓ THỂ LÀ LỖI LÀ DO SOLUTION, CŨNG CÓ THỂ LÀ LỖI DO HỆ ĐIỀU HÀNH. THẦY PTM0412 CÓ CÒN NHỚ NGAY NGÀY SINH NHẬT GIẢI PHÁP EXCEL LẦN THỨ 4 VỪA QUA KHÔNG? CHƯƠNG TRÌNH "TRÚC XINH" CỦA THẦY BỊ LỖI MÀ KHÔNG THỂ KHẮC PHỤC ĐƯỢC, LỖI GÂY RA DO THẦY KIỂM TRA TRÊN WINDOW XP, CÒN THỰC HIỆN TRÊN WINDOW 7 ĐÓ, CHẮC THẦY KHÔNG QUÊN.

THÔI THÌ HÃY ĐỘNG VIÊN, KHÍCH LỆ NHỮNG THÀNH VIÊN MỚI ĐANG CỐ GẮNG HỌC TẬP THÔNG QUA TRANG WEB BỔ ÍCH NÀY THẦY NHÉ!

TRÂN TRỌNG.
 
To THẦY PTM0412:

LỖI DO NGƯỜI VIẾT LÀ CHUYỆN RẤT BÌNH THƯỜNG, NGƯỜI VIẾT CHƯƠNG TRÌNH THƯỜNG NÓI "CHƯƠNG TRÌNH KHÔNG CÓ LỖI LÀ CHƯƠNG TRÌNH CHẾT". CÓ THỂ LÀ LỖI LÀ DO SOLUTION, CŨNG CÓ THỂ LÀ LỖI DO HỆ ĐIỀU HÀNH. THẦY PTM0412 CÓ CÒN NHỚ NGAY NGÀY SINH NHẬT GIẢI PHÁP EXCEL LẦN THỨ 4 VỪA QUA KHÔNG? CHƯƠNG TRÌNH "TRÚC XINH" CỦA THẦY BỊ LỖI MÀ KHÔNG THỂ KHẮC PHỤC ĐƯỢC, LỖI GÂY RA DO THẦY KIỂM TRA TRÊN WINDOW XP, CÒN THỰC HIỆN TRÊN WINDOW 7 ĐÓ, CHẮC THẦY KHÔNG QUÊN.
THÔI THÌ HÃY ĐỘNG VIÊN, KHÍCH LỆ NHỮNG THÀNH VIÊN MỚI ĐANG CỐ GẮNG HỌC TẬP THÔNG QUA TRANG WEB BỔ ÍCH NÀY THẦY NHÉ!

TRÂN TRỌNG.

Thứ nhất:

File trúc xanh tôi đã test cả trăm lần, nhờ BNTT test cả chục lần, sau đó gởi cho Tigon, nguyenhuong, tungnguyen test mấy ngày, trước khi sử dụng chính thức. Trong đó BNTT và Tungnguyen xài Win7 mà không phát hiện lỗi. Hôm sau do lý gì đó chưa tìm ra, bị lỗi ngay trên máy mà mấy ngày trước tung nguyen test không sao. File này hoàn toàn không lỗi, và không liên quan gì đến Win7 hay Win XP. Tôi cũng đã test cả trên Excel 2003, 2007 và 2010.

Tại sao tôi dám khẳng định? Vì tôi đã viết cả tháng trời, vừa viết vừa nhờ mọi người góp ý, sửa chữa, và test đến khi hoàn thiện. Thực tế là năm ngoái sử dụng thành công, năm nay miền trung và miền bắc cũng sử dụng. Vừa rồi thêm 1 lần cadafi sử dụng thành công trong 1 cuộc hội thảo.

Thứ 2:

Cái chính ở đây là gì? Khi tôi nhờ mọi người góp ý và sửa chữa tôi đã để code mở. Cho đến giờ các file tôi gởi đi khắp nơi cũng đều không khoá VBA, không khoá cả sheet. Nếu lúc đó tôi khoá VBA và nhờ, tôi đã bị mắng thậm tệ rồi cuối cùng chả có trúc xanh trúc đỏ gì ráo.

Còn file của Learning Excel, chưa biết hay dở thế nào, vừa nhấn nút "thoát" trên form "Nhập cho thuê" nó liền đòi debug. Nếu VBA không khoá, nút debug không bị vô hiệu, tôi đã nhấn vào để xem code, sửa code, hoặc góp ý sửa. Vậy thì tại ai? Tôi muốn nhờ người ta sửa vòi nước trong nhà, tôi phải mở cửa cho người ta vào. Bảo người ta đứng ngoài đường mà sửa thì sửa cái quái gì?

Thứ 3:

Về cái vụ ẩn Application, rồi khi file bị lỗi thoát ra không phục hồi lại, tôi bị nhiều rồi, ghét lắm rồi. Không chỉ mình file của L.E. không đâu. Ghét cái phải vào Task Manager để tắt Excel ấy. Nếu L.E. còn muốn tôi xem, (cũng không chắc chuyện này lắm), thì phải gỡ khoá VBA và bỏ vụ dấu Application, bỏ cả vụ minimize toàn bộ các cửa sổ khác của tôi đang làm việc nữa. Cái file cũ lúc nãytôi nói là không mở lần 2, thực sự tôi đã mở lần 2, khi nhấn nút "xem sheet gì gì đó", nó bị như hình dưới đây. Mất 15 phút để tắt tất cả những cái đó rồi mở lên lại: Ở đâu ra 6 cái excel, 5 cái firefox, 24 cái Yahoo, 3 cái Snagit lớn, 12 SnagIt nhỏ, 17 cái hkcmd, 9 cái window explorer, ... và hàng mấy chục cái không tên?
Tôi độ chừng rằng khi ẩn Application, L.E. đã dùng lệnh của Windows thực thi cho tất cả các chương trình đang chạy của cả Windows. Rồi khi cho hiện lại, không chỉ cho hiện Active workbook, L.E. cho hiện tất cả lên, kể cả những chương trình hệ thống chạy ngầm trong Windows. Cái vụ can thiệp vào hệ thống kiểu này, tôi lại càng ghét thậm tệ hơn nữa.

Thế thì, không đời nào tôi mở lần 3, và tôi xoá vĩnh viễn ra khỏi ổ đĩa của tôi rồi.

Thứ 4:

Về phía Minhthien, thôi đừng làm cái việc kẻ tung người hứng nữa. Kêu L.E. ra nói cho đúng người cần nói.

Loi.jpg
 
Lần chỉnh sửa cuối:
Theo những lỗi mà PTM0412 đã nói, thì tôi kiểm tra lại và ghi nhận sự việc như sau:

1. Hiện tượng khi mở File của tôi bị một loạt các Icon thu nhỏ (như hình mà PTM0412 post) không xảy ra nếu như trước đó chưa mở sẳn một File Excel nào, và tôi xài Win7 & Excel 2007 dù File Excel nào đó mở trước cũng không xảy ra. Tôi test lại trên WinXP và Excel 2003 thì bị hiện tượng đó.

Nguyên nhân: CreateObject("Shell.Application").MinimizeAll (dòng lệnh cho tất cả các cửa sổ thu nhỏ), có thể rằng nếu File Excel của tôi mở và đang tồn tại File Excel nào đó thì cùng thuộc Shell.Application nên "đụng" nhau chăng?

Khắc phục: Thay dòng lệnh trên bằng lệnh Application.WindowState = xlMinimized, chỉ cho File Excel thu nhỏ, không can thiệp bên ngoài.


2. Hiện tượng mở 1 Form nào đó bị báo lỗi, là do dùng AutoFilter.

Nguyên nhân: Tôi đã dùng câu lệnh: ShowAllData (dòng lệnh cho hiện tất cả dữ liệu đã bị Filter), câu lệnh này chỉ dùng được đối với Excel 2007 trở lên, không thể dùng cho XL2003.

Khắc phục: Bỏ dòng lệnh đó.

==============================================================================

RÚT KINH NGHIỆM:

KHI THỰC HIỆN MỘT CHƯƠNG TRÌNH NÀO ĐÓ, PHẢI CHỌN CODE PHÙ HỢP VỚI VERSION NHỎ HƠN.

==============================================================================

ĐÃ SỬA LẠI CODE VÀ GỬI LẠI FILE, ĐÃ GỠ BỎ PASSWORD (MẶC DÙ TRƯỚC ĐÓ ĐÃ CÓ ĐƯA RA PASSWORD), GỠ BỎ APPLICATION.VISIBLE THEO Ý CỦA PTM0412.


 

File đính kèm

Lần chỉnh sửa cuối:
Nói lại cho rõ là:
- Khi mở file đó lên, là file Excel duy nhất đang mở.
- Firefox chỉ có 1 cửa sổ
- Yahoo Messenger đang online, nhưng không có cửa sổ chat nào.
- Ngoài ra không mở thêm cái gì khác.

1. Khi mở file, tất cả đều Minimize, cũng không có gì đáng nói
2. Khi nhấn nút mở sheet, cái câu lệnh quái quỷ gì không biết, có lẽ là maximize, nó Maximize cả Unikey, cả SnagIt, cả Norton Antivirus, Norton Goback, ... Nó Maximize cả Firefox update, Firefox Add-on, YM Auto update, YM toolbar, YM các loại đang chạy ngầm, Google Update các loại, Excel các loại đang chạy ngầm (các User form đã mở và chưa mở), ... Không những thế nó Maximize tất cả các file chương trình của hệ thống đang chạy ngầm, nên mới có những cái không có windows caption như hình.

Nếu quả thực là dùng CreateObject("Shell.Application").MinimizeAll, thì đó là sự can đảm dám dùng lệnh hệ thống can thiệp vào mọi chương trình đang chạy. May là chỉ Minimize và Maximize, Chứ nếu QuitAll thì thành chuyện lớn, chả biết hậu quả thế nào luôn.

Chuyện dùng lệnh hệ thống là cả chuyện dài, cỡ ndu cũng chỉ còn đang nghiên cứu chưa dùng nhiều, cùng lắm là để mở file (word, txt, nhạc, âm thanh, video...), để browse tìm vả liệt kê file trong folder, . . . chứ chưa thấy dùng lệnh hệ thống đánh tất cả các chương trình đang chạy bao giờ.

Ngay cả tôi, về Shell.Application do chưa tìm hiểu kỹ nên cũng không dám vọc vào. Do rằng tôi chỉ thuộc loại i tờ dạng chỉ biết sin 180 độ bằng bao nhiêu, chỉ biết tính cạnh góc vuông, chỉ học thuộc DatedIf chỉ lấy phần nguyên không lấy số lẻ, ... nên không dám với cao như thế này.

Cái file Trúc xanh của tôi cũng chỉ dám tự gọi là 1 game ứng dụng VBA Excel, cũng chưa dám gọi là Chương trình, Topic này vượt quá khỏi tầm với của tôi mất rồi. Thôi thì tôi quay về với căn bản For - next & vòng lặp cho xong. Xin kiếu topic này.
 
Lần chỉnh sửa cuối:
bác ptm0412
ơi
túm lại là cái lỗi như bác chụp screenshot là lỗi do Excel ah? cụ thể nó là do gì, một lần kia máy của mình cũng bị giống vậy nhưng tưởng bị virus, bác cho chút manh mối về lỗi này để biết mình check lại là file excel nào đã gây ra lỗi đó thanks
http://www.giaiphapexcel.com/member.php?22485-ptm0412
 
Đó là lỗi ai đó dùng lệnh của hệ thống trong lập trình. Có thể lập trình VBA trong word, Excel, hay bất cứ ngôn ngữ lập trình nào. Kể cả virus. Tuy nhiên, nếu nó xuất hiện sau khi mình thao tác cái gì đó mới có thể kết luận cái file vừa thao tác là thủ phạm. Tất nhiên là phải chắc chắn rằng không chạy cái gì khác đồng thời, hay có chạy đồng thời nhưng là cái của mình tạo ra và biết chắc không lập trình kiểu đó.
 
Quan điểm của mình là chia sẻ, tôi học được quan điểm này từ rất nhiều Thành viên của diễn đàn này, đặc biệt là từ THẦY AnhTuan1066 (ndu96081631), Thầy không hề giấu giếm điều gì, khi trả lời cũng pha tí tếu tếu, nhưng không khinh miệt, Thầy có một kiểu khích tướng rất độc đáo khiến người bị khích tướng phải tự thân vận động ("Tôi nghĩ với trình độ của bạn dư sức làm việc này, thử xem...", "Tôi gợi ý cho bạn thế này..."...), nhưng khi mình cố gắng mà làm không được Thầy lại giúp cho mình thật nhiệt tình, không vụ lợi.

Kiến thức của mình tuy không được nhiều, nhưng biết tới đâu mình làm tới đó, sai đâu sửa đó, càng vọc thậm chí máy treo lên treo xuống tôi vẫn cứ vọc, thế mà tôi lại có thêm một chút kinh nghiệm cho riêng mình, biết gì để tránh, biết gì để dùng trong phạm vi trình độ ABC của mình.

Chính vì thế, tôi mạnh dạn thay thế câu lệnh: CreateObject("Shell.Application").MinimizeAll để thủ nhỏ các cửa sổ thành Macro như sau và thôi thấy trước mắt nó không làm hại như dòng lệnh vừa rồi:

PHP:
 Option Explicit
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
'-----------------------------------------------------------------------------------------
 
Sub MinimumAllWindow()
  Call keybd_event(&H5B, 0, 0, 0)
  Call keybd_event(&H4D, 0, 0, 0)
  Call keybd_event(&H5B, 0, &H2, 0)
End Sub
 

File đính kèm

Các câu hỏi về Data Validation đề nghị post tại đây.

Chào các bác.
Em có danh mục Tỉnh, Huyện, Xã. Trong bảng nhập dữ liệu có 3 cột: Tỉnh - Huyện - Xã. 2 cột đầu đã được điền dữ liệu, nay em muốn nhập dữ liệu vào cột còn lại (Xã) bằng Validation. Mong được các bác giúp đỡ. (Trong List chọn chỉ có các xã của Tỉnh-Huyện tương ứng).
Cảm ơn các bác trước.
 

File đính kèm

Bạn tham khảo trong file đính kèm nhé!
 

File đính kèm

Cảm ơn hoangminhthien. Nhưng em chỉ muốn nhập có cột Xã nữa thôi, Tỉnh-Huyện có sẵn rồi.
 
Các câu hỏi về Data Validation đề nghị post tại đây.

Khi các cell đã được thiết lập ở chế độ validation thì thì chỉ có thể chọn những giá trị cho trước. Nhưng trong quá trình thực hiện tôi thấy cái đó không còn đúng khi mà tôi thực hiện copy bằng cách kéo các cell, ngay lập tức các ô sẽ được điền các số tang dần và nằm ngoài các số đã quy định.)(&&@@
ACE xem vai cho phương án giải quyết hiện tượng này.
 

File đính kèm

Hi
Bạn dừng thực hiện copy bằng cách rê con chuột; Hay copy va paste bằng cách thông thường
Chào !
 
Các câu hỏi về Data Validation đề nghị post tại đây.

Để đỡ mất thời gian nói nhiều, các bác xem giúp file excel

Em cần khi chọn tên công ty thì ở phần lựa Drop Down list sẽ chỉ ra các lựa chọn là các sản phẩm của công ty đã chọn ban đầu.

(hồi trước thấy có bác dùng hàm Offset để làm nhưng vẫn chưa hiểu được, file ví dụ thì đặt mảng nên ko insert thêm dòng được. Các bác giúp em với, cám ơn các bác.
 

File đính kèm

Để đỡ mất thời gian nói nhiều, các bác xem giúp file excel

Em cần khi chọn tên công ty thì ở phần lựa Drop Down list sẽ chỉ ra các lựa chọn là các sản phẩm của công ty đã chọn ban đầu.

(hồi trước thấy có bác dùng hàm Offset để làm nhưng vẫn chưa hiểu được, file ví dụ thì đặt mảng nên ko insert thêm dòng được. Các bác giúp em với, cám ơn các bác.
Chắc là làm thế này quá
 

File đính kèm

Khi các cell đã được thiết lập ở chế độ validation thì thì chỉ có thể chọn những giá trị cho trước. Nhưng trong quá trình thực hiện tôi thấy cái đó không còn đúng khi mà tôi thực hiện copy bằng cách kéo các cell, ngay lập tức các ô sẽ được điền các số tang dần và nằm ngoài các số đã quy định.)(&&@@
ACE xem vai cho phương án giải quyết hiện tượng này.
-Có thể ban không để ý khi kéo xuống vậy.Xem 2 bức ảnh của mình nhé.Làm theo bức ảnh 1 sẽ đúng
 

File đính kèm

  • untitled1.JPG
    untitled1.JPG
    140.1 KB · Đọc: 13
  • untitled2.JPG
    untitled2.JPG
    140.6 KB · Đọc: 6
Để đỡ mất thời gian nói nhiều, các bác xem giúp file excel

Em cần khi chọn tên công ty thì ở phần lựa Drop Down list sẽ chỉ ra các lựa chọn là các sản phẩm của công ty đã chọn ban đầu.

(hồi trước thấy có bác dùng hàm Offset để làm nhưng vẫn chưa hiểu được, file ví dụ thì đặt mảng nên ko insert thêm dòng được. Các bác giúp em với, cám ơn các bác.
-Bạn xem file của bác concogia ý đúng rồi đó.Nhưng trong trường hợp này mình thấy cứ OFFSET+tên mảng là hay nhất
-Giờ bạn cơ thể nhập đến cột SW và dòng 200 rùi.(nhiều quá cơ)
 
Trong quá trình làm việc tránh sao việc copy bằng hình thức này hay hình thức khác, từ đó suy ra rằng validation không đúng trong mọi trường hợp.
 
Cảm ơn bác nhiều.
Có cách nào khi em bổ sung thêm TỈNH-HUYỆN thì không phải đặt Name HUYỆN nữa nhỉ. Chẳng lẽ phải đặt Name cho 500 HUYỆN.
 
À nhân đọc topic này mình có 1 vấn đề cần giúp như sau:
Mình có sheet 1 chứa số lượng tồ ở cột N và sheet 2 dùng để nhập số lượng ở cột P.
Bây giờ mình muốn nhập số lượng bằng số vào cột P của sheet 2 nhưng ếu nó lớn hơn số tồn kho ở bên sheet 1 thì đưa ra cảnh báo và không cho nhập nữa.
Mình xin hỏi phải làm thế nào? mong các bạn giúp mình với.
 
À nhân đọc topic này mình có 1 vấn đề cần giúp như sau:
Mình có sheet 1 chứa số lượng tồ ở cột N và sheet 2 dùng để nhập số lượng ở cột P.
Bây giờ mình muốn nhập số lượng bằng số vào cột P của sheet 2 nhưng ếu nó lớn hơn số tồn kho ở bên sheet 1 thì đưa ra cảnh báo và không cho nhập nữa.
Mình xin hỏi phải làm thế nào? mong các bạn giúp mình với.
Có thể bạn gửi File lên được không? nói không hình dung được.
 
Xin giúp làm cảnh báo bằng validation khi xuất vượt số tồn

Chào anh chị em GPE,
Hôm nay quay lại dễn đàn tìm hoài không thấy cai mình cần nên mạn phép post vào đây nhờ anh chị giúp.

Mình có sheet "TongHopNX": Mã hàng ở cột B, Dư đầu kỳ ở cột H, Nhập trong kỳ ở cột J, xuất trong kỳ ở cột L và Tồn cuối kỳ ở cột N (tất cả là số lượng hàng hóa và có truy vấn qua sheet"Phat sinh" để lấy số lượng phát sinh ---> việc truy vấn đã ổn)
và Sheet "TongHopNX" dùng để nhập số lượng hàng xuất (phát sinh) ở cột P. (Mã hàng là cột L)

1. Bây giờ mình muốn nhập số lượng bằng số vào cột P của sheet "Phat sinh" nhưng nếu nó lớn hơn số Tồn cuối kỳ ở bên sheet "TongHopNX" thì đưa ra cảnh báo và không cho nhập nữa.
2. Mình muốn tính doanh thu-lợi nhuận đưa data vào sheet "DT-LN"
3. Mình có nêu trong sheet "DT-LN" thêm 2 yêu cầu nữa
Rất mong các anh chị giúp mình với.
P/s cái file này mình nhờ 1 người bạn design giúp mà giờ không liên lạc được nên nhờ mọi người giúp thêm.
Thanks all!
 
Lần chỉnh sửa cuối:
Bạn viết câu hỏi nhiều nơi quá! Muốn cụ thể, dễ dàng cho người hướng dẫn, bạn gửi File lên đi nha!
 
vấn đề này mình cũng từng tự đặt ra nhưng cũng chưa biết cách xử lý bằng validation, nhân tiện có bài của topspeed2179 nhờ các thành viên giúp đỡ.
 

File đính kèm

Lần chỉnh sửa cuối:
vấn đề này mình cũng từng tự đặt ra nhưng cũng chưa biết cách xử lý bằng validation, nhân tiện có bài của topspeed2179 nhờ các thành viên giúp đỡ.

Tạo một cột phụ rồi dùng hàm sumif để lọc số lượng, sau đó lấy cột phụ làm điều kiện rồi làm validation thôi, sau đó cho ẩn cột phụ đi là được rồi (không hiểu sao nó không cho name làm điều kiện trong validation nên mới làm cột phụ). Bạn kiểm tra file nhé!
 

File đính kèm

vấn đề này mình cũng từng tự đặt ra nhưng cũng chưa biết cách xử lý bằng validation, nhân tiện có bài của topspeed2179 nhờ các thành viên giúp đỡ.
Vấn đề này thì phải tạo 2 name:
- Mahh: ='ton kho'!$B$6:$B$10
- TonCK: ='ton kho'!$K$6:$K$10
Trong sh Ton kho mình làm ct tính sl tồn ck là:
K6=E6+G6-I6
=> tính sl tồn ck.
Tại Validation chọn Whole Number chọn
Min =0
Mã là: =SUMIF(MaHH,$C6,TonCK)
Trong valiadtion nó không cho tham chiếu theo tên sh nên ta lưu ý ở $C6
 

File đính kèm

Lần chỉnh sửa cuối:
Mình vừa gửi cái file lên, anh chị giúp mình nha
 
Tạo một cột phụ rồi dùng hàm sumif để lọc số lượng, sau đó lấy cột phụ làm điều kiện rồi làm validation thôi, sau đó cho ẩn cột phụ đi là được rồi (không hiểu sao nó không cho name làm điều kiện trong validation nên mới làm cột phụ). Bạn kiểm tra file nhé!

Thanks bạn đã giải đáp, đúng là đây chính xác cái mình cần, nhưng
Cái file của mình thì SL tồn cuối nó đc tính khi có phát sinh nhập hay xuất (tức là được link qua bên sheet tồnCK luôn) :). Nên khi mình nhập Sl bao nhiêu nó cũng báo là vượt số tồn mặc dù số tồn còn lớn hơn sl sẽ nhập!. Ví dụ: TonCK=10; nhưng khi xuất thì xuất được từ 1-5 thôi. Còn >5 thì hàm validation chưa kịp chạy mà SL tồnCK đã bị trừ rồi => SL nhập>SL tonCK (ở cột phụ) => có cảnh báo và không thể xuất được.
Mình có gửi file đính kèm ở trên. Các bạn giúp mình với nha.
 
Lần chỉnh sửa cuối:
Vấn đề này thì phải tạo 2 name:
- Mahh: ='ton kho'!$B$6:$B$10
- TonCK: ='ton kho'!$K$6:$K$10
Trong sh Ton kho mình làm ct tính sl tồn ck là:
K6=E6+G6-I6
=> tính sl tồn ck.
Tại Validation chọn Whole Number chọn
Min =0
Mã là: =SUMIF(MaHH,$C6,TonCK)
Trong valiadtion nó không cho tham chiếu theo tên sh nên ta lưu ý ở $C6

Mình đã áp dụng cách của bạn ThuNghi vào file NHAP XUAT.rar Đính kèm ở trên mà nó vẫn không có thông báo gì! nó cho xuất thoải mái nữa.
Giúp mình xem lại với.
 
Lần chỉnh sửa cuối:
Thanks bạn đã giải đáp, đúng là đây chính xác cái mình cần, nhưng
Cái file của mình thì SL tồn cuối nó đc tính khi có phát sinh nhập hay xuất (tức là được link qua bên sheet tồnCK luôn) :). Nên khi mình nhập Sl bao nhiêu nó cũng báo là vượt số tồn mặc dù số tồn còn lớn hơn sl sẽ nhập!. Ví dụ: TonCK=10; nhưng khi xuất thì xuất được từ 1-5 thôi. Còn >5 thì hàm validation chưa kịp chạy mà SL tồnCK đã bị trừ rồi => SL nhập>SL tonCK (ở cột phụ) => có cảnh báo và không thể xuất được.
Mình có gửi file đính kèm ở trên. Các bạn giúp mình với nha.
Lại những yêu cầu khó hiểu và file lại có pass nữa.
Bạn nên cụ thể hơn nhé. Làm 1 file mô phỏng những số liệu và muốn yêu cầu những báo cáo nào.
Và file có quá nhiều name dư. Nên xóa bớt hết.
Tôi cũng làm kế toán mà chưa hiểu nổi.
Theo tôi file này nên bắt đầu từ sh Phatsinh, Sh DMKhachHang, DMVattu. Và cũng không cần phải tạo mỗi dòng những combobox để lấy DMKhachHang, DMVattu, nếu file 10.000 dòng thì tạo mệt lắm. File này bạn đi theo nhiều hướng quá công thức hay VBA nên chọn 1.
 
Lại những yêu cầu khó hiểu và file lại có pass nữa.
Bạn nên cụ thể hơn nhé. Làm 1 file mô phỏng những số liệu và muốn yêu cầu những báo cáo nào.
Và file có quá nhiều name dư. Nên xóa bớt hết.
Tôi cũng làm kế toán mà chưa hiểu nổi.
Theo tôi file này nên bắt đầu từ sh Phatsinh, Sh DMKhachHang, DMVattu. Và cũng không cần phải tạo mỗi dòng những combobox để lấy DMKhachHang, DMVattu, nếu file 10.000 dòng thì tạo mệt lắm. File này bạn đi theo nhiều hướng quá công thức hay VBA nên chọn 1.
Thanks bạn ThuNghi,
Mình đã lượt bớt các name và bỏ đoạn code show pass.
các yêu cầu nhờ anh chị và các bạn giúp là như thế này:
Mình có sheet "TongHopNX": Mã hàng ở cột B, Dư đầu kỳ ở cột H, Nhập trong kỳ ở cột J, xuất trong kỳ ở cột L và Tồn cuối kỳ ở cột N (tất cả là số lượng hàng hóa và có truy vấn qua sheet"Phat sinh" để lấy số lượng phát sinh ---> việc truy vấn đã ổn)
và Sheet "TongHopNX" dùng để nhập số lượng hàng xuất (phát sinh) ở cột P. (Mã hàng là cột L)


1. Bây giờ mình muốn nhập số lượng bằng số vào cột P của sheet "Phat sinh" nhưng nếu nó lớn hơn số Tồn cuối kỳ ở bên sheet "TongHopNX" thì đưa ra cảnh báo và không cho nhập nữa.
2. Mình muốn tính doanh thu-lợi nhuận đưa data vào sheet "DT-LN"
3. Mình có nêu trong sheet "DT-LN" thêm 2 yêu cầu nữa, mong anh chị giái đáp giúp.

Mình đã áp dụng cách của bạn ThuNghi và của bạn Learning_Excel nhưng đều không được. vì những lý do mình đã post ở trên.
Mình xin gửi lại file đã rút lại. mong các anh chị và các bạn giúp mình với nhé.
Cám ơn nhiều lắm!
 

File đính kèm

có anh chị nào online giúp mình với
 
có anh chị nào online giúp mình với

Bạn không thể Valdation cũng phải thôi, bởi vì nó cứ liên kết lòng vòng thì làm sao mà báo hiệu được? VD như SL tồn là 10, bạn nhập phát sinh là 10, rồi công thức nó tính toán, nó trừ 10 còn 0, validation nó lại tính bạn ghi là 10 so sánh với 0, cho nên 50% số nó báo lỗi là phải! Tức là nếu tồn là 10 thì nhập số lượng nhỏ hơn hoặc bằng 5 là OK, còn lại báo lỗi!


Nói thêm là nếu bạn vẫn liên kết kiểu đó có ngày bạn bỏ tiền túi ra mà bồi thường vì kiểu liên kết này đó nha bạn! Bạn cần làm giải pháp khác thôi! Pivot chẳng hạn, trước khi làm phải có cơ sở dữ liệu, nói chung là hơi khó đó nhé!
 
Lần chỉnh sửa cuối:
Với bài này thì làm thế nào ạ! Sử dụng Validatiion nhưng có giá trị trùng. Anh chị xem trong sheet1 CTY AAA có 2 địa chỉ vậy bên sheet 2 làm sao để nó hiện theo đúng thứ tự của bên sheet 1.

Anh chị xem trong file!
 

File đính kèm

Với bài này thì làm thế nào ạ! Sử dụng Validatiion nhưng có giá trị trùng. Anh chị xem trong sheet1 CTY AAA có 2 địa chỉ vậy bên sheet 2 làm sao để nó hiện theo đúng thứ tự của bên sheet 1.

Anh chị xem trong file!
Với bài này có thể như thế này
 

File đính kèm

Với bài này thì làm thế nào ạ! Sử dụng Validatiion nhưng có giá trị trùng. Anh chị xem trong sheet1 CTY AAA có 2 địa chỉ vậy bên sheet 2 làm sao để nó hiện theo đúng thứ tự của bên sheet 1.

Anh chị xem trong file!
-Nếu không phải như của bác concogia thì có thể xem cách trình bày của mình
 

File đính kèm

Vấn đề này thì phải tạo 2 name:
- Mahh: ='ton kho'!$B$6:$B$10
- TonCK: ='ton kho'!$K$6:$K$10
Trong sh Ton kho mình làm ct tính sl tồn ck là:
K6=E6+G6-I6
=> tính sl tồn ck.
Tại Validation chọn Whole Number chọn
Min =0
Mã là: =SUMIF(MaHH,$C6,TonCK)
Trong valiadtion nó không cho tham chiếu theo tên sh nên ta lưu ý ở $C6
Cám ơn Bác. Tương tự như hướng dẫn, sau khi em làm có 2 phát sinh như 2 file sau:
1. validation - tồn: không cho nhập số lượng xuất kho tr6en 200 ( dù cho số tồn đầu kỳ là 400 - có note trong file)
2. XNT kho thì em cho xuất lớn hơn số tồn lại vẫn được.
Em test mấy bữa nay nhưng vẫn chưa tìm ra chỗ sai của mình, nhờ các bác giúp đỡ em tìm ra vấn đề sai của em để em chỉnh sửa. Cám ơn ácc bác nhiều
 

File đính kèm

Cám ơn Bác. Tương tự như hướng dẫn, sau khi em làm có 2 phát sinh như 2 file sau:
1. validation - tồn: không cho nhập số lượng xuất kho tr6en 200 ( dù cho số tồn đầu kỳ là 400 - có note trong file)
2. XNT kho thì em cho xuất lớn hơn số tồn lại vẫn được.
Em test mấy bữa nay nhưng vẫn chưa tìm ra chỗ sai của mình, nhờ các bác giúp đỡ em tìm ra vấn đề sai của em để em chỉnh sửa. Cám ơn ácc bác nhiều
Không biết yêu cầu của bạn là gì?
 
Không biết yêu cầu của bạn là gì?
Cám ơn sự quan tâm của bạn
yêu cầu của mình là tạo validation để khi nhập liệu xuất kho hàng hóa thì số lượng hàng xuất không được lớn hơn số tồn. Tuy nhiên theo hướng dẫn của bác ThuNghi, mình đưa vào file của mình thì có 2 phát sinh, mỗi file đều có phát sinh khác nhau:
File 1. validation - tồn: không cho nhập số lượng xuất kho trên 200 ( dù cho số tồn đầu kỳ là 400 - có note trong file - nhập liệu ở sheet nhap xuat)
File 2. XNT kho thì em cho xuất lớn hơn số tồn : vẫn được. (nhập liệu trong sheet data)
Mình không biết mình sai ở chỗ nào mà nó lại như vậy. Mình nhờ các ace trên diễn đàn giúp đỡ.
(file mình post ở bài #85 ở trên)
 
Cám ơn sự quan tâm của bạn
yêu cầu của mình là tạo validation để khi nhập liệu xuất kho hàng hóa thì số lượng hàng xuất không được lớn hơn số tồn. Tuy nhiên theo hướng dẫn của bác ThuNghi, mình đưa vào file của mình thì có 2 phát sinh, mỗi file đều có phát sinh khác nhau:
File 1. validation - tồn: không cho nhập số lượng xuất kho trên 200 ( dù cho số tồn đầu kỳ là 400 - có note trong file - nhập liệu ở sheet nhap xuat)
File 2. XNT kho thì em cho xuất lớn hơn số tồn : vẫn được. (nhập liệu trong sheet data)
Mình không biết mình sai ở chỗ nào mà nó lại như vậy. Mình nhờ các ace trên diễn đàn giúp đỡ.
(file mình post ở bài #85 ở trên)
Bạn dùng dữ liệu nhập xuất để tính lượng hàng tồn kho. Sau đó lại dùng lượng hàng tồn kho làm điều kiện đê làm validation của dữ liệu nhập xuất. Điều này có thể dẫn đến lỗi tham chiếu vòng và kết quả không theo ý muốn. Tôi sửa lại, không dùng dữ liệu ở sheet Nhập - Xuất - Tồn để tính điều kiện mà chỉ dùng dữ liệu tồn kho đầu kỳ và dữ liệu nhập xuất.
Chi tiết bạn xem trong file.
 

File đính kèm

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

Back
Top Bottom