0o -.......Forum 361dodesign.com.......- o0
Hãy tham gia diễn đàn 361dodesign ngay hôm nay và hãy đăng ký thành viên để có thể xem hiển thị hết diễn đàn + links download + và chia sẻ kinh nghiệm..v..v..!!!!!!!!!!!!!!!!!!!!!!
Chúc các bạn một ngày vui vẻ..
0o -.......Forum 361dodesign.com.......- o0
Hãy tham gia diễn đàn 361dodesign ngay hôm nay và hãy đăng ký thành viên để có thể xem hiển thị hết diễn đàn + links download + và chia sẻ kinh nghiệm..v..v..!!!!!!!!!!!!!!!!!!!!!!
Chúc các bạn một ngày vui vẻ..
0o -.......Forum 361dodesign.com.......- o0
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

0o -.......Forum 361dodesign.com.......- o0

Dịch vụ Thiết kế - In ấn - In Offset - Thế giới Thiết kế - Download phần mềm - Download Vector Free - Hỗ trợ Forum
 
Trang ChínhGalleryLatest imagesTìm kiếmĐăng kýĐăng Nhập

 

 Giảm danh sách xổ xuống của Validation, sau khi chọn 1.

Go down 
Tác giảThông điệp
caohung841

caohung841


Tổng số bài gửi : 159
Điểm tích lũy : 4877
Thích : 2
Tham gia : 10/02/2012

Giảm danh sách xổ xuống của Validation, sau khi chọn 1. Empty
Bài gửiTiêu đề: Giảm danh sách xổ xuống của Validation, sau khi chọn 1.   Giảm danh sách xổ xuống của Validation, sau khi chọn 1. EmptyMon Feb 27, 2012 12:03 pm

Rất hữu ích cho người dùng Excel khi bạn cho họ 1 danh sách để chọn bằng
Validation, nhưng cái danh sách này tự động ngắn lại mỗi khi họ chọn 1
mục trong danh sách, để khỏi phải lựa chọn trong 1 danh sách quá dài,
đồng thời tránh việc nhập trùng dữ liệu (đôi khi cần thiết).

Bước 1:
Trong 1 sheet bất kỳ (thí dụ sheet1) bạn có 1 danh sách trong vùng
A1:A10. Bạn hy đặt name cho danh sách này bằng cách tô chọn vùng danh
sách, rồi gõ tên MyList trong hộp namebox.

Bước 2:
Trong 1 sheet khác mà bạn muốn dùng validation dựa vào danh sách MyList
nói trên, tô chọn vùng bạn cần, mở menu Data – Validation, chọn Allow là
List, source là =MyList, rồi nhấn OK.

Bước 3: mở cửa sổ VBA của sheet đó, copy đoạn code sau:





Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strVal As String
Dim strEntry As String
On Error Resume Next
strVal = Target.Validation.Formula1
If Not strVal = vbNullString Then
strEntry = Target
Application.EnableEvents = False
With Sheet1.Range("MyList")
.Replace What:=strEntry, _
Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False
.Sort Key1:=.Range("A1"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
.Range("A1", .Range("A65536").End(xlUp)).Name = "MyList"
End With
End If
Application.EnableEvents = True
On Error GoTo 0
End Sub

Đóng cửa sổ VBA rồi quay về Excel. Thử chọn 1 mục trong validation, sang
1 ô khác và xổ cái validation xuống, bạn sẽ thấy mục vừa chọn xong
không còn trong list nữa.
Lưu ý trong code, khi nói đến name MyList, phải xác định rõ
Sheet1.MyList, vì nếu không, VBA sẽ cho rằng name này nằm chung sheet
với sheet chứa code và sẽ không tìm thấy và báo lỗi.
Về Đầu Trang Go down
 
Giảm danh sách xổ xuống của Validation, sau khi chọn 1.
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Thêm dữ liệu vào danh sách Validation một cách tự động
» Sử dụng Data-Validation khi danh sách nguồn nằm trong một Sheet khác
» Thêm các danh sách có sẵn và cả danh sách tự tạo vào menu chuột phải
» Tự tạo danh sách để fill
» PSD _ Xương khô _ SKELETONS

Permissions in this forum:Bạn không có quyền trả lời bài viết
0o -.......Forum 361dodesign.com.......- o0  :: Phần mềm ứng Văn Phòng :: Tin học văn phòng - Microsoft Office :: Microsoft Office Excel-
Chuyển đến