minhchau196
Thành viên mới
- Tham gia
- 27/7/16
- Bài viết
- 42
- Được thích
- 3
a ơi a sửa giúp e cái file này của e được k ạ?Đọc bài này cũng lâu rồi, hôm nay hơi rảnh làm thử cho bạn 1 File nhập liệu nhanh xem có dùng được không?
a ơi a sửa giúp e cái file này của e được k ạ?Đọc bài này cũng lâu rồi, hôm nay hơi rảnh làm thử cho bạn 1 File nhập liệu nhanh xem có dùng được không?
a ơi a sửa giúp e cái file này của e được k ạ?
Gửi Các Anh Em
nhờ mọi người giúp đỡ mình làm cái file tổng hợp theo dõi hóa đơn
mình không phải dân kế toán chuyên nghiệp. hiện tại bên mình đang làm phiếu xuất kho theo kiểu mỗi khách hàng một phiếu xuất kho sau đó tự tổng hợp bằng tay vào bảng tổng hợp. nên rất mất thời gian và dễ sai sot . mình có xem qua file hóa đơn của anh be09 mình rất thích. nhưng áp dụng sang bên mình thì lại không được. và cũng không hiểu vì sao làm được như vậy dù đã mày mò mấy hôm nay.
về cơ bản yêu cầu của mình tương tự như file anh gửi là:
tạo một file phiếu xuất
Có thể chọn hàng hóa , sau đó tự điện giá
lưu fiel phiếu xuất vào file theo dõi phiếu xuất ( tuy nhiên ở đây mình yêu cầu hơi khó hơn đó là khi lưu file phiếu xuất thì các mặt hàng sẽ được thể hiện riêng rẽ như trong file đính kèm để mình dễ theo dõi, phần tiền phải thu sẽ giống như phần tiền phải thu trong phiếu xuất )
vậy rất kính mong ai đó có thể giúp mình ( thực sự cái này trăn trở rất lâu mà không tìm ra giải pháp ) mình cũng sẽ xin cảm ơn và hậu tạ
mình đang rất cần nên bạn nào giúp được xin giúp sớm cho mình
Trước hết các ơn anh về file rất hay này.- Bước 1: Nhấn nút chọn hàng hóa, Form hiện ra chọn loại và nhấn nút lọc, tiếp theo chọn hàng hóa muốn nhập hóa đơn xong nhấn nút Nhập giá.
- Bước 2: In hóa đơn xong nhấn nút Lưu hóa đơn.
Trước hết các ơn anh về file rất hay này.
Anh cho e hỏi cách tạo cái nút: chọn hàng hóa, lưu hóa đơn, xóa hóa đơn kia.
Thank.
Chào anh!- Bước 1: Nhấn nút chọn hàng hóa, Form hiện ra chọn loại và nhấn nút lọc, tiếp theo chọn hàng hóa muốn nhập hóa đơn xong nhấn nút Nhập giá.
- Bước 2: In hóa đơn xong nhấn nút Lưu hóa đơn.
Chào anh!
Em muốn nhờ anh chút:
Em đang lập file quản lý hàng hóa.
Trong file của em, Mỗi mã hàng đều có giá cả số lượng, và nằm ngẫu nhiên ở các kho hàng khác nhau.(Có nhiều kho hàng, trong file e thì B1, B2... là các kho hàng).
Hằng ngày e bán hàng đều phải xuất phieus ở sheet "Hoa don".
Nhu cầu của e như thế này:
1. Có sheet để quản lý được lượng hàng bán ra.
2. Hàng xuất ra ở kho nào thì ở sheet kho đấy phải trừ luôn số lượng hàng hóa.
3. Muốn chuyển hàng từ kho này sang kho kia ( tự động cộng vs trừ ở các kho cho nhau).
4. Hàng nhập về các kho.
5. Quản lý được lượng hàng tồn ở trong các kho.
6. Em muốn tìm kiếm một mã hàng, biết được mã hàng này nằm ở những kho nào? Giá cả và số lượng bao nhiêu?
Bác sửa file giúp em nhé.
Thật cảm ơn bác rất nhiều.
Cho Minh hỏi thêm với. Nếu cột mã hàng và cột tên hàng mình muốn nhập không có trong danh mục thì làm sao vậy (vì mình nhập nó sẽ trả về ô trống)Bác lại làm khó em hoài, thôi thử đại có gì bác góp ý nghe. Chổ màu đỏ là em mới thêm vào.
Mã:Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) On Error Resume Next [COLOR=#ff0000] If KeyCode = 39 Then[/COLOR] [COLOR=#ff0000] ActiveCell.Offset(, 1).Activate[/COLOR] [COLOR=#ff0000] Exit Sub[/COLOR] [COLOR=#ff0000] ElseIf KeyCode = 37 Then[/COLOR] [COLOR=#ff0000] ActiveCell.Offset(, -1).Activate[/COLOR] [COLOR=#ff0000] Exit Sub[/COLOR] [COLOR=#ff0000] End If[/COLOR] Select Case KeyCode Case 9, 16, 17, 37 To 40 Case 13 ActiveCell.Offset(1).Activate Case Else Dim strValue As String strValue = LCase(ComboBox1.Text) ComboBox1.ListRows = 20 If Trim(strValue) > "" Then If IsArray(priArray) Then Dim ArrFilter, GetRow() Dim c As Long, i As Long, n As Long, r As Long For r = 1 To UBound(priArray, 1) If LCase(priArray(r, 1)) Like "*" & strValue & "*" Then n = n + 1 ReDim Preserve GetRow(1 To n) GetRow(n) = r End If Next If n Then Dim u As Byte u = UBound(priArray, 2) ReDim ArrFilter(1 To n, 1 To u) For r = 1 To n For c = 1 To u ArrFilter(r, c) = priArray(GetRow(r), c) Next Next ComboBox1.List = ArrFilter Else ComboBox1.Clear ComboBox1.ListRows = 0 End If ComboBox1.DropDown End If Else If ComboBox1.ListCount <> UBound(priArray) Then ComboBox1.List = priArray ComboBox1.DropDown End If End If End Select End Sub
Ở sheet 2 của file đính kèm khi em kích vào nút drop down list để chọn mã hàng mình cần, có cách nào khi mình kích vào nút xoả xuống nó sẽ hiện hộp thoại để mình gõ vào đó mặt hàng cần tìm cho nhanh hoặc mình chỉ cần gõ P01A- nó sẽ hiện ra những mặt hàng có chữ bắt đầu bằng P01A như trong nút search của filter không? Mọi người giúp em với, em cảm ơn nhiều.
File của anh hpkhuong gần cả năm rồi, không biết có ai ghé qua giải quyết dùm !Hic...hic...mấy huynh chém kinh thế... Hix hông biết tại sao tôi cũng lỗi tương tự...Chắc do nó xung đột gì với hệ thống nên đâm ra "Microsoft Excel has stopped working" đây mà...: Ai biết sữa lỗi thì mách nước giúp đi...
Với sheet2 tại cột B và C, bạn thử chọn 1 ô tại 2 cột đó, từ hàng 3 trở đi sẽ thấy nó.
Gõ từ khóa chúng sẽ hiện ra tương ứng, không nhất thiết phải gõ từ đầu câu, chỉ cần gõ bất kỳ cụm từ nào trong đó và không phân biệt chữ thường hoặc chữ hoa.
Ví dụ: Chuỗi là Hoang Trong Nghia, bạn chỉ cần gõ trong (Trong, TRONG, ...), hoặc gõ oang (OANG, oAng, ...) thì những mục có chứa các từ đó sẽ hiển thị để bạn chọn.
Đây là toàn bộ code của bài này (code trong Module của Sheet2):
Mã:Private priArray Private priColumn As Long Private priIsFocus As Boolean Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count = 1 And Target.Row > 2 Then Dim e As Long Static ArrCode, ArrName If Target.Column = 2 Then If Not IsArray(ArrCode) Then e = Sheet1.Range("B" & Rows.Count).End(xlUp).Row ArrCode = Sheet1.Range("B2:C" & e).Value2 End If priColumn = 1 priArray = ArrCode Call HienComboBox ElseIf Target.Column = 3 Then If Not IsArray(ArrName) Then Dim ArrTmp Dim r As Long, u As Long e = Sheet1.Range("B" & Rows.Count).End(xlUp).Row ArrTmp = Sheet1.Range("B2:B" & e).Value2 ArrName = Sheet1.Range("C2:C" & e).Value2 u = UBound(ArrName) ReDim Preserve ArrName(1 To u, 1 To 2) For r = 1 To u ArrName(r, 2) = ArrTmp(r, 1) Next End If priColumn = -1 priArray = ArrName Call HienComboBox Else Call AnComboBox End If Else Call AnComboBox End If End Sub Private Sub ComboBox1_Change() If priIsFocus Then Exit Sub If ComboBox1.MatchFound Then ActiveCell.Value = ComboBox1.Text ActiveCell.Offset(, priColumn).Value = ComboBox1.Column(1) Else ActiveCell.Value = "" ActiveCell.Offset(, priColumn).Value = "" End If End Sub Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) On Error Resume Next Select Case KeyCode Case 9, 16, 17, 37 To 40 Case 13 ActiveCell.Offset(1).Activate Case Else Dim strValue As String strValue = LCase(ComboBox1.Text) ComboBox1.ListRows = 20 If Trim(strValue) > "" Then If IsArray(priArray) Then Dim ArrFilter, GetRow() Dim c As Long, i As Long, n As Long, r As Long For r = 1 To UBound(priArray, 1) If LCase(priArray(r, 1)) Like "*" & strValue & "*" Then n = n + 1 ReDim Preserve GetRow(1 To n) GetRow(n) = r End If Next If n Then Dim u As Byte u = UBound(priArray, 2) ReDim ArrFilter(1 To n, 1 To u) For r = 1 To n For c = 1 To u ArrFilter(r, c) = priArray(GetRow(r), c) Next Next ComboBox1.List = ArrFilter Else ComboBox1.Clear ComboBox1.ListRows = 0 End If ComboBox1.DropDown End If Else If ComboBox1.ListCount <> UBound(priArray) Then ComboBox1.List = priArray ComboBox1.DropDown End If End If End Select End Sub Private Sub HienComboBox() priIsFocus = True With ComboBox1 .Visible = False .Visible = True .Left = ActiveCell.Left .Top = ActiveCell.Top .Width = ActiveCell.Width .ListWidth = .Width + ActiveCell.Offset(, priColumn).Width .ColumnWidths = .Width - 4 .Height = ActiveCell.Height .List = priArray .Text = "" .Text = ActiveCell.Value .Activate .SelStart = 0 .SelLength = Len(.Text) End With priIsFocus = False End Sub Private Sub AnComboBox() With ComboBox1 If .Visible Then .Visible = False End If End With End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, PicName As String
Application.ScreenUpdating = False
On Error Resume Next
If Not Intersect([B6], Target) Is Nothing Then
Set Rng = Sheet21.Range(Sheet21.[B6], Sheet21.[Z65536].End(xlUp))
PicName = Rng.Resize(, 1).Find(Target, LookAt:=xlWhole).Offset(, 24)
ActiveSheet.Shapes("Pic").Delete
With ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & PicName)
.Name = "Pic"
.Left = [z6:z6].Left: .Top = [z6:z6].Top
.Width = [z6:z6].Width: .Height = [z6:z6].Height
End With
End If
End Sub
Mình thấy rất hay. Làm ơn chỉ mình cách thực hiện để mình ứng dụng với file của mình vớiBài của bạn đây! Đơn giản hơn file kia rất là nhiều.
dạ cho em hỏi anh chút ạ, nếu em muốn hiển thị cả cột Tên Sản Phẩm, Quy Cách, Đơn Giá thì nên sửa code thế nào ạBài của bạn đây! Đơn giản hơn file kia rất là nhiều.
Với sheet2 tại cột B và C, bạn thử chọn 1 ô tại 2 cột đó, từ hàng 3 trở đi sẽ thấy nó.
Gõ từ khóa chúng sẽ hiện ra tương ứng, không nhất thiết phải gõ từ đầu câu, chỉ cần gõ bất kỳ cụm từ nào trong đó và không phân biệt chữ thường hoặc chữ hoa.
Ví dụ: Chuỗi là Hoang Trong Nghia, bạn chỉ cần gõ trong (Trong, TRONG, ...), hoặc gõ oang (OANG, oAng, ...) thì những mục có chứa các từ đó sẽ hiển thị để bạn chọn.
Đây là toàn bộ code của bài này (code trong Module của Sheet2):
Mã:Private priArray Private priColumn As Long Private priIsFocus As Boolean ......................... Chào anh Mấy hôm đang nhờ trợ giúp vấn đề này thì thấy bài anh làm trên diễn đàn. Anh có thể giúp viết lại code để khi chọn cột B trong sheet2 thì nó chỉ hiện ra dữ liệu của cột B trong sheet1, đồng thời cũng không cần lấy dữ liệu của cột C sheet1 cho vào cột C sheet 2 được không? Mình đang cần đúng cái anh làm giúp các bạn để áp dụng vào mấy file của mình Ngoài ra hỏi thêm anh, cái drop down list này có thể lấy dữ liệu từ một file khác mà không phải từ một sheet khác trong cùng một file được không, đang hỏi trong diễn đàn mà chưa thấy anh chị nào hỗ trợ được? Cám ơn anh nhiều.
Em muốn khi tim được dữ liệu phù hợp thì dùng phím TAB để nhập và chuyển sang cột tiếp theo thì làm như thế nào ạ.Với sheet2 tại cột B và C, bạn thử chọn 1 ô tại 2 cột đó, từ hàng 3 trở đi sẽ thấy nó.
Gõ từ khóa chúng sẽ hiện ra tương ứng, không nhất thiết phải gõ từ đầu câu, chỉ cần gõ bất kỳ cụm từ nào trong đó và không phân biệt chữ thường hoặc chữ hoa.
Ví dụ: Chuỗi là Hoang Trong Nghia, bạn chỉ cần gõ trong (Trong, TRONG, ...), hoặc gõ oang (OANG, oAng, ...) thì những mục có chứa các từ đó sẽ hiển thị để bạn chọn.
Đây là toàn bộ code của bài này (code trong Module của Sheet2):
Mã:Private priArray Private priColumn As Long Private priIsFocus As Boolean Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count = 1 And Target.Row > 2 Then Dim e As Long Static ArrCode, ArrName If Target.Column = 2 Then If Not IsArray(ArrCode) Then e = Sheet1.Range("B" & Rows.Count).End(xlUp).Row ArrCode = Sheet1.Range("B2:C" & e).Value2 End If priColumn = 1 priArray = ArrCode Call HienComboBox ElseIf Target.Column = 3 Then If Not IsArray(ArrName) Then Dim ArrTmp Dim r As Long, u As Long e = Sheet1.Range("B" & Rows.Count).End(xlUp).Row ArrTmp = Sheet1.Range("B2:B" & e).Value2 ArrName = Sheet1.Range("C2:C" & e).Value2 u = UBound(ArrName) ReDim Preserve ArrName(1 To u, 1 To 2) For r = 1 To u ArrName(r, 2) = ArrTmp(r, 1) Next End If priColumn = -1 priArray = ArrName Call HienComboBox Else Call AnComboBox End If Else Call AnComboBox End If End Sub Private Sub ComboBox1_Change() If priIsFocus Then Exit Sub If ComboBox1.MatchFound Then ActiveCell.Value = ComboBox1.Text ActiveCell.Offset(, priColumn).Value = ComboBox1.Column(1) Else ActiveCell.Value = "" ActiveCell.Offset(, priColumn).Value = "" End If End Sub Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) On Error Resume Next Select Case KeyCode Case 9, 16, 17, 37 To 40 Case 13 ActiveCell.Offset(1).Activate Case Else Dim strValue As String strValue = LCase(ComboBox1.Text) ComboBox1.ListRows = 20 If Trim(strValue) > "" Then If IsArray(priArray) Then Dim ArrFilter, GetRow() Dim c As Long, i As Long, n As Long, r As Long For r = 1 To UBound(priArray, 1) If LCase(priArray(r, 1)) Like "*" & strValue & "*" Then n = n + 1 ReDim Preserve GetRow(1 To n) GetRow(n) = r End If Next If n Then Dim u As Byte u = UBound(priArray, 2) ReDim ArrFilter(1 To n, 1 To u) For r = 1 To n For c = 1 To u ArrFilter(r, c) = priArray(GetRow(r), c) Next Next ComboBox1.List = ArrFilter Else ComboBox1.Clear ComboBox1.ListRows = 0 End If ComboBox1.DropDown End If Else If ComboBox1.ListCount <> UBound(priArray) Then ComboBox1.List = priArray ComboBox1.DropDown End If End If End Select End Sub Private Sub HienComboBox() priIsFocus = True With ComboBox1 .Visible = False .Visible = True .Left = ActiveCell.Left .Top = ActiveCell.Top .Width = ActiveCell.Width .ListWidth = .Width + ActiveCell.Offset(, priColumn).Width .ColumnWidths = .Width - 4 .Height = ActiveCell.Height .List = priArray .Text = "" .Text = ActiveCell.Value .Activate .SelStart = 0 .SelLength = Len(.Text) End With priIsFocus = False End Sub Private Sub AnComboBox() With ComboBox1 If .Visible Then .Visible = False End If End With End Sub
Với sheet2 tại cột B và C, bạn thử chọn 1 ô tại 2 cột đó, từ hàng 3 trở đi sẽ thấy nó.
Gõ từ khóa chúng sẽ hiện ra tương ứng, không nhất thiết phải gõ từ đầu câu, chỉ cần gõ bất kỳ cụm từ nào trong đó và không phân biệt chữ thường hoặc chữ hoa.
Ví dụ: Chuỗi là Hoang Trong Nghia, bạn chỉ cần gõ trong (Trong, TRONG, ...), hoặc gõ oang (OANG, oAng, ...) thì những mục có chứa các từ đó sẽ hiển thị để bạn chọn.
Đây là toàn bộ code của bài này (code trong Module của Sheet2):
Mã:Private priArray Private priColumn As Long Private priIsFocus As Boolean Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count = 1 And Target.Row > 2 Then Dim e As Long Static ArrCode, ArrName If Target.Column = 2 Then If Not IsArray(ArrCode) Then e = Sheet1.Range("B" & Rows.Count).End(xlUp).Row ArrCode = Sheet1.Range("B2:C" & e).Value2 End If priColumn = 1 priArray = ArrCode Call HienComboBox ElseIf Target.Column = 3 Then If Not IsArray(ArrName) Then Dim ArrTmp Dim r As Long, u As Long e = Sheet1.Range("B" & Rows.Count).End(xlUp).Row ArrTmp = Sheet1.Range("B2:B" & e).Value2 ArrName = Sheet1.Range("C2:C" & e).Value2 u = UBound(ArrName) ReDim Preserve ArrName(1 To u, 1 To 2) For r = 1 To u ArrName(r, 2) = ArrTmp(r, 1) Next End If priColumn = -1 priArray = ArrName Call HienComboBox Else Call AnComboBox End If Else Call AnComboBox End If End Sub Private Sub ComboBox1_Change() If priIsFocus Then Exit Sub If ComboBox1.MatchFound Then ActiveCell.Value = ComboBox1.Text ActiveCell.Offset(, priColumn).Value = ComboBox1.Column(1) Else ActiveCell.Value = "" ActiveCell.Offset(, priColumn).Value = "" End If End Sub Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) On Error Resume Next Select Case KeyCode Case 9, 16, 17, 37 To 40 Case 13 ActiveCell.Offset(1).Activate Case Else Dim strValue As String strValue = LCase(ComboBox1.Text) ComboBox1.ListRows = 20 If Trim(strValue) > "" Then If IsArray(priArray) Then Dim ArrFilter, GetRow() Dim c As Long, i As Long, n As Long, r As Long For r = 1 To UBound(priArray, 1) If LCase(priArray(r, 1)) Like "*" & strValue & "*" Then n = n + 1 ReDim Preserve GetRow(1 To n) GetRow(n) = r End If Next If n Then Dim u As Byte u = UBound(priArray, 2) ReDim ArrFilter(1 To n, 1 To u) For r = 1 To n For c = 1 To u ArrFilter(r, c) = priArray(GetRow(r), c) Next Next ComboBox1.List = ArrFilter Else ComboBox1.Clear ComboBox1.ListRows = 0 End If ComboBox1.DropDown End If Else If ComboBox1.ListCount <> UBound(priArray) Then ComboBox1.List = priArray ComboBox1.DropDown End If End If End Select End Sub Private Sub HienComboBox() priIsFocus = True With ComboBox1 .Visible = False .Visible = True .Left = ActiveCell.Left .Top = ActiveCell.Top .Width = ActiveCell.Width .ListWidth = .Width + ActiveCell.Offset(, priColumn).Width .ColumnWidths = .Width - 4 .Height = ActiveCell.Height .List = priArray .Text = "" .Text = ActiveCell.Value .Activate .SelStart = 0 .SelLength = Len(.Text) End With priIsFocus = False End Sub Private Sub AnComboBox() With ComboBox1 If .Visible Then .Visible = False End If End With End Sub
Với sheet2 tại cột B và C, bạn thử chọn 1 ô tại 2 cột đó, từ hàng 3 trở đi sẽ thấy nó.
Gõ từ khóa chúng sẽ hiện ra tương ứng, không nhất thiết phải gõ từ đầu câu, chỉ cần gõ bất kỳ cụm từ nào trong đó và không phân biệt chữ thường hoặc chữ hoa.
Ví dụ: Chuỗi là Hoang Trong Nghia, bạn chỉ cần gõ trong (Trong, TRONG, ...), hoặc gõ oang (OANG, oAng, ...) thì những mục có chứa các từ đó sẽ hiển thị để bạn chọn.
Đây là toàn bộ code của bài này (code trong Module của Sheet2):
Mã:Private priArray Private priColumn As Long Private priIsFocus As Boolean Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count = 1 And Target.Row > 2 Then Dim e As Long Static ArrCode, ArrName If Target.Column = 2 Then If Not IsArray(ArrCode) Then e = Sheet1.Range("B" & Rows.Count).End(xlUp).Row ArrCode = Sheet1.Range("B2:C" & e).Value2 End If priColumn = 1 priArray = ArrCode Call HienComboBox ElseIf Target.Column = 3 Then If Not IsArray(ArrName) Then Dim ArrTmp Dim r As Long, u As Long e = Sheet1.Range("B" & Rows.Count).End(xlUp).Row ArrTmp = Sheet1.Range("B2:B" & e).Value2 ArrName = Sheet1.Range("C2:C" & e).Value2 u = UBound(ArrName) ReDim Preserve ArrName(1 To u, 1 To 2) For r = 1 To u ArrName(r, 2) = ArrTmp(r, 1) Next End If priColumn = -1 priArray = ArrName Call HienComboBox Else Call AnComboBox End If Else Call AnComboBox End If End Sub Private Sub ComboBox1_Change() If priIsFocus Then Exit Sub If ComboBox1.MatchFound Then ActiveCell.Value = ComboBox1.Text ActiveCell.Offset(, priColumn).Value = ComboBox1.Column(1) Else ActiveCell.Value = "" ActiveCell.Offset(, priColumn).Value = "" End If End Sub Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) On Error Resume Next Select Case KeyCode Case 9, 16, 17, 37 To 40 Case 13 ActiveCell.Offset(1).Activate Case Else Dim strValue As String strValue = LCase(ComboBox1.Text) ComboBox1.ListRows = 20 If Trim(strValue) > "" Then If IsArray(priArray) Then Dim ArrFilter, GetRow() Dim c As Long, i As Long, n As Long, r As Long For r = 1 To UBound(priArray, 1) If LCase(priArray(r, 1)) Like "*" & strValue & "*" Then n = n + 1 ReDim Preserve GetRow(1 To n) GetRow(n) = r End If Next If n Then Dim u As Byte u = UBound(priArray, 2) ReDim ArrFilter(1 To n, 1 To u) For r = 1 To n For c = 1 To u ArrFilter(r, c) = priArray(GetRow(r), c) Next Next ComboBox1.List = ArrFilter Else ComboBox1.Clear ComboBox1.ListRows = 0 End If ComboBox1.DropDown End If Else If ComboBox1.ListCount <> UBound(priArray) Then ComboBox1.List = priArray ComboBox1.DropDown End If End If End Select End Sub Private Sub HienComboBox() priIsFocus = True With ComboBox1 .Visible = False .Visible = True .Left = ActiveCell.Left .Top = ActiveCell.Top .Width = ActiveCell.Width .ListWidth = .Width + ActiveCell.Offset(, priColumn).Width .ColumnWidths = .Width - 4 .Height = ActiveCell.Height .List = priArray .Text = "" .Text = ActiveCell.Value .Activate .SelStart = 0 .SelLength = Len(.Text) End With priIsFocus = False End Sub Private Sub AnComboBox() With ComboBox1 If .Visible Then .Visible = False End If End With End Sub
Tìm kiếm và lọc giá trị trong danh sách nhiều cột trong Excel
Nếu bạn cài Add-in A-Tools Free thì các yêu cầu cảu bạn được đáp ứng một cách trọn vẹn. Đây là chức năng, là phương pháp thiết kế tối ưu nhất trong Excel nhờ vào tích hợp hộp nhập dữ liệu của chính Excel. Bạn không phải lập trình, chỉ dùng chuột kéo thả. Ngoài drop list bạn còn nhập theo nhiều kiểu, chọn nhiều giá trị, giá trị từ nhiều cột, nhập ngày tháng bằng click chuột in danh sách giá trị chọn,...
DOWNLOAD Add-in A-Tools Free
[QUOTE
SAO E LÀM ĐÚNG NHƯ HƯỚNG DẪN MÀ FILE CỦA EM ĐÁNH TÌM KIẾM KHÔNG TÌM HẾT MÃ ĐƯỢC Ạ