Tạo danh sách động dùng cho Validation (1 người xem)

Liên hệ QC

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

Quả thật mình mới tành về VBA nên cũng không rõ ý nghĩa của các câu lệnh.
Nếu bây giờ mình muốn ở C1 không phải là =A1+B1 mà là =round((A1+B1)/3,1)
thì ở dòng trong file ca_dafi.xlx:
Cells(Target.Row, 3).Value = "=" & Target.Address & "+" & _
Target.Offset(, myRef).Address

phải viết lại như thế nào?
Cảm ơn các bạn trước.
Thử sửa lại thế này xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim MyRef As Long
  If Not Intersect(Target, [A1:B24]) Is Nothing Then
    MyRef = Sgn(1.5 - Target.Column)
    If Target.Value = "" Or Target.Offset(, MyRef).Value = "" Then Exit Sub
    If IsNumeric(Target) And IsNumeric(Target.Offset(, MyRef)) Then
        With Target.Offset(, (MyRef - 1) / 2 + 2)
          .Validation.Delete
          .Value = "=ROUND((" & .Offset(, -2).Address & "+" & .Offset(, -1).Address & ")/3,1)"
        End With
    Else
        With Target.Offset(, (MyRef - 1) / 2 + 2)
          .ClearContents
          .Validation.Delete
          .Validation.Add Type:=xlValidateList, Formula1:="=Data"
        End With
    End If
  End If
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Lại làm phiền các bạn tiếp. Mình đã làm theo các hướng dẫn và nói chung đã thoả mãn các yêu cầu của mình. Thế nhưng khi mình đặt mật khẩu cho sheet thì chương trình lại báo lỗi ở dòng: .Validation.Add Type:=xlValidateList, Formula1:="=Data"
Nếu bỏ mật khẩu bảo vệ cho sheet thì không có việc gì xảy ra, vậy liệu có cách nào vừa bảo vệ cho sheet mà chương trình vẫn chạy tốt không?
Cảm ơn các bạn trước.
 
Lại làm phiền các bạn tiếp. Mình đã làm theo các hướng dẫn và nói chung đã thoả mãn các yêu cầu của mình. Thế nhưng khi mình đặt mật khẩu cho sheet thì chương trình lại báo lỗi ở dòng: .Validation.Add Type:=xlValidateList, Formula1:="=Data"
Nếu bỏ mật khẩu bảo vệ cho sheet thì không có việc gì xảy ra, vậy liệu có cách nào vừa bảo vệ cho sheet mà chương trình vẫn chạy tốt không?
Cảm ơn các bạn trước.
Tôi đã thử và thấy hình như không có cách bạn à.... Khi protect sheet sẽ không làm việc được với Validation ---> Đành vậy!
Giãi pháp tôi hình dung sẽ là: Mỗi khi chọn vào vùng nhập liệu sẽ Unprotect sheet, nhập xong, chọn ngoài vùng này thì Protect lại ---> Nhưng.. rườm rà quá đi
 
Như vậy có mang tính thiếu chuyên nghiệp quá không, mình nghĩ không việc gì là không thể, mình không tìm ra cách mới xin ý kiến nhưng mình tin vẫn có cách khắc phục
Cảm ơn bạn đã góp ý
 
cảm ơn mấy bạn nhìu.. mình đang gặp rắc rối với mấy cái này..
 
Xin bạn chủ topic xem và hướng dẫn thêm. Xin cám ơn nhiều!
 

File đính kèm

Cho mình hỏi muốn tra cứu chéo giữ 2 cột list trong Validation thì phải làm thế nào? Thanks
 
BẠn vào ô nào đó, gõ vào ô ký tự nào đó hay bấm F2. Xong bấm Alt+Mũi tên xuống để xem list.
Nếu muốn xem >=2 cột thì chì có cách dùng Combobox kết hợp với VBA

Anh ơi, em ấn F2, rồi Alt + Mũi tên xuống, thì xổ ra cột trắng chứ không có dữ liệu. Như thế là thế nào ạ? Anh giúp em với nhá :-=
 
Khi nhập dữ liệu, bạn muốn rằng nếu nhập một ký tự nào đó thì sẽ sổ xuống cho ta một list danh sách bắt đầu hay chứa đựng ký tự này và danh sách này phải được sắp xếp theo thứ tự tăng dần để dễ tìm.
Mình xin gửi 2 file VD để minh họa, các bạn tham khảo nha.
Do không phải là VBA nên PP này phải dùng đến 1 cột phụ
-----------
Bạn có thể viết bằng code VBA được không ? Việc này rất cần trong việc tìm danh sách khách hàng và đặc biệt tìm tên vật tư ( vật tư rất nhiều chủng loại, ....) .
Cám ơn
 
Bác hướng dẫn từng bước được không nhỉ? Đưa mỗi file ví dụ em chịu chẳng biết làm thế nào.
 
Sorry các pác, e là thành viên mới , e thấy cách data/validation của pác hoangdanh282vn hay quá nhưng không hiểu công thức này, nhờ pác hoangdanh282vn chỉ dùm e.

=IF(OR(ISNA(VLOOKUP(G2,OFFSET(MaSp,,,,2),2,0)),G2=""),"",VLOOKUP(G2,OFFSET(MaSp,,,,2),2,0))

E xia xìa pác nhìu
 
Web KT

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

Back
Top Bottom