-
10-15-2013, 02:28 AM #1
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Hỏi về tìm kiếm dữ liệu từ nhiều Sheet và hiển thị kết quả trên form
xin các anh chị giúp e với...Em có file như đính kèm gồm các sheet là từng ngày,bây giờ em mún làm 1 cái form có thể nhập mã số của khách hàng rồi nhấn tìm kiếm thì nó sẽ liệt kê ra công việc đã làm của khách hàng trong các ngày ạ...Mong các anh chị giúp em vì em chưa rành về VBA lắm.
View more random threads:
- Làm sao để past link từ word (nhiều trang liên tiếp) qua Excel
- tạo máy tính bằng vba trong excel
- Video hướng dẫn VBA cho người mới bắt đầu
- đặt name range bằng code
- in phiếu thu, chi
- Nhờ Giải thích Code Mở 1 file Excel Trong VBA
- Các cách thêm dòng mới vô 1 CSDL (cơ sở dữ liệu) đã sẵn
- Xóa vùng các dòng một khi 1 ô trong vùng đạt điều kiện (cần xóa)
- Xin mẫu Báo cáo tài chính - Nhật ký chung
- đánh dấu "x" lọc dữ liệu qua một sheet khác
-
10-15-2013, 03:01 AM #2
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Ðề: Hỏi về tìm kiếm dữ liệu từ nhiều Sheet và hiển thị kết quả trên form
Gửi bởi kamala
Để tìm cho đơn giản bạn nên gộp chung vào 1 sheet, đơn giản nhất là dùng Auto Fillter chọn 1 phát là xong, đâu cần suy nghĩ gì nhiều (cái này bác Bill đã có sẳn rồi bạn cứ việc dùng thôi).
Còn việc tìm nhiều sheet thì làm cũng được, nhưng vụ này bác Bill cũng không khoái lắm nên bác cũng đã tạo sẳn công cụ tìm kiếm trên từng sheet.
Theo tôi nên gộp dữ liệu theo dõi ở các ngày vào chung 1 sheet, để tổng hợp thì sử dụng Pivottable là đáp ứng được công việc rồi, muốn hoành tráng thì sử dụng Form và viết Macro để điều khiển, nhưng vụ này thì tôi cũng không khoái lắm vì muốn giúp thì cũng phải tốn rất nhiều công sức và mất thời gian.
-
11-11-2013, 10:03 PM #3
Silver member
- Ngày tham gia
- Apr 2016
- Bài viết
- 271
Ðề: Hỏi về tìm kiếm dữ liệu từ nhiều Sheet và hiển thị kết quả trên form
Được hết . Để suy nghĩ đã .
Ví dụ sơ xài, thử nhé
Module1
Code:
Public Sub FindText()
Dim ws As Worksheet, Found As Range
Dim myText As String, FirstAddress As String
Dim AddressStr As String, foundNum As Integer
myText = InputBox("Enter text to find")
If myText = "" Then Exit Sub
For Each ws In ThisWorkbook.Worksheets
With ws
Set Found = .UsedRange.Find(what:=myText, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
If Not Found Is Nothing Then
FirstAddress = Found.Address
Do
foundNum = foundNum + 1
AddressStr = AddressStr & .Name & " " & Found.Address & vbCrLf
Set Found = .UsedRange.FindNext(Found)
Loop While Not Found Is Nothing And Found.Address <> FirstAddress
End If
myNext:
End With
Next ws
If Len(AddressStr) Then
MsgBox "Found: MSKH """ & myText & """ " & foundNum & " times." & vbCr & AddressStr, vbOKOnly, """ & myText"
Else:
MsgBox "Unable to find " & myText & " in this workbook.", vbExclamation
End If
End Sub
Kết qủa:
Kết qủa: Enter số MSKH
Bây giờ add dòng code nữa dể cho tạo ra 1 trang Result , trong đó list ra hết đã tìm
hoặc là
-
11-12-2013, 12:06 PM #4
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Ðề: Hỏi về tìm kiếm dữ liệu từ nhiều Sheet và hiển thị kết quả trên form
Làm kiểu Form thì từ từ có thời gian rảnh mới viết
-
12-19-2013, 09:56 PM #5
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 5
Ðề: Hỏi về tìm kiếm dữ liệu từ nhiều Sheet và hiển thị kết quả trên form
Gửi bởi Wind_Flower
-
12-20-2013, 02:01 PM #6
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Hỏi về tìm kiếm dữ liệu từ nhiều Sheet và hiển thị kết quả trên form
Gửi bởi thecuong0
Viết vậy theo cố excel 2003 . Viết 2010 & 2013 thì nhỏ gọn, dùng loop search khác
-
12-20-2013, 08:20 PM #7
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Hỏi về tìm kiếm dữ liệu từ nhiều Sheet và hiển thị kết quả trên form
Kiểu này ko dùng FORM, chỉ tạo thêm 1 Sheet Result rồi run macro FindPatient
Header trong Sheet Result nằm ở row 3, y như 13 sheets data, do đó khi tìm được thì nó sẻ điền từ row 4 trở xuống . Code này tôi viết cho BOM (Excel 2003)
Phần popup address chỉ là phụ, vì tôi dùng để kiểm tra , nên cậu có thể bỏ
Form chỉ màu mè cho con nít . hahahhaa
Public Sub FindPatient()
Dim ws As Worksheet, Found, p As Range
Dim myText As String, FirstAddress As String
Dim AddressStr As String, foundNum As Integer
Sheets("Result").Select
Rows("4:40").Select
Selection.Delete Shift:=xlUp
myText = InputBox("Enter text to find")
If myText = "" Then Exit Sub
For Each ws In ThisWorkbook.Worksheets
With ws
If ws.Name = "Result" Then GoTo myNext
Set Found = .UsedRange.Find(what:=myText, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
If Not Found Is Nothing Then
FirstAddress = Found.Address
Do
foundNum = foundNum + 1
AddressStr = AddressStr & .Name & " " & Found.Address & vbCrLf
Set Found = .UsedRange.FindNext(Found)
Found.EntireRow.Copy Destination:=Worksheets("Result").Range("A65536"). End(xlUp).Offset(1, 0)
Loop While Not Found Is Nothing And Found.Address <> FirstAddress
End If
myNext:
End With
Next ws
If Len(AddressStr) Then
MsgBox "Found: """ & myText & """ " & foundNum & " times." & vbCr & _
AddressStr, vbOKOnly, myText & " found in these cells"
Else:
MsgBox "Unable to find " & myText & " in this workbook.", vbExclamation
End If
End Sub
Chuối chứa nhiều vitamin A, B1, B2, B6, B12, C, D, E và khoáng chất như magie, canxi, kali, sắt, phospho, fluor và iốt. Giá trị dinh dưỡng của chuối khá phong phú. Cứ 100g thịt chuối chứa 1,2g...
Quý ông nhờ ăn nhiều chuối mà khắc phục được xuất tinh sớm