Giờ thì rõ vấn đề rồi đó. Bài #1 bạn chưa nêu rõ vậy nên mọi người khó đưa ra phương án hợp lý.
Tôi túm lại ý:
Lọc loại trùng một cột dữ liệu cho trước để cho vào list của validation, điều kiện là số bước thực hiện tối giản nhất.
Giờ thì rõ vấn đề rồi đó. Bài #1 bạn chưa nêu rõ vậy nên mọi người khó đưa ra phương án hợp lý.
Tôi túm lại ý:
Lọc loại trùng một cột dữ liệu cho trước để cho vào list của validation, điều kiện là số bước thực hiện tối giản nhất.
Theo ý muốn chủ topic thì e rằng chỉ ngồi ngắm chị Hằng thôi anh ạ.
Nếu có viết hàm để loại trùng thì cũng không cho vào validation luôn được (cái vụ mảng ảo...)
Nếu viết sub thì được: đưa lựa chọn vùng dữ liệu ban đầu và vùng áp dụng validation.
May quá, bạn chủ topic lại không muốn xài vba .
Nhưng, xét lại vấn đề thì chọn phương án căn bản mới hay nhất.
Bảng tính, dữ liệu kiểu gì cũng phải có một cơ sở dữ liệu gốc làm căn cứ. Vậy ta chỉ cần tạo bảng dữ liệu đó rồi cho vào validation.
Nhét hết nó vào code ...xong cho nó một cái Array(A,B,C,D)...xong phim ko dùng cột phụ
chủ thớt hỏi trên trời ta trả lời trên mây vậy đơn giản suy nghĩ chi cho mệt
Bạn chịu khó đưa file lên, có là ý tưởng trên mây đi chăng nữa cũng sẽ nhận được nhiều tham khảo hơn. Không phải ai cũng thích đưa code vào file, hơn nữa tìm hiểu hàm để đáp ứng công việc là một nhu cầu thực tế.
Trước đây có 1 bài tương tự tôi không nhớ bài nào, nhưng thủ thuật làm là tạo 1 pivottable (Fields của table sẽ nằm ở Row Labels là được) --> sẽ ra danh sach unique
Sau đó Data Validation móc vô cái pivot table đó là xong, có điều nếu update source data thì nhớ bấm nút Refresh All (Trong tab Data)
Thật sự đề bài của bạn đưa ra không phải mới, vì bạn chỉ cần lên "search" của GPE gõ: "Data Validation" thì kết quả hằng hà sa số. Những anh em góp ý với bạn phía trên, đều sành sõi và đã thực hiện quá nhiều dạng bài tương tự như bạn yêu cầu, và sẽ cung cấp cho bạn những "chiêu độc" của từng bạn, hàm cũng có, VBA cũng có luôn. Các bạn làm nhiều đến nỗi mà vừa mới nghe bạn trả lời về yêu cầu thì bạn befaint đã phải thốt lên "mảng ảo...", hì hì! tiếc là: chủ đề về "mảng ảo", tức không dùng cột phụ", mà thầy NDU đã xác nhận dứt khoát "không bao giờ thực hiện được theo cách thức thực hiện hàm hay name" với Excel hiện nay.
Thật sự anh em chỉ muốn xem sự chân thành của bạn thôi! bạn hợp tác chân thành, thì anh em sẽ hỗ trợ đến nơi đến chốn. Anh em đề nghị bạn gửi file để xem dữ liệu bạn yêu cầu ra sao, thì cách thức hoặc giải pháp mới phù hợp được, nhưng, bạn vẫn lần lựa này kia...! . Bạn nói chung chung, thì anh em buộc lòng trả lời chung chung, điều đó bạn lẽ ra phải hiểu! đúng không bạn.
"Bánh ích đi, thì bánh quy mới lại" mọi việc bạn tìm và mong muốn mọi người hỗ trợ nó phụ thuộc vào "lòng chân thành" của bạn, và diễn đàn GPE lúc nào cũng luôn rộng mở cho anh chị em chân thành tìm đến sự hỗ trợ về kiến thức Excel.
1/ Nếu người ta cần áp dụng vào công việc thì đưa File thực tế lên và nêu cần cái gì, chỗ nào (nếu giải thích rỏ càng tốt).
2/ Có đính kèm File mà giải thích lòng vòng, nhiều người góp ý không nghe thì chạy cho chắc ăn, khỏi suy nghĩ chi cho mệt.
3/ Cũng 1 công việc nhưng mỗi người mỗi ý, mỗi giải pháp khác nhau, ví dụ nếu sử dụng Validation phụ thuộc cũng có nhiều cách và nhiều kiểu dùng hàm khác nhau.
Tóm lại: Thành viên nào cần giúp thì tự khắc hỏi và đính kèm theo File với lời giải thích rõ ràng chi tiết, còn họ cho là giỏi hỏi qua loa cho có tụ thì bình luận thêm cũng vậy, theo tôi thì nghĩ giải lao và đi uống Coffe cho đầu óc thanh thản, chẳng suy nghĩ thêm chi cho mệt xác.
Gạch đá nhiều quá nhỉ, về vấn đề file thì mình nghĩ các bạn quan trọng hóa vấn đề rồi vì nếu mô phỏng 1 list như mình nói ra thì các bạn chẳng mất quá 5s để gõ.
Quay lại vấn đề chính, cảm ơn bạn quocgiacan đã cho mình câu trả lời
"Các bạn làm nhiều đến nỗi mà vừa mới nghe bạn trả lời về yêu cầu thì bạn befaint đã phải thốt lên "mảng ảo...", hì hì! tiếc là: chủ đề về "mảng ảo", tức không dùng cột phụ", mà thầy NDU đã xác nhận dứt khoát "không bao giờ thực hiện được theo cách thức thực hiện hàm hay name" với Excel hiện nay."
p/s: Còn file mà các bạn muốn mình up thì như file đính kèm tnay thôi
Gạch đá nhiều quá nhỉ, về vấn đề file thì mình nghĩ các bạn quan trọng hóa vấn đề rồi vì nếu mô phỏng 1 list như mình nói ra thì các bạn chẳng mất quá 5s để gõ.
Quay lại vấn đề chính, cảm ơn bạn quocgiacan đã cho mình câu trả lời
"Các bạn làm nhiều đến nỗi mà vừa mới nghe bạn trả lời về yêu cầu thì bạn befaint đã phải thốt lên "mảng ảo...", hì hì! tiếc là: chủ đề về "mảng ảo", tức không dùng cột phụ", mà thầy NDU đã xác nhận dứt khoát "không bao giờ thực hiện được theo cách thức thực hiện hàm hay name" với Excel hiện nay."
p/s: Còn file mà các bạn muốn mình up thì như file đính kèm tnay thôi
Trời ơi! muốn làm Ảo thuật thì gây ảo giác, để mà mắt người ta chứ, muốn vậy thì phải giữ chút mánh, anh đem bày ra hết thì ai vô xem "ảo thuật" hả anh! hết linh nghiệm mần sao, khà khà khà
Trời ơi! muốn làm Ảo thuật thì gây ảo giác, để mà mắt người ta chứ, muốn vậy thì phải giữ chút mánh, anh đem bày ra hết thì ai vô xem "ảo thuật" hả anh! hết linh nghiệm mần sao, khà khà khà
Đã xác định lời thầy không sai chạy, và cũng như lời của HieuCD nói chỉ có nằm mơ mới thấy được cách giải quyết "mảng ảo" cho Data Validation. Đây chỉ là một "ảo thuật" gây "ảo giác" về "mảng ảo", tất cả chỉ "ảo" trên cái nền có thật là Excel.
Chỉ nhằm làm cho anh em có một cuộc hội ngộ vui vẻ và hứng thú thêm trong học tập.
Đã chia sẽ như những bài trước đây, với anh em chân thành trao đổi học tập mình sẽ tìm cách hỗ trợ đến nơi đến chốn, không dám dấu cũng như đánh đố, chỉ muốn anh em mình vui trong học tập mà thôi!
Cái "loại" mà bạn nói là "tháy máy" đó, bạn không có cách nào ngăn được đâu... Làm kiểu gì chúng cũng sẽ moi ra cho bằng được mới thôi.
Riêng việc nghiên cứu thủ thuật cho vui thì được
1/ Khi nghiên cứu ta nên nghiên cứu nó ở nhiều góc độ khác nhau ....và muốn thử xem khả năng của mình tới đâu thì tốt nhất đen nó ra thử ...khi bảo mật mà đem ra thử chớp mắt 1 cái xong phim thì tốt nhất dành thời gian nghiên cứu cái khác hay hơn
2/ Với mình khi viết code lại mong có người quậy phá ...càng phá thì trình độ code của mình càng tiến bộ ...và cũng từ đó từng bước hoàn thiện hơn ....và nên trân trọng và biết ơn người đó
3/ Trước đây mình viết 1 file thư viên *.dll úp trên GPE 5 phút sau có người hack xong ...cũng nhờ đó mà code két mình tiến bộ lên rất nhiều ....và vô tình khai phá thêm rất nhiều thứ từ đó ...Biết ơn Bạn đó rất Nhiều
4/ Giờ Mạnh mà viết code thách đố Bạn nào hack được đó ....1 là xài nó 2 là Delete nó...
Làm được như vậy là cũng nhờ Bạn hack file *dll của mình đó ...cũng từ đó tìm ra quy luật mà code như vậy mới có cái mà học
Thật ra, anh kieu manh là anh em vào diện như câu trích dẫn của thầy NDU phía trên.
Nếu ảnh muốn phá thì ngay từ đầu anh kieu manh thừa sức làm chuyện cỏn con này.
Anh em chúng tôi đã đùm bọc và luôn hỗ trợ cho nhau ăn ý, người tung kẻ hứng ăn khớp, tuy chưa gặp trực tiếp nhưng lòng đã kính mến nhau.
Bạn mà chọc ảnh, ảnh giận quá...... "khóc nhè" giờờ, hết chỉ bảo bạn điều hay lẽ phải giờ, sợ chưa Rùa con 1080! mau xin lỗi ngay! khà khà khà (xin lỗi anh kieu manh nha! nhìn hình anh đăng đoán dzậy thôi, nên chọc anh cho vui nhộn tí)
"Quốc gia Cần" trình bày như dưới đây, không nhằm ý khoe khoang, vì các bạn sẽ thấy việc chạy code "mèo quào" của quocgiacan không thể nào so sánh với các bài mà anh em VBAđã cống hiến cho diễn đàn, các đoạn Code hữu ích áp dụng cho các anh em đang cần để phục vụ cho công việc mưu sinh, và những ai may mắn nhận được cũng đều tri ân việc làm cao nghĩa này.
Quocgiacan càng không coi đây là việc hướng dẫn, mà là sự chia sẻ thủ thuật trong học tập của mình, cũng nhân đây để bày tỏ nỗi lòng, cùng kêu gọi anh em đoàn kết, thương yêu, tôn trọng và hỗ trợ nhaucùng xây dựng ngôi nhà chung GPE: "Ngôi nhà Thông minh và Nghĩa cử", như tôn chỉ của Diễn đàn này.
"Kiến thức vô tận, sự hiểu biết của chúng ta chỉ như hạt cát", nhìn gần ta, ta có thể thấy: "tôi hơn anh, hoặc anh hơn tôi", nhưng hãy nhìn rộng ra thế giới, chúng ta còn thua thiệt và thua xa nhiều lắm. Vì vậy, hãy nâng niu trân trọng nhau, hỗ trợ nhau trong học tập, nhưởng nhịn nhau trong ngôn từ, tìm và cho nhau những ý tưởng cao đẹp của dân tộc Việt Nam mình. Được vậy, thật không gì mà quocgiacan hạnh phúc bằng, như được tóm gọn trong nick "Quốc gia Cần" vậy.
Trước tiên cảm ơn thầy, anh huuthang_bd, các "chiến hữu" thân cận: leheocon, HieuCD, befaint, cùng anh em VBA như anh kieu manh, Let'sGâuGâu, be09, SA_DQ, ChanhTQ, HYen17, Giangleloi, Giaiphap....(Ôi! nhiều quá kể sao hết ta).. đã giúp tôi nhiều trong việc học tập tại diễn đàn GPE, và tạo cơ hội cho tôi phá phách nghĩ ra giải pháp này.
Cũng xin anh em GPE đừng chê cười vì giải pháp ngô nghê, và bỏ quá cho nếu có gì chưa chính xác. Cùng lấy ý của anh Bình (OverAC) xin "liệt kê" cách suy nghĩ để ra giải pháp, nên tôi mạnh dạn trình bày chi tiết như sau:
1. Thầy NDU xác định: Data Validation không chấp nhận mảng không hiện hữu trên sheet, cho dù nó có thể được đưa vào "Name", (vd: bằng hàm LOOKUP() mà leoheocon đã từng đưa ra thành chủ đề khá vui nhộn).
2. Như vậy, chắc chắn việc tạo danh sách loại những yếu tố trùng phải được thực hiện trên 1 sheet nào đó. Trong file gửi cho chủ đề, tôi thực hiện trên "Sheet2" (từ A2:A1000 hàm sử dụng các bạn xem trong file chi tiết).
3. Tạo Name: "Aogiac", tôi sử dụng OFFSET() làm danh sách động lấy từ dữ liệu Sheet2!A2:A1000, sau đó tạo Data Validation trên Sheet1 các ô mà tôi tô nền vàng theo "list": "Aogiac".
4. Mọi thứ chuẩn bị xong và ra kết quả như ý khi thêm hoặc xóa dữ liệu như bạn Ảo giác cung cấp.
Bây giờ, đến việc che chắn:
1. Điều chỉnh Format Cell (Ctrl+1) từ Sheet2!A2:A1000 tab "Protection", bỏ "check" LOCK, chọn "check" HIDDEN, nhấn OK.
2. Chỉnh màu của Font chữ về màu trắng toàn bộ cột A.
3. Save As với tên đuôi .xlsb
4. Nhấn Alt+F11, Chép đoạn code "mèo quào" sau đây (vào module hay ViewCode của Sheet2), rồi nhấn "RUN" để che tất cả các Name:
PHP:
Sub HideAllNames()
Dim n As Name
For Each n In ThisWorkbook.Names
If n.Visible Then n.Visible = False
Next n
End Sub
Sau khi kiểm tra đã che hết Name, tôi xóa Code này (Remove module nếu có).
5. Vào lại Sheet2, tạo Protect Sheet (tôi đang cài password "Q212P431")
6. Vào lại cửa sổ VBE, chọn Sheet2, chọn Properties mục Visible: với "2-xlSheetVeryHidden". Xong đóng VBE lại và Save file.
Mọi thứ đã hoàn thành.
Các bạn muốn đi ngược lại quá trình thì dùng Code sau để mở Name:
PHP:
Sub ShowAllNames()
Dim n As Name
For Each n In ThisWorkbook.Names
If n.Visible = False Then n.Visible = True
Next n
End Sub
Và mở password ra xem vô tư.
Sau cùng, gửi đến bạn Ảo giác lời cáo lỗi nếu bạn nghĩ rằng anh em "ném đá" bạn và có thể "đã chơi" bạn! Nếu đúng, thì không đâu bạn ơi! vì bạn hãy xem lại những bài trên tôi đã gợi ý, nhưng có lẽ bạn không chú ý nên "chưa hoà nhịp" với anh em. Không sao, như tôi đã nói Diễn đàn GPE luôn rộng mở với mọi anh em chân thành tìm đến học tập và tìm hiểu về kiến thức Excel.
Xin các "bậc cao nhân" hãy bỏ quá cho nếu đâu đó những dòng trình bày trên có chữ hay đoạn nào đó làm phật lòng, và cũng bỏ quá cho giải pháp "buồn cười" này.
Chúc Thầy và anh em diễn đàn luôn mạnh khỏe và luôn gặp nhiều may mắn trong cuộc sống và học tập.
Chuyện đó chưa chắc đâu! Bởi trên đời này không có khóa nào gọi là không mở được cả (chỉ là sớm hay muộn thôi)
Và tôi cũng chưa từng thấy bất cứ lập trình viên (chuyên nghiệp) nào dám nói câu như Mạnh vừa nói cả. Tôi nghĩ Mạnh đăng ký tham gia làm nhân viên của Apple được rồi đó. Ẹc... Ẹc... GPE cũng vì vậy mà thơm lây chăng?
------------------------
Ồ mà hình như chúng ta lạc đề thì phải
???
Chuyện đó chưa chắc đâu! Bởi trên đời này không có khóa nào gọi là không mở được cả (chỉ là sớm hay muộn thôi)
Và tôi cũng chưa từng thấy bất cứ lập trình viên (chuyên nghiệp) nào dám nói câu như Mạnh vừa nói cả. Tôi nghĩ Mạnh đăng ký tham gia làm nhân viên của Apple được rồi đó. Ẹc... Ẹc... GPE cũng vì vậy mà thơm lây chăng?
------------------------
Ồ mà hình như chúng ta lạc đề thì phải
???
Có lẻ lạc đề rồi đó Anh ...để hôm nào Em Rảnh lập thớt mới ta Tính Anh
Mong rằng Anh Em mình vui vẻ tránh hữu lộn ...Em Xin kết Thúc ở đây ....
Phát ngôn gây sốc như Donld Trump ....
Mong rằng sẻ ko có Bạn nào nêu tên Mình trong Thớt này nữa ...Trân Trọng
anh chị cho mình hỏi file danh sách này giờ muốn mở rộng vùng nó ra 1000 dòng để khi thêm danh sách sang sheet trích xuất dữ liệu thông tin vân có cập nhật đầy đủ à, anh chị nào đã làm rồi chỉ giúp mình với,