Tạo Form tìm kiếm và nhập liệu

Liên hệ QC
Bạn thử thao tác & kiểm theo Form kết quả:
em đã xem file rồi bác,ở trong file,em muốn hỏi bác là nếu như chỉ dùng mã thôi không gán tên khách hàng nữa,bỏ luôn sheet DSKH được không ạ?và mỗi cập nhật thêm một ngày thì chỉ việc copy mã khách hàng và số lượng ở sheet dữ liệu,việc tìm kiếm số lượng sẽ dựa theo mã ở sheet dữ liệu luôn chứ không phải thêm ở bảng DSKH nữa..vì thường e tải số liệu xuống thì sẽ có mã và số lượng luôn nên dùng thế cho tiện bác
 
Lần chỉnh sửa cuối:
và trong code bác có dùng hàm quy đổi ngày ấy ạ,hàm này e thấy nó hơi cao siêu với trình độ hiện tại của em,nếu như thực sự để thêm mới một ngày hoặc là dùng cho tháng sau thì phải sửa mà e thì không biết mã ngày đó,nếu như dùng "ngay1,ngay2,ngay3...." để làm điều kiện tìm kiếm ở sheet dữ liệu được không vì như thế nó sẽ đơn giản hơn với em. trên đây là là mong muốn của e thôi còn bác giúp em được đến đây là quá nhiệt tình rồi ạ?lần nữa cảm ơn bác rất nhiều
 
Lần chỉnh sửa cuối:
em đã xem file rồi bác,ở trong file,em muốn hỏi bác là nếu như chỉ dùng mã thôi không gán tên khách hàng nữa,bỏ luôn sheet DSKH được không ạ?
Tất nhiên là được!
và trong code bác có dùng hàm quy đổi ngày ấy ạ,hàm này e thấy nó hơi cao siêu với trình độ hiện tại của em,nếu như thực sự để thêm mới một ngày hoặc là dùng cho tháng sau thì phải sửa mà e thì không biết mã ngày đó,
Nếu như dùng "ngay1,ngay2,ngay3...." để làm điều kiện tìm kiếm ở sheet dữ liệu được không vì như thế nó sẽ đơn giản hơn với em. trên đây là là mong muốn của e thôi còn bác giúp em được đến đây là quá nhiệt tình rồi ạ?lần nữa cảm ơn bác rất nhiều
Thực tế trong file là qui đổi từ ngày ra cột, theo kiểu ngày 1 là cột 2; Ngày 2 là cột 4
Chứ chưa áp dụng phương thức tìm ngày, cũng như chưa tìm theo chuỗi mã ngày
Bỡi 1 lẽ đơn giản là bạn chỉ có 62+1 cột thôi
Cái chuỗi mã ngày của mình, hay áp dụng phương thức tìm kiếm (FIND()) khi trong hàng tiêu đề có nhiêu ô cột chứa dữ liệu ngày (Ví dụ xài cho cả quí hay cả năm luôn.)

Nói thêm: Khi áp dụng phương thức FIND() thì vùng (để) tìm cần định lại dạng "MM/DD/yyyy" mới tìm được. Tất nhiên sau khi tìm được hay không được đều phải trả dạng ngày-tháng-năm về định dạng ban đầu mà bạn đã ấn định.
 
Lần chỉnh sửa cuối:
Tất nhiên là được!

Thực tế trong file là qui đổi từ ngày ra cột, theo kiểu ngày 1 là cột 2; Ngày 2 là cột 4
Chứ chưa áp dụng phương thức tìm ngày, cũng như chưa tìm theo chuỗi mã ngày
Bỡi 1 lẽ đơn giản là bạn chỉ có 62+1 cột thôi
Cái chuỗi mã ngày của mình, hay áp dụng phương thức tìm kiếm (FIND()) khi trong hàng tiêu đề có nhiêu ô cột chứa dữ liệu ngày (Ví dụ xài cho cả quí hay cả năm luôn.)

Nói thêm: Khi áp dụng phương thức FIND() thì vùng (để) tìm cần định lại dạng "MM/DD/yyyy" mới tìm được. Tất nhiên sau khi tìm được hay không được đều phải trả dạng ngày-tháng-năm về định dạng ban đầu mà bạn đã ấn định.
1.bác cho em hỏi thêm là trong code bác viết giúp em,có danh sách 【ngày và mã】 trỏ xuống ở form tìm kiếm lấy dữ liệu ở sheet DSKH ngày ở cột A và mã ở cột H .lúc e muốn đổi vị trí của hai cột đó thành vị trí khác e tìm trong code không biết sửa chỗ nào mong bác chỉ giúp.
2.form hiện tại là tìm kiếm ở sheetactive vậy nếu e muốn thêm một nút nhấn ở sheet khác khi nhấn vào thì hiện lên bảng tìm kiếm dữ liệu ở sheets dữ liệu thì code sửa như thế nào để đường dẫn tìm kiếm lấy kết quả ở sheets chứ dữ liệu ạ?
 
Lần chỉnh sửa cuối:
1.bác cho em hỏi thêm là trong code bác viết giúp em,có danh sách 【(a) ngày và (b) mã】 trỏ xuống ở form tìm kiếm lấy dữ liệu ở sheet DSKH ngày ở cột A và mã ở cột H .lúc e muốn đổi vị trí của hai cột đó thành vị trí khác e tìm trong code không biết sửa chỗ nào mong bác chỉ giúp.

2.form hiện tại là tìm kiếm ở sheetactive vậy nếu e muốn thêm một nút nhấn ở sheet khác khi nhấn vào thì hiện lên bảng tìm kiếm dữ liệu ở sheets dữ liệu thì code sửa như thế nào để đường dẫn tìm kiếm lấy kết quả ở sheets chứ dữ liệu ạ?
1. 'Ngay' & 'MaKH' như bạn thấy tương ứng ở cột 'A' & cột 'H' (trang 'DSKH') là 2 cái tên (Name) & 2 cái Name này làm nguồn (dữ liệu) cho 2 ComboBox tương ứng (trên Form)
1 khi đã gán tên thì bạn muốn đem nó đi đâu cũng mặc, thử xem
1.a (Không có gì nhiều để nói vì nó là danh sách tối đa các ngày trong 1 tháng để ta chọn 1 ngày cụ thể
1.b Với hơn 3 ngàn mã (NV) thì nếu không có bộ mã có tính tương tác cao thì bạn không thể nhớ hết ai có mã nào,phải không?
Trong trường hợp đó thì ComboBox này trong thực tế của bạn, ta nên biến thành TextBox hay không? Mình nói vậy để bạn lưu tâm chọn 1 trong 2 để tiện trong quá trình tìm kiếm của bạn mà thôi.
(Còn bạn muốn có cả 2 thì mình sẽ ngâm cứu tiếp cho bạn)

2. Hiện tại, khi kích hoạt trang tính 'DuLieu' sẽ hiện Form do macro sự kiện có câu lệnh mở Form
Giờ muốn ở trang nào đó cũng mở Form được thì tạo 1 macro mở Form tại module1
Macro này chứa câu lệnh mở Form (Như dòng lệnh nêu trên)
& gán cho macro này tổ hợp phím (như {CTR}+{SHIF}+O ) để mở nó

Lúc đó câu lệnh đang gắn với ComboBox 'Ma KH' sẽ phải thêm câu lệnh xác định trang tính 'DuLieu' là trang tính 'để vận hành'

Bạn thử đi nha!
 
1. 'Ngay' & 'MaKH' như bạn thấy tương ứng ở cột 'A' & cột 'H' (trang 'DSKH') là 2 cái tên (Name) & 2 cái Name này làm nguồn (dữ liệu) cho 2 ComboBox tương ứng (trên Form)
1 khi đã gán tên thì bạn muốn đem nó đi đâu cũng mặc, thử xem
1.a (Không có gì nhiều để nói vì nó là danh sách tối đa các ngày trong 1 tháng để ta chọn 1 ngày cụ thể
1.b Với hơn 3 ngàn mã (NV) thì nếu không có bộ mã có tính tương tác cao thì bạn không thể nhớ hết ai có mã nào,phải không?
Trong trường hợp đó thì ComboBox này trong thực tế của bạn, ta nên biến thành TextBox hay không? Mình nói vậy để bạn lưu tâm chọn 1 trong 2 để tiện trong quá trình tìm kiếm của bạn mà thôi.
(Còn bạn muốn có cả 2 thì mình sẽ ngâm cứu tiếp cho bạn)

2. Hiện tại, khi kích hoạt trang tính 'DuLieu' sẽ hiện Form do macro sự kiện có câu lệnh mở Form
Giờ muốn ở trang nào đó cũng mở Form được thì tạo 1 macro mở Form tại module1
Macro này chứa câu lệnh mở Form (Như dòng lệnh nêu trên)
& gán cho macro này tổ hợp phím (như {CTR}+{SHIF}+O ) để mở nó

Lúc đó câu lệnh đang gắn với ComboBox 'Ma KH' sẽ phải thêm câu lệnh xác định trang tính 'DuLieu' là trang tính 'để vận hành'

Bạn thử đi nha!
1,khi em mang code qua bảng tính khác hoặc muốn lấy nguồn dữ liệu của 2 name "ngay" & “MaKH·” thì em không biết nên thay đổi chỗ nào trong code,vì em đã thủ đưa qua sheet khác và trang tính khác thì list name trên ComboBox không còn nữa,ý e là muốn thay đổi cột A và cột H thành cột khách hoặc một cột nào đó trong sheet khác,nhưng e loay hoay cả tối không biết cách đổi
2,【Lúc đó câu lệnh đang gắn với ComboBox 'Ma KH' sẽ phải thêm câu lệnh xác định trang tính 'DuLieu' là trang tính 'để vận hành'】 。bác có thể dạy e sửa code phần này được không ạ?
3,bác gợi ý phần là nên làm ComboBox hay textbox thì e thấy điều được ạ,quan trọng là thuận tiện và đơn giản vì trình độ e còn kém đang trong quá trình học hỏi,hiện tại thì lúc e muốn tìm kiếm thì đã có mã sẵn rồi chỉ việc tìm kiếm chứ không cần phải nhớ hết mã bác đâu bác,nhưng nếu để có một bộ mã tương thích như bác nói thì có thế lấy trực tiếp ngay trên sheet chứa dữ liệu hay không?và nếu như lấy trên sheet dữ liệu có nhiều bất cấp thì e thấy làm như cách của bác là hợp lý ạ,nhưng e chỉ muốn là lúc bác viết code cố định lấy ở cột H thì nếu như e muốn chuyển nó đi thành cột khác hoạt ở sheet đó hawocj ở sheet khác thì làm như thế nào ạ ?
4,e muốn hỏi thêm là khi nhập dữ liệu bằng tay thì có thể làm nhập đến ký tự nào hiển thị kết quả có liên quan đến đấy luôn và đúng hết 100% mã thì nó sẽ chỉ hiện kết quả đúng với dữ liệu đang nhập,điều này có thể không hả bác,vì lúc e nhập bằng tay đúng 100% thì nó vẫn hiện tất cả kết quả liên quan .
vì trình độ kém nên em thắc mắc hơi nhiều mong bác giúp đỡ
5.Chúc Bác ngày mới tốt lành!
1591311724406.png
 
Lần chỉnh sửa cuối:
Ta thảo luận từng mục đi nha:
1,khi em mang code qua bảng tính khác hoặc muốn lấy nguồn dữ liệu của 2 name "ngay" & “MaKH·” thì em không biết nên thay đổi chỗ nào trong code,vì em đã thủ đưa qua sheet khác và trang tính khác thì list name trên ComboBox không còn nữa,ý e là muốn thay đổi cột A và cột H thành cột khách hoặc một cột nào đó trong sheet khác,nhưng e loay hoay cả tối không biết cách đổi
2, . . .
Giờ bạn thêm 1 trang tính trống/trắng
Cắt toàn bộ dữ liệu tại trang chứa 2 Name sang trang trống;
Kiểm tra trong menu xem còn 2 Name không & địa chỉ của chúng là thế nào
Sau kiểm tra thì thao tác Form xem thử có gì khác thường hay không.
 
Ta thảo luận từng mục đi nha:

Giờ bạn thêm 1 trang tính trống/trắng
Cắt toàn bộ dữ liệu tại trang chứa 2 Name sang trang trống;
Kiểm tra trong menu xem còn 2 Name không & địa chỉ của chúng là thế nào
Sau kiểm tra thì thao tác Form xem thử có gì khác thường hay không.
Vậy là không thể đổi cột A và cột H thành cột khác trong code được hả bác?
 
cảm ơn bác góp ý,dữ liệu của bảng tính chỉ lưu giữ trong một tháng thôi ạ.là sẽ có hơn 30 cột,và một ngày như thế dữ liệu của mỗi cột là tầm 2 đến 3 nghìn dòng nên làm theo hàng thì sẽ rất là nhiều bác ạ
Vì bạn không nêu cụ rõ ràng vấn đề và cũng không đính kèm File nên việc góp ý cho bạn mang tính cách trừu tượng, mỗi ngày có đến vài ngàn người trong 1 Công ty thì theo tôi làm thế này:
1/ Nếu bạn làm ở 1 Công ty nào đó thì sẽ có phân xưởng, bộ phận, tổ nhóm thì chỉ cần 1 danh mục rồi lọc sang 1 sheet khác từng tổ nhóm nhập số lượng và lưu theo chiều dọc thì sẽ rất thuận lợi.
2/ Với kiểu nhập liệu như trên thì bạn muốn tổng hợp bất kỳ thứ gì hoặc xuất File hàng loạt theo từng phân xưởng, bộ phận, tổ nhóm như trở bàn tay.

Bạn hãy tin những người đi trước góp ý sẽ giúp ích rất nhiều cho bạn, cụ thể là bác SA_DQ.
 
Vậy là không thể đổi cột A và cột H thành cột khác trong code được hả bác?
Trong 'Code' mà bạn nói đổi, thì có thể là đổi 'Dữ liệu nguồn' trong 2 ComboBox này mà thôi; Bạn Cho hiện thiết kế lần lược 2 ComboBox này sẽ thấy điều đó & phải làm như thế nào.
 
1,
2,【Lúc đó câu lệnh đang gắn với ComboBox 'Ma KH' sẽ phải thêm câu lệnh xác định trang tính 'DuLieu' là trang tính 'để vận hành'】 。bác có thể dạy e sửa code phần này được không ạ?
3,. . . .
PHP:
Private Sub cbMa_Change()
 Dim Dat As Date, Rws As Long, W As Byte
 Dim Rng As Range, sRng As Range, Sh As Worksheet
 Dim MyAdd As String
 
 Dat = DateSerial(CInt(Me!lblNam.Caption), CInt(Me!lblThang.Caption), CInt(Me!cbNgay.Text))
 Set Sh = ThisWorkbook.Worksheets("DuLieu")
 Rws = Sh.[B2].CurrentRegion.Rows.Count
 Set Rng = Sh.Cells(1, 2 * Day(Dat)).Resize(Rws)
 Set sRng = Rng.Find(Me!cbMa.Text, , xlFormulas, xlPart)
 ReDim Arr(1 To 14, 1 To 3)
 If sRng Is Nothing Then
    MsgBox "Nothing!"
    Me!lbDS.List = Arr()
 Else
    MyAdd = sRng.Address
    Do
        W = W + 1
        Arr(W, 2) = sRng.Value:                 Arr(W, 1) = W
        Arr(W, 3) = sRng.Offset(, 1).Value
        If W = 13 Then
            Arr(14, 2) = ". . .":               Arr(14, 3) = ". . ."
            Arr(14, 1) = 14:                    Exit Do
        End If
        Set sRng = Rng.FindNext(sRng)
    Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
    If W Then
        Me!lbDS.List = Arr()
    End If
 End If
End Sub
 
1,
2,
3,. . . hiện tại thì lúc e muốn tìm kiếm thì đã có mã sẵn rồi chỉ việc tìm kiếm chứ không cần phải nhớ hết mã bác đâu bác,nhưng nếu để có một bộ mã tương thích như bác nói thì có thế lấy trực tiếp ngay trên sheet chứa dữ liệu hay không?và nếu như lấy trên sheet dữ liệu có nhiều bất cấp thì e thấy làm như cách của bác là hợp lý ạ,nhưng e chỉ muốn là lúc bác viết code cố định lấy ở cột H thì nếu như e muốn chuyển nó đi thành cột khác hoạt ở sheet đó hawocj ở sheet khác thì làm như thế nào ạ ?
4,. . . . .
Trước tiên ta bàn đến vấn đề bộ mã hiện thời của bạn có thích hợp để xài cho ComboBox hay không?
Bạn nên là 3 ngàn dòng dữ liệu phát sinh trong 1 ngày với mã không trùng, vậy cách nào bạn nhớ hết mã của toàn bộ KH của CQ?
Hay bạn muốn là :
Đầu tiên nhập vố (TextBox) kí tự 'A', sẽ hiện tất tần tật các KH có mã là 'A' đứng đầu;
Tiếp theo bạn nhập là 'N' thì toàn bộ trong ListBox chỉ hiện những người có tiếp đầu là 'AN',. . . .
Nếu muốn vậy thì phải tìm file của bạn HuuThangBD mà tham khảo & học hỏi.

Xin lưu í với bạn xài ComboBox thì nên xài bộ mã của mình!
 
vâng à,cùng chủ đề với chủ thớt nhưng để không ảnh hưởng tới bài của chủ thớt thì e chỉ dám hỏi những cái liên quan tới bài của chủ thớt thôi ah, e muốn hỏi là nếu như danh sách tìm kiếm là nhiều điều kiện thì có khả thi không ạ?dựa vào ngày tháng,sau đó mới tìm tới tên khách hàng rồi mới lấy kết quả,thì có được không ạ?ở đây vì file mỗi ngày có tầm 3 4 nghìn dòng nên việc làm list theo hàng thì sẽ rất dài nên e chia ra các cột như thế này ạ
View attachment 238629
gửi bạn file mình làm tìm kiếm theo tên và ngày nha
 

File đính kèm

  • Timkiem.xlsm
    27.9 KB · Đọc: 54
cảm ơn các bác đã nhiệt tình giúp đỡ,xin lỗi vì hôm nay em có việc bận,em xin trả lời từng câu hỏi của các bác ạ
Bài đã được tự động gộp:

Vì bạn không nêu cụ rõ ràng vấn đề và cũng không đính kèm File nên việc góp ý cho bạn mang tính cách trừu tượng, mỗi ngày có đến vài ngàn người trong 1 Công ty thì theo tôi làm thế này:
1/ Nếu bạn làm ở 1 Công ty nào đó thì sẽ có phân xưởng, bộ phận, tổ nhóm thì chỉ cần 1 danh mục rồi lọc sang 1 sheet khác từng tổ nhóm nhập số lượng và lưu theo chiều dọc thì sẽ rất thuận lợi.
2/ Với kiểu nhập liệu như trên thì bạn muốn tổng hợp bất kỳ thứ gì hoặc xuất File hàng loạt theo từng phân xưởng, bộ phận, tổ nhóm như trở bàn tay.

Bạn hãy tin những người đi trước góp ý sẽ giúp ích rất nhiều cho bạn, cụ thể là bác SA_DQ.
cảm ơn bác đã góp ý,hiện tại em đang dùng file của bác @SA_DQ ạ. một phần là nhờ các bác trên diễn đàn giúp đỡ một phần là thắc mắc học hỏi thêm nữa bác
Bài đã được tự động gộp:

Trong 'Code' mà bạn nói đổi, thì có thể là đổi 'Dữ liệu nguồn' trong 2 ComboBox này mà thôi; Bạn Cho hiện thiết kế lần lược 2 ComboBox này sẽ thấy điều đó & phải làm như thế nào.
chào bác,hôm nay em bận nên giờ mới trả lời bác được,
1.em đã thử cho combox hiện lên xem dữ liệu nguồn như bác chỉ nhưng em xem không được bác ạ
2.cảm ơn bác về code định trang tính 'DuLieu'
3.vì bác đã giúp đỡ e từ đầu nên e sẽ dùng theo cách của bác
Bài đã được tự động gộp:

gửi bạn file mình làm tìm kiếm theo tên và ngày nha
cảm ơn bác đã nhiệt tình giúp đỡ,em xin file của bác về nghiên cứu học hỏi thêm nha,có gì thâc mặc em sẽ hỏi bác để học hỏi thêm ạ
 
Lần chỉnh sửa cuối:
rất cảm ơn hai bác @SA_DQ và bác @ductdh94 đã bỏ công sức giúp đỡ em cùng các bác đóng góp ý kiên trên diễn đàn,file của e đã đi tới địch được 90% và cũng học hỏi được thêm từ các bác.,giờ em đang muốn học hỏi từ các bác cách tạo dữ liệu nguồn cho combox là "Tên/Mã tìm kiếm" & "ngày tìm kiếm",để khi chọn vào combox thì có danh sách trỏ xuống,đặc biệt là ngày thì nó sẽ tiện hơn ạ.cảm ơn các bác nhiều
 
Xem hình này, mong sẽ giúp được bạn tẹo nào thì vui.ComboBox Mã.jpg
 
Bạn thử cắt đem nguồn đó đến nơi nào bạn muốn xem sao
 
Web KT
Back
Top Bottom