Tìm kiếm nhanh trong drop down list

Liên hệ QC

File đính kèm

  • TimKiemNhanh_HTN.xlsm
    27.2 KB · Đọc: 588
Không hiểu máy tôi có vấn đề gì không, mà khi đặt con trỏ vào TextBox, bấm nút TAB 2 lần thì nó bị như thế này (xem hình). Các bạn thử test xem sao.
Ồ! của em cũng bị như của anh Nghĩa, nhấn Tab 2 lần thì báo lỗi như trên.
doveandrose <== thêm 1 nạn nhân nữa đã bị "Excel has stop working" , chờ thày hpkhuong ra tay nữa vậy . +-+-+-++-+-+-+

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...}}}}}}}}}}}}}}}
 
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ậy thôi, nếu ta không tìm ra được nguyên nhân cũng như cách khắc phục thì ta đừng có dùng ListBox trong Sheet nữa, xài ComboBox được rồi. Cái nào khó quá bỏ qua.

Giống như tôi trước thích dùng ListView trên UserForm, bị vài lỗi sống dỡ chết dỡ nên chuyển qua dùng ListBox (trên UserForm à nha, không phải trên Sheet). Kể cả cái Calendar Control cũng vậy, nên tự tạo Calendar luôn!
 
..................

Chắc không chỉ riêng em mà rất nhiều bạn đều mong muốn có thể nhập liệu nhanh tại ô mà tại ô đó có thể truy xuất nhanh đến vùng dữ liệu nguồn. Rất mong sẽ nhận được hướng dẫn cùa anh, để em và mọi người có thể ứng dụng vào công việc của mình

Trân trọng!

Đọ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?
 

File đính kèm

  • NHAP LIEU NHANH.xls
    191 KB · Đọc: 620
Lần chỉnh sửa cuối:
a ơi a sửa giúp e cái file này của e được k ạ?

- 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.
 

File đính kèm

  • HOA DON.rar
    42.1 KB · Đọc: 370
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
 

File đính kèm

  • file tong hop.xlsx
    165.6 KB · Đọc: 108
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

Góp ý cho bạn:

1/ Bạn nên nêu yêu cầu cụ thể cần tổng cái gì? Vì xem nội dung phieu xuat với sheet theo doi phieu xuat thì tiêu đề nó khâu ăn nhậu gì với nhau nên chưa hiểu được ý định của bạn.

2/ Với File của bạn thì phải thiết kế lại mới phù hợp với việc dùng phieu xuat nhập liệu vào sheet theo doi phieu xuat và có thể truy vấn phiếu xuất khi cần.
 
Xin lỗi mọi người vì cách diễn đạt của mình.vì từ trước đến nay mình làm thủ công đúng như file mình gửi ( tức là đánh phiếu xuất xong vào thủ công vào trong phần tổng hợp theo dõi đơn hàng tứng khách hàng, từng mặt hàng sau đó tổng hợp báo cáo theo nhân viên theo mặt hàng để gửi sếp) nên thực sự về mặt diễn đạt ình chưa biết diễn đạt ra sao
nôm na yêu cầu cụ thể của mình đó là :
- tổng hợp lại các đơn hàng đã xuất đầy đủ theo từng mặt hàng, theo nhân viên để sau này làm bản tổng hợp báo cáo tổng theo mặt hàng theo nhân viên cho sếp.
mình xin cảm ơn
 
- 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.
 
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.

Cái nút đó làm vầy:

Trên Ribbon vào INSERT > Shapes > Rectangles chọn 1 kiểu rồi vẽ vào bảng tình, xong vào HOME và chọn Fill Color (màu nền), Font Color (màu chữ), click phải chuột chọn Edit Text và gõ chữ vào Shapes. Tiếp theo click phải chuột chọn Assign Macro (để gán Macro cho nút vừa chọn) cửa sổ Assign Macro hiện ra, trong khung lớn chọn tên 1 Macro và nhấn OK.

Cái nút đó có nhiều cách để làm (có thể lấy bất kỳ hình ảnh nào cũng được), nhưng quan trọng là làm sao viết code Macro đúng với từng chức năng của nó.

Để xem code: Nhấn Alt+F11, để trở ra bảng tính lại nhấn Alt+F11.
 
- 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.
 

File đính kèm

  • Quanly kho hang_3.xlsx
    30.5 KB · Đọc: 75
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.

Bạn nên tiếp tục hỏi ở bài viết "Quản lý bán hàng bằng Excel" cho đúng với chủ đề của Topic, đây là Link bài viết:

http://www.giaiphapexcel.com/forum/...-hàng-bằng-Excel&p=743945&posted=1#post743945

Nếu trả lời cho bạn ở Topic này tôi sẽ vi phạm nội quy (vì sai chủ đề).
 
Lần chỉnh sửa cuối:
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
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)
Trong list mình muốn thêm cột đơn vị tính và đơn giá nữa
Cho mình đoạn code với. Cảm ơn
 
Tìm kiếm và lọc giá trị trong danh sách nhiều cột trong Excel

Ở 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.

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
 
Lần chỉnh sửa cuối:
nếu muốn chỉnh sửa ô chứa vị trí hoặc vùng và thêm dòng tìm kiếm mình mình sửa sao vậy a
 
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...}}}}}}}}}}}}}}}
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 !
 
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

Em muốn dùng code của anh cho file của em,

Nhưng hiện tại sheet đó có chứa code lấy hình ảnh nữa:
Mã:
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

Làm thế nào để sử dụng được cả 2 code trong 1 sheet? Mong các anh chị giúp
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom