Kiểm tra giá trị của cell trong range

Liên hệ QC

trieusgvn

Thành viên mới
Tham gia
16/6/07
Bài viết
30
Được thích
2
Có bạn biết cách kiểm tra giá trị của cell trong range thì giúp mình với

Ví dụ:

Nếu có 1 trong những cell thuộc range có giá trị = 1 thì OK

Nếu không sẽ báo sai dữ liệu.

Tks nnnn.
 
vậy dùng validation đi. chỉ cho phép nhập 1 thui
 
Upvote 0
Bạn tham khảo đoạn mã này

PHP:
1  Dim Rng As Range, sRng As Range

  Set Rng = Range([B1], [B1].End(xlDown))  'Gán Vùng Cần Khảo Sát Vô Biến'
3  Set sRng = Rng.Find(1,,xlFormulas,xlWhole) 
  If sRng Is Nothing Then
5       MsgBox "Nothing"
  Else
7       MsgBox sRng.Address
  End If
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Đoạn code của bạn HYEN17 có phải hiểu như sau không nhé!
'vùng khảo sát là hàng B (hay cột B)
'Tìm giá trị 1 trong vùng khảo sát
Nếu không tìm thấy, thbáo không có
Ngược lại trả vế vị trí của cell có giá trị bằng 1

Rất mong bạn cho biết thêm thông tin về đoạn code trên
Tks n.
 
Upvote 0
Đoạn code của bạn HYEN17 có phải hiểu như sau không nhé!
. . . .
Rất mong bạn cho biết thêm thông tin về đoạn code trên

D1:= Khai báo 2 biến đối tượng kiểu Range để xài;
D2:= Đem toàn bộ vùng cột 'B' từ 'B1' cho đến dòng cuối chứa DL (dữ liệu) gán vô biến đã khai báo.
D3:= Tìm số 1 (nguyên vẹn) trong biến vùng Rng & gán kết quả vô biến thứ nhì;
D4:= Nếu không tìm thấy ô nào trong vùng thỏa, thì báo câu 'Nothing'
D5:= Nếu thấy thì báo địa chỉ ô tìm thấy cho người vừa cho macro chạy!

(húc vui & thành công tuần làm việc mới!
 
Upvote 0
Tiếp theo ý tưởng trên, mình có thông tin như tập tin đính kèm
Mong bạn HYen17 và các bạn khác hỗ trợ giải pháp thực hiện:
+ Kiểm tra khi nhập:
. Nếu khi nhập vào cot7/cot10/cot13 giá trị là 1 thì cot15 có giá trị là K
. Giá trị nhập vào từ cot4 đến cot13 chỉ được phép nhập là 1
+ Kiểm tra khi in: Nếu cot2 có giá trị (khác rỗng chẳng hạn) và 1 trong các cot4 đến cot13 không có giá trị là 1 thì báo lỗi

Cám ơn các bạn nhiều
 
Upvote 0
Tiếp ý trên.
Nhờ bạn HYEN17 và các bạn giúp mình giải pháp kiểm tra sau:
Mình có 1 bảng gồm 16 cot (tương ứng từ cột A đến cột P)
+ Kiểm tra khi nhập (bắt đầu nhập từ dòng A12):
. Nếu khi nhập vào cot7/cot10/cot13 giá trị là 1 thì cot15 có giá trị là k
. Giá trị nhập vào từ cot4 đến cot13 chỉ được phép nhập là 1
+ Kiểm tra khi in:
. Nếu cot2 có giá trị (khác rỗng chẳng hạn) và 1 trong các cot4 đến cot13 không có giá trị là 1 thì báo lỗi
. Nếu cot7/cot10/cot13 có giá trị là 1 và cot15 có giá trị khác k/K thì báo lỗi (phòng hờ người dùng xoá nội dung ở cột15)
Tks các bạn nhiều
 
Lần chỉnh sửa cuối:
Upvote 0
Chắc up help khó quá nên không có bạn nào reply. Dù sao cũng cám ơn các bạn
 
Upvote 0
Vâng đay nè Thầy (e tìm mãi mới ra chỗ đính kèm file trong phần trả lời). Xin lỗi thầy nhé
 

File đính kèm

Upvote 0
Bạn muốn lập hàm để tính hay dùng sự kiện hoặc Marco vậy?
 
Upvote 0
Dạ e muốn thực hiện:
+ Kiểm tra khi nhập:
. Nếu khi nhập vào cot7/cot10/cot13 giá trị là 1 thì gán cot15 có giá trị là K
. Giá trị nhập vào từ cot4 đến cot13 chỉ được phép nhập là 1
+ Kiểm tra khi in: Nếu cot2 có giá trị (khác rỗng chẳng hạn) và 1 trong các cot4 đến cot13 không có giá trị là 1 thì báo lỗi
+ Kiểm tra thông tin từ B12 đến B51 nếu dòng nào không có dữ liệu sẽ xoá cả dòng. Có thể dòng dữ liệu trống này nằm giữa các dòng có dữ liệu.
Cám ơn Thầy.
À, đây là code e tìm và xoá dòng nhưng không thực hiện được, thầy xem e còn thiếu hay sai giải pháp thực hiện dùm e luôn nghen.
+ Kiểm tra khi nhập:
. Nếu khi nhập vào cot7/cot10/cot13 giá trị là 1 thì cot15 có giá trị là K
. Giá trị nhập vào từ cot4 đến cot13 chỉ được phép nhập là 1
+ Kiểm tra khi in: Nếu cot2 có giá trị (khác rỗng chẳng hạn) và 1 trong các cot4 đến cot13 không có giá trị là 1 thì báo lỗi

With ActiveSheet
For i = 12 To 51
If Len(Cells(i, 2).Value) <> 6 Then
rws1 = Cells(i, 2).Row
Rows("rws1:rws1").Select
Selection.Delete Shift:=xlUp
End If
Next i
End With
 
Upvote 0
Dạ e muốn thực hiện:
+ Kiểm tra khi nhập:
. Nếu khi nhập vào cot7/cot10/cot13 giá trị là 1 thì gán cot15 có giá trị là K
Cột 15 trong file của bạn đâu phải chỉ có giá trị K... Còn các giá trị G, T thì sẽ theo điều kiện gì đây?
Ngoài ra bạn có nói rằng:
+ Kiểm tra thông tin từ B12 đến B51 nếu dòng nào không có dữ liệu sẽ xoá cả dòng. Có thể dòng dữ liệu trống này nằm giữa các dòng có dữ liệu.
Vậy thì bạn phải đưa file cho tổng quát chứ! File của bạn post lên chẳng có tí dữ liệu nào trong cột B cả
Nói tóm lại: Bạn thắc mắc không rõ ràng chỉ tốn thời gian của bạn và mọi người thôi (post bài đã lâu mà chẳng ai giúp vì có hiểu gì đâu mà giúp)
 
Lần chỉnh sửa cuối:
Upvote 0
Mình vừa viết xong sự kiện trong VBA bạn xem thế nào có gì cần bổ xung thì bảo nhé (do dữ liệu bạn đưa ra mình chưa rõ lắm)
P/S: Mình không phải là thầy đâu và mình ko phải con trai!!!!!!!!!!!!!!!!!!-=.,,
 

File đính kèm

Upvote 0
Thầy ndu96081631 à!
Điều kiện kiểm tra khi nhập của e chi ràng buột các cột 7/10/13 nếu có giá trị 1thì cột 15 sẽ tự động nhập giá trị "K/k". Còn các cột khác mới co các giá trị "TGtg".
Riêng cột B e còn để trống trong file up vì lúc đó e chưa nghĩ đến nên e giả sử dữ liệu của e có độ dài là 6 thôi ạ
Làm phiền thầy chút nữa
Cám ơn thầy.
 
Upvote 0
Cám ơn bạn phan ngoc lan để mình thử nhé (nhìn tên là biết giới tính rồi mà. Nhưng chưa chắc, có lẻ là bí danh thì sao ha.)


Mới xem
Chỗ này trong hàm có lẻ theo mình là Len(.Cells(i, 2).Value) <> 0 (không phải "") phải không bạn?
 
Lần chỉnh sửa cuối:
Upvote 0
Thầy ndu96081631 à!
Điều kiện kiểm tra khi nhập của e chi ràng buột các cột 7/10/13 nếu có giá trị 1thì cột 15 sẽ tự động nhập giá trị "K/k". Còn các cột khác mới co các giá trị "TGtg".
Riêng cột B e còn để trống trong file up vì lúc đó e chưa nghĩ đến nên e giả sử dữ liệu của e có độ dài là 6 thôi ạ
Làm phiền thầy chút nữa
Cám ơn thầy.

Định không giúp bạn nữa vì bạn chỉ nhờ thầy ndu96081631 thôi mà. Nhưng thấy bạn cũng đam mê Excel đấy nhỉ?
Giời bạn có thể nói rõ cho mình biết File này bạn viết phục vụ vào mục đích gì không? Nếu có mục đích thì bạn cần chỉ rõ:
từ cột 4 tới cột 13 trong các cột đó liệu có thể đánh hết dữ liệu của toàn cột là số 1 không
có phải cố định chính xác từ B12 đến B51 hay chỉ dựa vào bảng mình nhập thôi?
 
Upvote 0
Web KT

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

Back
Top Bottom