Xin giúp: validation list trả về giá trị

Liên hệ QC

nttnew

Thành viên mới
Tham gia
5/3/11
Bài viết
9
Được thích
0
Điểm
0
Tôi có một bảng với 2 cột là Code và Value như trong hình vẽ. Tại cell D2 tôi tạo một validation list lấy source là cột value (B2-B5). Xin hỏi có cách nào để sau khi chọn giá trị từ list thì tại cell D2 thay vì hiển thị giá trị tôi vừa chọn (ví dụ Hà Nội) thì nó sẽ hiển thị code tương ứng của Hà Nội (là 1) ?

Hình vẽ:
gen_gencrm1.png
 
theo mình hiểu thì trong trường hợp đó bạn phải dùng phép vlookup là ok nhưng lại có vấn đề phát sinh là nếu số 1 nằm ở bên phải của các địa chỉ thì bạn mới dùng để dò được còn không làm k được hoặc phải mượn thêm một cột trung gian nũa
đó là ý kiến của mình ban jnào có ý kiến hay hơn góp ý cho anh em cung học hỏi nào !
 
Cái khó ở đây là khi click vào list thì nó hiển thị ra value, còn sau khi chọn xong thì nó lại hiển thị giá trị code tương ứng. Còn việc chuyển cột Code sang bên trái hay phải thì không có vấn đề gì.
 
Cái khó ở đây là khi click vào list thì nó hiển thị ra value, còn sau khi chọn xong thì nó lại hiển thị giá trị code tương ứng. Còn việc chuyển cột Code sang bên trái hay phải thì không có vấn đề gì.

Làm được nhưng phải dùng control ComboBox. Bạn tham khảo file gửi kèm.
 

File đính kèm

  • ComboBox.xls
    20.5 KB · Đọc: 50
Dùng VBA thì khả dĩ, bạn thử code sau (Giả sử vùng G1:G30 là vùng nhập Validation):

Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, [G1:G30]) Is Nothing Then _
Target = Columns("B").Find(Target).Offset(, -1)
End Sub
 

File đính kèm

  • Book1.xls
    25.5 KB · Đọc: 29
Lần chỉnh sửa cuối:
sao tớ mở file đính kèm không có chạy ta ?
Giá trị thay đổi nằm tại cell G2 đấy đồng chí ơi ---> Và làm như Nguyễn Duy Tuân thì mới đúng yêu cầu, tức: Chọn Tên nhưng giá trị trả về là Mã nằm đúng ngay vị trí cell vừa chọn
Bài này không thế dùng VLOOKUP được đâu (vì kết quả nằm ở chổ khác rồi)
 
Dùng VBA thì khả dĩ, bạn thử code sau (Giả sử vùng G1:G30 là vùng nhập Validation): ...

File của anh chạy chuẩn rồi. Thank anh !!!

Lý do em đặt ra bài toán như này là từ nhu cầu import dữ liệu từ file excel vào phần mềm, trong đó có nhiều dữ liệu dạng danh mục (nên có mã thay đổi). Nếu bắt người dùng phải ghi nhớ mã (ví dụ 63 mã của 63 tỉnh thành) thì thật sự vất vả, và vì file em dùng để import vào lại có rất nhiều danh mục động nên muốn làm cái validation như kia để người dùng không phải nhớ.

Thank anh một lần nữa !!!
 
Tôi có một bảng với 2 cột là Code và Value như trong hình vẽ. Tại cell D2 tôi tạo một validation list lấy source là cột value (B2-B5). Xin hỏi có cách nào để sau khi chọn giá trị từ list thì tại cell D2 thay vì hiển thị giá trị tôi vừa chọn (ví dụ Hà Nội) thì nó sẽ hiển thị code tương ứng của Hà Nội (là 1) ?

Hình vẽ:
gen_gencrm1.png

Nếu vậy bạn nên tạo luôn 2 cột trong combox đi.
 
Anh Tuân mới giới thiệu thôi chứ dùng Combo phải viết thêm code nữa mới sử dụng được, mình mạn phép bổ xung vào file của anh Tuân để bạn tham khảo. Sơ bộ như sau còn bổ xung gì thì tuỳ theo ý

Mã:
Option Explicit
'==============
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
An
End Sub
'================
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
An
ElseIf KeyCode = 27 Then
Range(ComboBox1.LinkedCell) = ""
An
End If
End Sub
'============
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 7 Then
Hien Target
Else
An
End If
End Sub
'====================
Sub Hien(Rg As Range)
With Me.ComboBox1
.Visible = True
.Top = Rg.Top
.Left = Rg.Left
.LinkedCell = Rg.Address
.Activate
End With
End Sub
'=============
Sub An()
Me.ComboBox1.Visible = False
ActiveSheet.Range(ComboBox1.LinkedCell).Offset(1).Select
End Sub

Giờ bạn Enter hay kích đúp vào dòng chọn là được
 

File đính kèm

  • ComboBox.xls
    28 KB · Đọc: 14
Lần chỉnh sửa cuối:
Chỉ cần viết code VBA như hướng dẫn trước của anh là được. Em đã hoàn thành file cần để import rồi, gửi lên cho mọi người xem theo link sau: http://gen.vn/download/kh_tc.xls (file to quá kích thước cho phép nên không upload lên forum được)

Cám ơn mọi người đã nhiệt tình giúp đỡ !!! }}}}}
 
File tôi gửi ở bào #4, sau khi chọn tên thành phố thì giá trị/mã nằm ngay trong cell "G2" có Combo đó.
 
Web KT
Back
Top Bottom