Về chọn nhanh trong dang sách Validation

Liên hệ QC

duongsatdn

Thành viên tiêu biểu
Tham gia
15/6/07
Bài viết
455
Được thích
393
Giả sử tôi có một danh sách trên 200 mụcxếp theo ABC. Khi dùng validation, có cách nào tìm nhanh hạng mục trong danh sách theo ABC không?
 
duongsatdn đã viết:
Giả sử tôi có một danh sách trên 200 mụcxếp theo ABC. Khi dùng validation, có cách nào tìm nhanh hạng mục trong danh sách theo ABC không?
Validation không có chức năng đó. Có 3 cách :
  1. Bạn dùng Combobox thay thế : Tuy nhiên chỉ được ký tự đầu tiên thôi bạn ạ : Bạn gõ chữ T thì nó sẽ chạy đến phần tử đầu tiên có chữ T
  2. Bạn đặt Validation theo nhóm : Với mỗi nhóm sẽ có các phần tử tương ứng : VD : Với mỗi quốc gia sẽ có các tỉnh tương ứng, với mỗi tỉnh sẽ có các huyện tương ứng
  3. Dùng Form : cái này thì được : Nó có thể cho bạn danh sách có chứa các ký tự mà bạn vừa gõ vào
Thân!
 
- Dùng combobox để search nè !!!
 

File đính kèm

  • Search.rar
    27.3 KB · Đọc: 465
dmtdmtbb đã viết:
- Dùng combobox để search nè !!!

Có nghĩa là khi nhập vào ký tự bất kỳ thì sẽ hiện ra danh sách các phần tử có chứa chuỗi ký tự đó bạn ạ.

VD : nhập : na -->> DS : na; nan; nanh; nang; nap; . . . . . .
nhập thêm n : thành nan --->>DS: nan; nanh; nang . . .

Ví dụ 1

Ví dụ 2

Thân!
 
- Khi bạn chọn trong Listbox thì tên tương ứng hiện lên trong Combobox và ngược lại
- Khi chon Single click print thì DATA sẽ được in khi bạn click chọn hặc Double click print
- Search theo tên hoặc theo mã, chỉ cần bạn gõ chử cái đầu thì sẽ tìm theo tương ứng và gõ các từ tiếp theo sẽ tìm theo tiếp theo !!!
 

File đính kèm

  • Search.rar
    31.2 KB · Đọc: 1,093
dmtdmtbb đã viết:
- Khi bạn chọn trong Listbox thì tên tương ứng hiện lên trong Combobox và ngược lại
- Khi chon Single click print thì DATA sẽ được in khi bạn click chọn hặc Double click print
- Search theo tên hoặc theo mã, chỉ cần bạn gõ chử cái đầu thì sẽ tìm theo tương ứng và gõ các từ tiếp theo sẽ tìm theo tiếp theo !!!

Phải làm sao khi gõ số 1 ở MÃ thì tất các các mã có số 1 ở bất cứ vị trí nào hiện ra (những Mã không có thì không hiện ra), gõ thêm chữ A nữa thì các Mã có chuỗi "1A" sẽ hiện ra

Tương tự với tên

Thân!
 
Nếu muốn đơn giản hơn thì bạn dùng file này... ko dùng macro
Mến
ANH TUẤN
 

File đính kèm

  • Validation.xls
    20.5 KB · Đọc: 333
anhtuan1066 đã viết:
Nếu muốn đơn giản hơn thì bạn dùng file này... ko dùng macro
Mến
ANH TUẤN

Em bổ sung nhé : Khi nhập ký tự nào chỉ có những mã có chứa chuỗi ký tự đó mới hiện ra. VD : aa, ab, . . . .

Thân!
 

File đính kèm

  • Validation.xls
    35.5 KB · Đọc: 221
Hi... hi... lần trước tôi cũng làm 1 file gần tương tự như Bắp nhưng cuối cùng thấy ko ổn.. VD nhé:
Nguyen van 1 đến nguyen van 9 thuộc lớp 6A1
Nguyen van 10 đến nguyen van 19 thuộc lớp 6A2
....
nguyen van 90 đến nguyen van 99 thuộc lớp 6A10
...
Khi tôi gõ vào "6" sẽ hiện ra ds toàn bộ lớp 6
khi tôi gõ vào "6A" sẽ hiện ra ds toàn bộ lớp 6A
nhưng... khi tôi gõ vào "6A1" thì..... đáng lý ra nó phải hiện ra lớp 6A1 thì nó lại hiện ra cái gì đâu trời ơi đât hởi... vì 6A10 cũng nằm trong phạm vi tìm kiếm của 6A1 đấy... đúng ko?
Bởi vậy... chắc cú nhất là tìm từ ký tự đầu tiên, nếu ko sẽ gặp trường hợp đặc biệt nào đó khiến ta dở khóc dở cười... Ac... ac...
ANH TUẤN
 
anhtuan1066 đã viết:
Hi... hi... lần trước tôi cũng làm 1 file gần tương tự như Bắp nhưng cuối cùng thấy ko ổn.. VD nhé:
Nguyen van 1 đến nguyen van 9 thuộc lớp 6A1
Nguyen van 10 đến nguyen van 19 thuộc lớp 6A2
....
nguyen van 90 đến nguyen van 99 thuộc lớp 6A10
...
Khi tôi gõ vào "6" sẽ hiện ra ds toàn bộ lớp 6
khi tôi gõ vào "6A" sẽ hiện ra ds toàn bộ lớp 6A
nhưng... khi tôi gõ vào "6A1" thì..... đáng lý ra nó phải hiện ra lớp 6A1 thì nó lại hiện ra cái gì đâu trời ơi đât hởi... vì 6A10 cũng nằm trong phạm vi tìm kiếm của 6A1 đấy... đúng ko?
Bởi vậy... chắc cú nhất là tìm từ ký tự đầu tiên, nếu ko sẽ gặp trường hợp đặc biệt nào đó khiến ta dở khóc dở cười... Ac... ac...
ANH TUẤN

Dĩ nhiên là tùy theo tình hình cụ thể mà đặt hàm Find hay Exact . . .
Bác muốn đúng là nó và chỉ là nó thôi (6A1 chứ không phải là 6A10) thì bỏ hàm Find đi, cho nó = luôn

Cái mà em muốn nói đến là cái khác, VD có DS hàng trăm khách hàng, không thể nhớ mã hết được, và tìm đầy đủ tên cũng chết vì đâu có nhớ đúng hoàn toàn. VD : Chỉ nhớ có chữ "Điện" hoặc "Lực", ta nhập vào đấy thì tất cả những anh có chữ "Điện" đều hiện ra. Như vậy mới tìm nhanh chứ.

Đây chính là một tính năng cần phải có của các phần mềm quản trị hiện nay bác ạ.

Thân!
 
Uh... tất nhiên tôi hiểu... nhưng cũng phai nêu ra đễ mọi người chú ý... kẻo có ngày làm xong, Validation nó ra tum lum mà ko biệt tại sao... Phát hiện ra sai còn đở... Lở ko phát hiện, vô tư chọn vào thì... ai cha cha... Làm đã đời trời đất mới thấy kết quả nó đi tận đâu đâu thì... xĩu...
ANH TUẤN
 
Cải tiến thêm 1 chút Validation này: Gõ trực tiếp vào cell có Data Validation luôn...Ko cần cell trung gian... hi... hi...
Nếu làm như thế này thì chỉ cần chú ý 1 điểm thôi: Vào Data Validation\Error Alert và bỏ chọn muc "Show error alert ...."
Mến
ANH TUẤN
 

File đính kèm

  • Validation_2.xls
    20.5 KB · Đọc: 214
Mr Okebab đã viết:
Có nghĩa là khi nhập vào ký tự bất kỳ thì sẽ hiện ra danh sách các phần tử có chứa chuỗi ký tự đó bạn ạ.

VD : nhập : na -->> DS : na; nan; nanh; nang; nap; . . . . . .
nhập thêm n : thành nan --->>DS: nan; nanh; nang . . .

Ví dụ 1

Ví dụ 2

Thân!
Bác lám ơn giải thích hộ em code trong file vidu1, vi em mới học vba nên chưa biết, mong bác thông cảm
em ko hiểu mấy keyword : me, SO2(em ấn F1 nó bảo ko có keyword này)
i = S02.Range("A65000").End(xlUp).Row + 1
Me.NhomHang.Value = Me.HHList.Value
Thanks
 
connhangheo đã viết:
Bác lám ơn giải thích hộ em code trong file vidu1, vi em mới học vba nên chưa biết, mong bác thông cảm
em ko hiểu mấy keyword : me, SO2(em ấn F1 nó bảo ko có keyword này)
i = S02.Range("A65000").End(xlUp).Row + 1
Me.NhomHang.Value = Me.HHList.Value
Thanks
me : Khi viết code trên chính Form đó thì tên của form sẽ được thay bằng me
VD : Nhà bạn, nhà tôi là form. Các đồ vật trong nhà là các đối tượng như Combobox, Textbox . . .
Khi muốn nói đến cái tủ lạnh :
  1. Nếu ở nơi khác thì : Nhàconhangheo.TủLạnh
  2. Nếu ở tại nhà bạn thì : Me.TủLạnh
Như vậy chương trình đã hiểu là cái tủ lạnh của nhà bạn

S02 : Đây là tên của 1 sheet trong VBA, bạn có thể thay đổi tên của nó bằng cách thay tên trong properties của nó. Cách đặt này không bắt buộc, chẳng qua là để cho dễ viết code thôi.


i = S02.Range("A65000").End(xlUp).Row + 1
Đây là cách lấy số hàng cuối cùng (dữ liệu) của cột A trong sheet S02

Me.NhomHang.Value = Me.HHList.Value
Gán giá trị của textbox NhomHang = giá trị được chọn của Listbox HHList
Giống như : Me.TủLạnh.Màu = Me.Salon.Màu

Sở dĩ bạn dúng help (F1) mà không thấy vì những cái này do người làm tự định danh.

Bạn cứ thế tìm hiểu nhé

Thân!
 
bac giải thích cho em cái sub này luôn với:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And Target.Row > 1 And Target.Row < 12 Then
Cancel = True
Bebe.Show
End If
End Sub
 
connhangheo đã viết:
bac giải thích cho em cái sub này luôn với:
  1. Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  2. If Target.Column = 1 And Target.Row > 1 And Target.Row < 12 Then
  3. Cancel = True
  4. Bebe.Show
  5. End If
  6. End Sub
  1. Bác nào vừa gọi em : Khi ta Click chuột phải :
  2. Đây là con em : Nếu ô hiện hành : ở cột 1 và hàng từ 2->11 thì
  3. Các menu bình thường khi ta Click chuột phải sẽ bị hủy
  4. User Form Bebe sẽ được gọi (hiện) ra
  5. Con em nó chào các bác nó về : Xong nếu
  6. Em chào các bác em về
Thay mặt vợ em, em chào bác Còn hàng héo chúng em về ạ
Thân!
 
cho em hỏi tiếp cái này :
Range("Tim").NumberFormat = "@" : code này nghĩa là thế nào, em ko hiểu @ tức là gì. Thanks bác trước.
 
connhangheo đã viết:
cho em hỏi tiếp cái này :
Range("Tim").NumberFormat = "@" : code này nghĩa là thế nào, em ko hiểu @ tức là gì. Thanks bác trước.

Đây là cách Format theo kiểu text bạn ạ

Thân!
 
Web KT
Back
Top Bottom