Nhảy đến dòng có cell có giá trị = giá trị tìm kiếm

Liên hệ QC

manhhung12

Thành viên thường trực
Tham gia
20/3/08
Bài viết
232
Được thích
88
Chào các bạn
Tôi có 1 bảng tính rất lứn cõ 400trang. khi tôi cần edit số liêu hay nhập liệu trên 1 dòng nào đố thì tôi muốn:
1) co 1 ô nhập giá trị tìm kiếm (giả sử đó là mã khách).
2) sau khi nhập xong mã khách thì nó tìm và so khớp với dl trên bảng, nếu tìm thấy thì con trỏ nhảy về dòng hay ô vừa tìm thấy.
các bạn giúp đỡ với.

cảm ơn nhiều
 
Bạn dùng ngay chức năng Find của Excel mà tìm chứ cần gì phải đi đâu cho mất công. Đặt ô sáng của con trỏ vào cột cần Find(Ví dụ cột A là cột ghi mã KH), vào menu Edit/Find, nhập giá trị dò tìm vào Find what rồi nhấn Find All hoặc Find Next tùy bạn, Excel sẽ tìm giùm bạn. Hãy thử nhé
Thân
 
Upvote 0
PHP:
Option Explicit

Sub FindID()
 Dim Rng As Range, MaKH As String
 
 MaKH = Range("B1")
 With Worksheets(1).Range("a1:a" & Range("A65432").End(xlUp).Row)
    Set Rng = .Find(MaKH, LookIn:=xlValues)
    If Not Rng Is Nothing Then Rng.Activate
 End With

End Sub
sao tôi kg tìm thấy worksheet_change, add vào như thế nào bạn? Hướng dẫn cho tôi với.
Hãy xem trong file mình đính kèm.
Quynh3.jpg
 

File đính kèm

  • SaDQ.rar
    31.1 KB · Đọc: 329
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Yêu cầu này có thể làm bằng chức năng Hyperlink.. quá ư đơn giản.. chỉ cần 1 name động thay đổi thay giá trị nhập... Vụ này tôi đã làm mấy lần trên GPE rồi... Chẳng những tìm mà còn cho phép edit giá trị mới luôn!
ANH TUẤN
 
Upvote 0
Cảm ơn Anh Tuan. Bạn có thể chỉ cho cách tạo và chạy 1 macro với. Tạo button và Gán mâcro co 1 button như thế nào
 
Upvote 0
Nội dung anh SA_DQ làm cũng rất hay nhưng khi gõ mã nhần hoặc không có mã cũng không được thông báo "bạn gõ sai" hay "không có mã này" ...
 
Upvote 0
Cảm ơn Anh Tuan. Bạn có thể chỉ cho cách tạo và chạy 1 macro với. Tạo button và Gán mâcro co 1 button như thế nào
Thì bạn cứ vẽ ra 1 nút nhấn nào đó bằng công cụ Drawing chẳng hạn, tiếp theo Click phải chuột vào nó và..Assign Macro, chọn tên macro rồi OK là xong... Từ đây khi bấm vào Button thì macro ấy sẽ chạy! Thế thôi!
ANH TUẤN
 
Upvote 0
NhẢy ĐẾn VỊ TrÍ NÀo ĐÓ Theo GiÁ TrỊ Ô

TÔi ĐÃ LÀm 1 File Theo CÁch Anh Sa VÀ Theo Worksheet_change Cho BẠn RỒi ĐÓ
CÁch Anh Sa ThÌ BẠn ĐiỀn Gia TrỊ CẦn TÌm Ở Ô C1 VÀ ChẠy Macro
CÁch Worksheet_change BẠn ĐiỀn Gia TrỊ CẦn TÌm VÀo Ô D1 VÀ Enter
 

File đính kèm

  • TRA SIZE.rar
    47.7 KB · Đọc: 227
Upvote 0
TÔi ĐÃ LÀm 1 File Theo CÁch Anh Sa VÀ Theo Worksheet_change Cho BẠn RỒi ĐÓ
CÁch Anh Sa ThÌ BẠn ĐiỀn Gia TrỊ CẦn TÌm Ở Ô C1 VÀ ChẠy Macro
CÁch Worksheet_change BẠn ĐiỀn Gia TrỊ CẦn TÌm VÀo Ô D1 VÀ Enter

Cảm ơn Anh Tuấn. Nhwng tôi cũng chwa hiểu theo cách worksheet_chage thì là 1 hàm twj tao phải không? sau khi viết code roòi thì gán cho 1 ô nào đó trên bảng tính (/hoặc gán cho 1 nút/1 hình vẽ) nhw thế nào vậy bạn?

Tiên đay tôi muốn hỏi:
Tôi có bảng tính có 4 cột( sott/ten_ho, chung_minh_thu, dia_chi) và khoảng 5000 dòng. Bây giờ toi muốn in phong bi để gửi thông báo đến cho các khách có tên trên bảng này (bấm 1 nút in là tự động in đén khi nào hết danh sách). form in sẽ là:
dong1: To: <Tên khách(chữ đâm)> ->dữ liệu lấy từ cột [ten_ho]
dòng 2:add: <địa chỉ khách(chữ thường)> -> dữ liệu lấy từ cột [dia_chi]
Bạn có thể hướng dẫn cho tôi cách tạo hàm xuất dữ liệu ra trang in và gán công việc in cho 1 nút nào đó

Cảm ơn vì sự giúp đỡ.
 
Upvote 0
Cảm ơn Anh Tuấn.
Tiên đay tôi muốn hỏi: Tôi có bảng tính có 4 cột( sott/ten_ho, chung_minh_thu, dia_chi) và khoảng 5000 dòng. Bây giờ toi muốn in phong bi để gửi thông báo đến cho các khách có tên trên bảng này (bấm 1 nút in là tự động in đén khi nào hết danh sách). form in sẽ là:
dong1: To: <Tên khách(chữ đâm)> ->dữ liệu lấy từ cột [ten_ho]
dòng 2:add: <địa chỉ khách(chữ thường)> -> dữ liệu lấy từ cột [dia_chi]
Bạn có thể hướng dẫn cho tôi cách tạo hàm xuất dữ liệu ra trang in và gán công việc in cho 1 nút nào đó Cảm ơn vì sự giúp đỡ.
Bạn cố tìm kiếm thêm chút nữa, nha. Nhiều vấn đề bạn đề cập đến đã có nhiều trên diễn đàn; VD vấn đề này nói tại đây:
Mình thiết nghĩ bạn biết rành VB6 thì những cái này có là gì đâu;
Hay học VB6 là môn chuẩn phải qua & trả hết lại cho thầy rồi! (Vui với mình tẹo nha & đừng zận!)
Mình hay vận dụng tối đa nguyên lý tương tự để tìm ra cái mình cần; Chẳng hạn vấn đề này sẽ giống với in thể kho; In phiếu lương; gởi giấy mời cho khách hàng, . . .
Vấn đề này trong word, excel,. . . đều được mà bạn.!
 
Upvote 0
Bạn cố tìm kiếm thêm chút nữa, nha. Nhiều vấn đề bạn đề cập đến đã có nhiều trên diễn đàn; VD vấn đề này nói tại đây:
Mình thiết nghĩ bạn biết rành VB6 thì những cái này có là gì đâu;
Hay học VB6 là môn chuẩn phải qua & trả hết lại cho thầy rồi! (Vui với mình tẹo nha & đừng zận!)
Mình hay vận dụng tối đa nguyên lý tương tự để tìm ra cái mình cần; Chẳng hạn vấn đề này sẽ giống với in thể kho; In phiếu lương; gởi giấy mời cho khách hàng, . . .
Vấn đề này trong word, excel,. . . đều được mà bạn.!
Cảm ơn Anh_Tuấn và Sa_dq nhiều. Quả thực tôi trước đây co vọc vạch VB6 nhưng chỉ là tay ngang(bắt chước) nên có biết đôi chút nhưng do lâu quá kg đụng đến nó vả lai công việc bắt tôi phải làm nhanh kg có thời gian nghiên cứu(vì tôi cũng thuộc dạng chậm hiểu nên cứ làm phiền các ban, được cái kg sợ dốt cứ bí là hỏi) nên đành phải hỏi (tận dung tài nguyên HI Hi). Được các bạn giúp tôi cảm ơn rất nhiều. Hy vọng sau này tôi sẽ có tg nghiên cứu và trao đổi với các bạn trên diễn đàn để mở mang kt



Trong sheet1 tôi view code và đưa đoạn mã này(tôi đã sửa 1 vài chỗ: E1 thay vì D1/óffett(0,5).value thay vì óffett(0,1).value; vì tôi tìm dât trong cột E

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim DONG As Variant
If Not Intersect(Target, Range("E1")) Is Nothing Then
DONG = Target.Offset(0, 5).Value
Cells(DONG, 1).Select
Else
End If
End Sub
Thế nhưng sub này vẫn kg active , nghĩa là nó kg làm gì cả. Hu Hu
Các bạn giúp đỡ thêm
 
Upvote 0
Mít ướt quá đi mất, mới tẹo vậy mà đã khóc!

Trong sheet1 tôi view code và đưa đoạn mã này(tôi đã sửa 1 vài chỗ: E1 thay vì D1/óffett(0,5).value thay vì óffett(0,1).value; vì tôi tìm dât trong cột E . . . .
Thế nhưng sub này vẫn kg active , nghĩa là nó kg làm gì cả. Hu Hu
Chỉ & chỉ khi bạn đụng vô 'E1" thì Code nó mới có năng lượng để chạy đó nha!
Ngược lại, sẽ coi bạn chả là cái đinh gì đâu!

Nếu bạn muốn Code tác dụng khi đụng vô cột 'E' thì phải viết lại cái chổ phương thức Intersect tẹo nữa mới xong!
Ví dụ: Tôi muốn khi 1 ai đó đụng vô bất kỳ ô nào từ E1-E99 thì sửa lại như sau:
Mã:
 If Not Intersect(Target, Range("E1:E99")) Is Nothing Then
( Có thể bạn xem thêm phần Intersect chổ chữ ký của mình lúc rỗi, nha!)​
 
Upvote 0
Đây là một ví dụ về in liên tục

Cảm ơn Anh Tuấn. Nhwng tôi cũng chwa hiểu theo cách worksheet_chage thì là 1 hàm twj tao phải không? sau khi viết code roòi thì gán cho 1 ô nào đó trên bảng tính (/hoặc gán cho 1 nút/1 hình vẽ) nhw thế nào vậy bạn?

Tiên đay tôi muốn hỏi:
Tôi có bảng tính có 4 cột( sott/ten_ho, chung_minh_thu, dia_chi) và khoảng 5000 dòng. Bây giờ toi muốn in phong bi để gửi thông báo đến cho các khách có tên trên bảng này (bấm 1 nút in là tự động in đén khi nào hết danh sách). form in sẽ là:
dong1: To: <Tên khách(chữ đâm)> ->dữ liệu lấy từ cột [ten_ho]
dòng 2:add: <địa chỉ khách(chữ thường)> -> dữ liệu lấy từ cột [dia_chi]
Bạn có thể hướng dẫn cho tôi cách tạo hàm xuất dữ liệu ra trang in và gán công việc in cho 1 nút nào đó

Cảm ơn vì sự giúp đỡ.

Đây là một ví dụ về in liên tục. Các bạn gõ vào muốn in từ khách hàng nào đến khách hàng nào (theo số thứ tự) và ấn thực hiện, việc còn lại là ngồi nhìn excel và máy in nó làm việc, haha...

Các bạn xem file đính kèm, password là: lilalilac
 

File đính kèm

  • ThongbaoSanPhamMoi20080320.rar
    129.2 KB · Đọc: 94
Upvote 0
Chỉ & chỉ khi bạn đụng vô 'E1" thì Code nó mới có năng lượng để chạy đó nha!
Ngược lại, sẽ coi bạn chả là cái đinh gì đâu!

Nếu bạn muốn Code tác dụng khi đụng vô cột 'E' thì phải viết lại cái chổ phương thức Intersect tẹo nữa mới xong!
Ví dụ: Tôi muốn khi 1 ai đó đụng vô bất kỳ ô nào từ E1-E99 thì sửa lại như sau:
Mã:
 If Not Intersect(Target, Range("E1:E99")) Is Nothing Then
( Có thể bạn xem thêm phần Intersect chổ chữ ký của mình lúc rỗi, nha!)​

Ý nghĩa của sự kiện này là khi co 1 thay đổi trên cell nào đó (trong bài là ô e1) thì sự kiện được kích hoạt phải không bạn? Mục đích của tôi là tại ô e1 hay bất kỳ ô nào tôi thích tôi nhập 1 giá trị vào thì con trỏ nhảy đến ô có giá trị bằng giá trị tôi vừa nhập (tìm kiếm) trong bảng của tôi là tìm kiếm giá trị trên cột e1 so với giá trị tôi vừa nhâp. AnhTuan đã viết code worksheet_change và tôi thấy rất hay. Tôi cũng copy code đó vào bảng của tôi nhưng nó kg chạy nên khóc ngay. còn bạn cũng viết code cho 1 macro cũng thể hiện công việc như vậy nhưng để chay macro thì phải bấm run trong menu tool->macro->run
Tôi đã "rờ" tới ô E nhưng nó im như thóc nghĩa là "năng lượng" nó kg có hay truyền xuống chân rồi đấy nhỉ, tôi kg bít màn răng được đành kêu ầm lên.

Cảm ơn bạn nhiều, cố giúp cho lão dốt ma ham học này nhé
 
Upvote 0
Có khi nào liên quan đến việc Set chế độ Security ko?
Bạn nên nhớ macro chỉ có thể hoạt động nếu Excel cho phép... Vậy bạn kiểm tra lại:
1> Vào menu Tools\Macro\Security... chọn mục Medium
2> Đóng file và mở lại lần nữa, chọn vào Enable macro
ANH TUẤN
 
Upvote 0
Có khi nào liên quan đến việc Set chế độ Security ko?
Bạn nên nhớ macro chỉ có thể hoạt động nếu Excel cho phép... Vậy bạn kiểm tra lại:
1> Vào menu Tools\Macro\Security... chọn mục Medium
2> Đóng file và mở lại lần nữa, chọn vào Enable macro
ANH TUẤN
Không bạn à. Tôi đẻ sercurity ở Low và trusted publisher tôi chon cả 2

toi gui file timkiem
 

File đính kèm

  • Timkiem.xls
    18.5 KB · Đọc: 56
Upvote 0
. . . Tôi đã "rờ" tới ô E nhưng nó im như thóc nghĩa là "năng lượng" nó kg có hay truyền xuống chân rồi đấy nhỉ, tôi kg bít màn răng được đành kêu ầm lên.
Cảm ơn bạn nhiều, cố giúp cho lão dốt ma ham học này nhé
Bạn chưa thấy cái này ở bài #7 rồi,?!
PHP:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Rng As Range, MaKH As String
2 If Not Intersect(Target, Range("B1")) Is Nothing Then
    MaKH = Target
4    With Worksheets(1).Range("a1:a" & Range("A65432").End(xlUp).Row)
        Set Rng = .Find(MaKH, LookIn:=xlValues)
6        If Not Rng Is Nothing Then Rng.Activate
    End With
 End If
End Sub
Muốn thấy được nó, ta phải chuột vô ngăn, mà người ta thường gọi là SheetsName & chọn dòng cuối cùng trong menu mới xuất hiện;

Mình sẽ dịch đoạn mã này; Bạn xem có giúp gì được cho bạn (?), theo nguyên lý tương tự, tự sửa lại theo í của bạn, nha:
Dòng 1 là khai báo, tôi sẽ dùng (của anh) hai biến; Riêng biến Rng có kiểu Range.
2: Nếu tôi đụng vô 'B1' thì làm giúp tôi những thứ này:
3 Gán vô biến dữ liệu của ô ('B1') (Mình hay có tật đọc dòng lệnh theo kiểu người Tàu.)
4 Với vùng chứa dữ liệu của cột 'A'
5 Tìm trong nó giá trị trong biến chuỗi; ô tìm thấy gán vô biến thứ hai;
6 Nếu tồn tại ô như vậy thì chọn nó;
7 Kết thúc (tìm)
 
Upvote 0
Bạn chưa thấy cái này ở bài #7 rồi,?!
PHP:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Rng As Range, MaKH As String
2 If Not Intersect(Target, Range("B1")) Is Nothing Then
    MaKH = Target
4    With Worksheets(1).Range("a1:a" & Range("A65432").End(xlUp).Row)
        Set Rng = .Find(MaKH, LookIn:=xlValues)
6        If Not Rng Is Nothing Then Rng.Activate
    End With
 End If
End Sub
Muốn thấy được nó, ta phải chuột vô ngăn, mà người ta thường gọi là SheetsName & chọn dòng cuối cùng trong menu mới xuất hiện;

Mình sẽ dịch đoạn mã này; Bạn xem có giúp gì được cho bạn (?), theo nguyên lý tương tự, tự sửa lại theo í của bạn, nha:
Dòng 1 là khai báo, tôi sẽ dùng (của anh) hai biến; Riêng biến Rng có kiểu Range.
2: Nếu tôi đụng vô 'B1' thì làm giúp tôi những thứ này:
3 Gán vô biến dữ liệu của ô ('B1') (Mình hay có tật đọc dòng lệnh theo kiểu người Tàu.)
4 Với vùng chứa dữ liệu của cột 'A'
5 Tìm trong nó giá trị trong biến chuỗi; ô tìm thấy gán vô biến thứ hai;
6 Nếu tồn tại ô như vậy thì chọn nó;
7 Kết thúc (tìm)
Mình tháy rồi chủ nhưng mình nói là mình sử dung đoan lênh của ÂnhTuân trong bài mà AnhTuan dùng cả 2 cách của Anh Tuân và cách của bạn (1 dùng macro của bạn/2- dùng sub worksheet_change)
Nhưng tôi đã làm được rồi các bạn à. Nhưng thật trớ trêu cho tôi là do data trong cột tôi tìm kiếm kg hiểu do trong quá trình copy bi lỗi gì mà ở ngay góc trên trái mỗi ô có 1 lá cờ màu xanh(dấu hiệu báo lỗi data) và vì vậy nó kg tìm kiếm được.
Có vậy tôi mới sáng mắt ra/ bây giò tìm cách khắc phục data như thế nào đay.
Cảm ơn các bạn nhiều.
 
Upvote 0
Hôm qua ở nhà tôi làm được mà sao hôm nay lên cơ quan lai bi báo lỗi các bạn à.
object dosn't subport property or.. ->rng.active
debug thì thấy: (xlValue=-4163)
Các bạn giúp vói nhé

sAO KG CÓ AI GIÚP ĐỠ CẢ NHỈ? HÀM CHẠY BÁO LỖI CÁC BẠN GIÚP VỚI.

cẢM ƠN NHIỀU
 
Upvote 0
Web KT
Back
Top Bottom