Tìm kiếm dữ liệu ở 2 Sheet khác nhau

Liên hệ QC

giang127

Thành viên hoạt động
Tham gia
24/12/07
Bài viết
138
Được thích
8
Em xin chào các bác ! %#^#$

Em có 1 File gồm 2 Sheet là: "Ton kho" và "Nhat xuat".

Trong 2 sheet này đều có các sách nhập vào đầu năm và nhập xuất trong năm.

Đây là file ví dụ nên chỉ có ít như vậy nhưng thực tế thì đến cả 1000 đầu sách, nhiều tên sách khác nhau đúng mỗi 1 cái gạch ngang "-".

Do đó việc tìm kiếm trở nên khó khăn khi cả 2 Sheet đều có tên sách. Và mình không biết là sách mới nhập có trùng với sách đã nhập không.

Vì bọn nhập sách ở 1 phòng, em là kế toán kiểm kê lại ở 1 phòng khác.
:=\+

Em rất mong các bác giúp em: Làm 1 form tìm kiếm có chức năng giống như trong file em đính kèm. Cách tìm kiếm là tìm những từ riêng rẽ trong 1 ô. Em đau đầu quá nghĩ mãi mà không biết làm cách nào.

Như trong file: Tìm từ "Phiêu lưu" thì đáp án đúng là sách "Cuộc phiêu lưu của bánh kếp" và "Dòng đời phiêu linh lưu ký" cũng hiện ra ..v..v... !$@!!
 

File đính kèm

Bạn thử với file này xem sao

PHP:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [c1]) Is Nothing Then
   Dim Sh As Worksheet, Rng As Range, sRng As Range
   Const KT As String = " ":           Dim eRw As Long
   Dim Cau As String, Tu As String, ShN As String, MyAdd As String
   Dim VTr As Byte, Jj As Byte, DgT As Byte, DgN As Byte
   
   [B4].Resize(20, 5).Clear:           [i4].Resize(20, 5).ClearContents
   Cau = Trim([c1].Value) & KT
   For Jj = 1 To 2
      ShN = Choose(Jj, "Ton Kho", "Nhap Xuat")
      Set Sh = Sheets(ShN):            eRw = Sh.[B65500].End(xlUp).Row
      If Jj = 1 Then ReDim ton(1 To eRw) As Boolean
      If Jj = 2 Then ReDim NhXt(1 To 2 * eRw) As Boolean
   Next Jj
   Do
      VTr = InStr(Cau, KT)
      If VTr < 2 Then Exit Do
      Tu = Left(Cau, VTr - 1):         Cau = Mid(Cau, VTr + 1, Len(Cau))
      For Jj = 1 To 2
         ShN = Choose(Jj, "Ton Kho", "Nhap Xuat")
         Set Sh = Sheets(ShN)
         Set Rng = Sh.Range(Sh.[B1], Sh.[B65500].End(xlUp))
         Set sRng = Rng.Find(Tu, , xlFormulas, xlPart, MatchCase:=False)
         If Not sRng Is Nothing Then
            MyAdd = sRng.Address
            Do
               If (Jj = 1 And ton(sRng.Row) = False) Or (Jj = 2 And NhXt(sRng.Row) = False) Then
                  With Cells(65500, IIf(Jj = 1, 2, 9)).End(xlUp).Offset(1)
                     If Jj = 1 Then ton(sRng.Row) = True Else NhXt(sRng.Row) = True
                     .Value = sRng.Value
                     .Offset(, 1).Resize(, 4).Value = sRng.Offset(, 2).Resize(, 4).Value
                  End With
               End If
               Set sRng = Rng.FindNext(sRng)
            Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
         End If
      Next Jj
   Loop
 End If
End Sub
 

File đính kèm

Upvote 0
Em xin chào các bác ! %#^#$

Em có 1 File gồm 2 Sheet là: "Ton kho" và "Nhat xuat".

Trong 2 sheet này đều có các sách nhập vào đầu năm và nhập xuất trong năm.

Đây là file ví dụ nên chỉ có ít như vậy nhưng thực tế thì đến cả 1000 đầu sách, nhiều tên sách khác nhau đúng mỗi 1 cái gạch ngang "-".

Do đó việc tìm kiếm trở nên khó khăn khi cả 2 Sheet đều có tên sách. Và mình không biết là sách mới nhập có trùng với sách đã nhập không.

Vì bọn nhập sách ở 1 phòng, em là kế toán kiểm kê lại ở 1 phòng khác.
:=\+

Em rất mong các bác giúp em: Làm 1 form tìm kiếm có chức năng giống như trong file em đính kèm. Cách tìm kiếm là tìm những từ riêng rẽ trong 1 ô. Em đau đầu quá nghĩ mãi mà không biết làm cách nào.

Như trong file: Tìm từ "Phiêu lưu" thì đáp án đúng là sách "Cuộc phiêu lưu của bánh kếp" và "Dòng đời phiêu linh lưu ký" cũng hiện ra ..v..v... !$@!!
Thích Form thì có Form, giống vầy được chứ

untitled.JPG
------------------------------
Xin lỗi, hồi này code bị sai 1 đoạn:
Mã:
Me.txtNX_Gia = [COLOR=red]fRng1[/COLOR](i, 1)
Me.txtNX_Nhap = [COLOR=red]fRng1[/COLOR](i, 2)
Me.txtNX_Xuat = [COLOR=red]fRng1[/COLOR](i, 3)
Lý ra nó phải là:
Mã:
Me.txtNX_Gia =[COLOR=red] fRng2[/COLOR](i, 1)
Me.txtNX_Nhap =[COLOR=red] fRng2[/COLOR](i, 2)
Me.txtNX_Xuat =[COLOR=red] fRng2[/COLOR](i, 3)
Vừa sửa lại xong!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bạn giúp luôn muốn kích 1 cuốn(1 dòng) để lấy kết quả , thì thế nào . Cảm ơn
Cụ thể là thế nào?
Trong file của tôi, khi bạn kích vào 1 dòng nào đó trong listbox thì kết quả sẽ hiện ra tại các textbox tương ứng đấy nhé
 
Upvote 0
Nâng cấp thêm

Cụ thể là thế nào?
Trong file của tôi, khi bạn kích vào 1 dòng nào đó trong listbox thì kết quả sẽ hiện ra tại các textbox tương ứng đấy nhé

Bác ơi, nếu cho thêm mục "Thêm", "Sửa", "Xóa" vào 2 Sheetvào file trên giống như file đính kèm thì có được không ah ?
Phần "Nhap Xuat" em còn thiếu 1 cột "Tồn thực tế" nữa.

Xin lỗi đã phiền cao nhân ! -\\/.-\\/.-\\/.
 

File đính kèm

Upvote 0
Bác ơi, nếu cho thêm mục "Thêm", "Sửa", "Xóa" vào 2 Sheetvào file trên giống như file đính kèm thì có được không ah ?
Phần "Nhap Xuat" em còn thiếu 1 cột "Tồn thực tế" nữa.

Xin lỗi đã phiền cao nhân ! -\\/.-\\/.-\\/.
-Không biết đúng ý bạn chưa.
-Mình thấy file này rất hay,có thể chỉnh thêm cho dễ nhìn hơn.Như phần sửa bạn nên để 1 bên là số liệu cũ,1 bên là số liệu sẽ sửa.Nó sẽ giúp nhìn rõ hơn khi sửa.
-Ăn cơm đã,đói thì không nghĩ được --=0--=0--=0--=0
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
-Không biết đúng ý bạn chưa.
-Mình thấy file này rất hay,có thể chỉnh thêm cho dễ nhìn hơn.Như phần sửa bạn nên để 1 bên là số liệu cũ,1 bên là số liệu sẽ sửa.Nó sẽ giúp nhìn rõ hơn khi sửa.
-Ăn cơm đã,đói thì không nghĩ được --=0--=0--=0--=0

Cám ơn bác Keen, đúng là nhiều ý tưởng thì sẽ hoàn thiện hơn.

Em có góp ý là:

Lúc mà "Sửa" ấy ạ. Nếu để trống và ấn Sửa thì sẽ bị lỗi "# VALUE!" ở cột "Tồn cuối kỳ", theo em trường hợp này nên nhận các ký tự rỗng = "0". Và khi nhập giá, nhập, xuất thì buộc phải yêu cầu bằng chữ số nữa.

P/S: File này bác làm thêm nút "Xóa" nữa đi bác. Khi ấn chọn vào Tên sách, ấn xóa thì sẽ yêu cầu xác nhận "Có xóa sách ABC này không?". %#^#$%#^#$%#^#$

Cảm ơn bác nhìu. Chúc bác ngon miệng /-*+/
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn bác Keen, đúng là nhiều ý tưởng thì sẽ hoàn thiện hơn.

Em có góp ý là:

Lúc mà "Sửa" ấy ạ. Nếu để trống và ấn Sửa thì sẽ bị lỗi "# VALUE!" ở cột "Tồn cuối kỳ", theo em trường hợp này nên nhận các ký tự rỗng = "0". Và khi nhập giá, nhập, xuất thì buộc phải yêu cầu bằng chữ số nữa.

P/S: File này bác làm thêm nút "Xóa" nữa đi bác. Khi ấn chọn vào Tên sách, ấn xóa thì sẽ yêu cầu xác nhận "Có xóa sách ABC này không?". %#^#$%#^#$%#^#$

Cảm ơn bác nhìu. Chúc bác ngon miệng /-*+/
-Cái này làm gấp đói mà ,,,,,,,,,,,,,,
-Mà bạn biết viết code không,mình thấy những cái mình làm đều là cơ bản và dễ hiểu mà,cái nào khó bác ndu96081631 làm cho hết rùi mà
Nên xem lại code họ viết,và mày mò tự viết theo thôi.Bạn sẽ thấy niềm vui khi ra được sản phẩm sau những lúc điên đầu:;;;::::;;;:::
vì sao nó lại ra như vậy.Như vậy sẽ học nhanh hơn --=0--=0
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bác nhìu !
Nhưng mừ, bên Sheet "Ton kho" em không thể thêm quá dòng số 4 được. Tại sao vậy ah, bác chỉ e với nha ;;;;;;;;;;;

P/S: Với lại, để viết được code thành thục như bác, bác mất khoảng bao lâu học VBA vậy? Em mún bắt đầu thì học ở Topic nào trong Giaiphapexcel vậy. Thanks bác again ^^
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bác nhìu !
Nhưng mừ, bên Sheet "Ton kho" em không thể thêm quá dòng số 4 được. Tại sao vậy ah, bác chỉ e với nha ;;;;;;;;;;;
-Xin lỗi nhé.Thi thoảng cũng không kiểm tra lại nên nó mới nhầm,up lại đây.Bạn xem còn vấn đề gì nữa cứ nói..Lỗi là chuyện thường ||||||||||

P/S: Với lại, để viết được code thành thục như bác, bác mất khoảng bao lâu học VBA vậy?

-Còn vấn đề này thì mình cũng tự học thôi.Mà đừng nói to,mọi người cười cho đấy.Mấy cái mình viết,sau này khi bạn biết làm sẽ thấy cũng chỉ là amatơ thôi --=0--=0--=0
1.Nên lấy 1 cái bút và 1 quyển vở
2.Ghi lại từng đoạn code,đặc biệt là đoạn chưa hiểu
3.Giờ xem lại từng dòng 1 + 1 chút tiếng anh + 1 chút hiểu biết về excel,bạn sẽ hiểu được đoạn code đó mục đích là gì.
4.Tự mày mò với các file tương tự,đưa ra ý tưởng dựa trên những gì đã biết.
-Ngày trước mình cũng thế,vậy là từ chỗ biết dùng file có Marco,mình đã biết chỉnh sửa nó theo ý mình.Lên cao hơn nữa là dựa vào đó viết được đoạn code dựa trên nền tảng excel+VBA đã học lỏm |||||||||||||||
5.Đưa các file muốn viết code lên diễn đàn,xem họ viết như thế nào,khác gì mình,hơn gì mình.Lại học lỏm tiếp /-*+//-*+/
(@!>><Bài viết chỉ có tính minh họa đúng với keentwo còn bạn thì .....===\.)
 

File đính kèm

Upvote 0
1.Nên lấy 1 cái bút và 1 quyển vở
2.Ghi lại từng đoạn code,đặc biệt là đoạn chưa hiểu
3.Giờ xem lại từng dòng 1 + 1 chút tiếng anh + 1 chút hiểu biết về excel,bạn sẽ hiểu được đoạn code đó mục đích là gì.
4.Tự mày mò với các file tương tự,đưa ra ý tưởng dựa trên những gì đã biết.
-Ngày trước mình cũng thế,vậy là từ chỗ biết dùng file có Marco,mình đã biết chỉnh sửa nó theo ý mình.Lên cao hơn nữa là dựa vào đó viết được đoạn code dựa trên nền tảng excel+VBA đã học lỏm |||||||||||||||
5.Đưa các file muốn viết code lên diễn đàn,xem họ viết như thế nào,khác gì mình,hơn gì mình.Lại học lỏm tiếp /-*+//-*+/

Em thấy chí lý đấy ! Em sẽ thử học theo cách này.

Em thấy oke rùi.
Chỉ có 1 chỗ này cho hợp lý hơn: Nếu khi mình đang chọn 1 dòng bất kỳ. VD dòng "sach hay" và ấn Sửa, thì UserForm mở ra sẽ hiển thị ở chỗ "sach hay" luôn thì sửa code sao ah ^^. Hi !
 
Upvote 0
Để viết được code thành thục như bác, mất khoảng bao lâu học VBA vậy? Em mún bắt đầu thì học ở Topic nào trong Giaiphapexcel

(1) Bạn có thể đến đây, tải file ở bài 2 về mà nghiền ngẫm;
http://www.giaiphapexcel.com/forum/showthread.php?650-Chập-chững-đến-VBA!

(2) Với 1 macro mới với ta, tôi thường dùng hộp thoại MsgBox "" để trao đổi & hỏi thông tin từ macro đó.
Việc này đến giờ tôi vẫn fải áp dụng để biết các biến của mình tại 1 thời điểm nào đó nó mang trị là gì, hay ta đang kích hoạt ô nào trên trang tính,. . . . (& còn rất nhiều vấn đề khác mà tôi fải nhờ đến hộp thoại này hay hàm MsgBox() để điều khiển rẽ nhánh chương trình của mình. . . .)

Thân ái & chúc thắng lợi trên bước đường tự học, chinh fục đĩnh cao VBA!
 
Upvote 0
Bác ơi, nếu cho thêm mục "Thêm", "Sửa", "Xóa" vào 2 Sheetvào file trên giống như file đính kèm thì có được không ah ?
Phần "Nhap Xuat" em còn thiếu 1 cột "Tồn thực tế" nữa.

Xin lỗi đã phiền cao nhân ! -\\/.-\\/.-\\/.
Các bạn khác đã làm giúp bạn rồi, tuy nhiên tôi có ý kiến riêng thế này:
- Theo tôi thì không cần phải thêm 4 form nữa làm gì ---> Sao không THÊM, XÓA, SỬA trực tiếp trên form1 luôn (hoàn toàn khả thi mà)
- Cứ cho rằng sheet TONKHO không bao giờ có tên sách trùng, nhưng còn sheet NHAP XUAT thì sao? Tôi cho rằng việc tìm kiếm theo tên sách e rằng không ổn ---> Bạn có chắc chắn 100% rằng không bao giờ có dầu sách TRÙNG TÊN hay không (ví dụ trường hợp 1 đầu sách nhưng được nhập xuất nhiều lần)
--------------
Vài ý kiến cá nhân, còn ý bạn thì sao?
 
Upvote 0
Các bạn khác đã làm giúp bạn rồi, tuy nhiên tôi có ý kiến riêng thế này:
- Theo tôi thì không cần phải thêm 4 form nữa làm gì ---> Sao không THÊM, XÓA, SỬA trực tiếp trên form1 luôn (hoàn toàn khả thi mà)
- Cứ cho rằng sheet TONKHO không bao giờ có tên sách trùng, nhưng còn sheet NHAP XUAT thì sao? Tôi cho rằng việc tìm kiếm theo tên sách e rằng không ổn ---> Bạn có chắc chắn 100% rằng không bao giờ có dầu sách TRÙNG TÊN hay không (ví dụ trường hợp 1 đầu sách nhưng được nhập xuất nhiều lần)
--------------
Vài ý kiến cá nhân, còn ý bạn thì sao?

Vì thực tế thế này bác ạ:

VD 1 sách có tên là "Hồ Chí Minh - Tác phẩm và lời bình"

Phòng phát hành, nhập sách về ghi là "Hồ Chí Minh - Tp và Lb" và cho vào Sheet "Nhap xuat" gửi lên cho em
Nhưng sách đó đã có trong Sheet "Ton kho" của em với tên là "Hồ Chí Minh - Tác phẩm và lời bình".
Hai quyển này là 1, do đó, em sẽ phải sửa lại cho nó giống tên ở 2 Sheet (thường là cho giống tên ở "Ton kho") sau đó Nhập số liệu phần Nhập - Xuất của sách này vào trong "Ton kho".

Bởi vậy nên, em muốn làm chức năng Tìm kiếm, thêm sửa xóa ở 2 Sheet, sau đó khi nào xong thì dùng hàm Vlookup để nhập tiếp số liệu phần "Nhap xuat" vào Sheet "Ton kho". Để ra được cái "Tồn cuối kỳ" là xong ! ^^
 
Upvote 0
Vì thực tế thế này bác ạ:

VD 1 sách có tên là "Hồ Chí Minh - Tác phẩm và lời bình"

Phòng phát hành, nhập sách về ghi là "Hồ Chí Minh - Tp và Lb" và cho vào Sheet "Nhap xuat" gửi lên cho em
Nhưng sách đó đã có trong Sheet "Ton kho" của em với tên là "Hồ Chí Minh - Tác phẩm và lời bình".
Hai quyển này là 1, do đó, em sẽ phải sửa lại cho nó giống tên ở 2 Sheet (thường là cho giống tên ở "Ton kho") sau đó Nhập số liệu phần Nhập - Xuất của sách này vào trong "Ton kho".

Bởi vậy nên, em muốn làm chức năng Tìm kiếm, thêm sửa xóa ở 2 Sheet, sau đó khi nào xong thì dùng hàm Vlookup để nhập tiếp số liệu phần "Nhap xuat" vào Sheet "Ton kho". Để ra được cái "Tồn cuối kỳ" là xong ! ^^
Đã hiểu rõ ý bạn!
Nhưng nếu là tôi thì tôi chỉ cần 1 Form là đủ ---> Vừa TÌM, XÓA, SỬA, THÊM cũng chỉ 1 form mà thôi
(càng gọn càng dễ quản lý)
 
Upvote 0
Đã hiểu rõ ý bạn!
Nhưng nếu là tôi thì tôi chỉ cần 1 Form là đủ ---> Vừa TÌM, XÓA, SỬA, THÊM cũng chỉ 1 form mà thôi
(càng gọn càng dễ quản lý)

Hi! Bác khiến em nảy ra ý tưởng thêm 1 cái Userform như hình dưới.

example.JPG

Đây giống 1 nút lệnh "Sửa lại tên sách ở phần Nhap Xuat" theo như tên ở Sheet "Ton kho" hoặc là thêm vào "Ton kho" như là 1 Sách mới.

Em vẽ UserForm không được đẹp lắm nên trình bày ở Paint cho dễ nhìn. Mong bác giúp em cái Code của cái nút trên được hok ạ. @$@!^%

À phải rồi, mời các bác trên diễn đàn ăn trưa. Các bác vất vả quá ^^!

37322_dia_chi_an_com_tam_com_ga_pho_ngon_ma_khong_dat_o_tphcm_3.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
-Hahahah.Ngon quá,ước gì là thật (sinh viên chỉ mong vậy***&&%)

Chào Bác Keen, Theo như bác ndu96081631 thì có lẽ ko cần cái UserForm Sửa ở 2 Sheet "Ton kho" và "Nhap xuat", mà sửa lun trên UserForm 1. Khi ấn "Sửa" thì Tên, Giá bìa, Số liệu Nhập, xuất của Sách đang chọn chuyển sang chế độ sửa được. Bác giúp em với ^^!
 
Upvote 0
Web KT

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

Back
Top Bottom