Về Userform, cách tự động sang cột khi hết hàng và dùng phương thức Find ! (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

h.nguyen132133

Thành viên mới
Tham gia
1/1/20
Bài viết
5
Được thích
7
Dạ tình hình là em có tạo một bảng tính, với 3 thông số là kg (khối lượng), Sp (sản phẩm) và S/l (số lượng). Khi nhập dữ liệu vào thì sẽ tự động tìm và cộng dồn nếu tên Sp trùng lập (cộng dồn kg và S/l). Mong muốn em là khi nhập tới ô thứ 39 của cột C thì sẽ tự động sang cột khác (cụ thể là cột H) và vẫn tìm Sp trùng và cộng dồn... lý do là em muốn tiết kiệm giấy khi in và trong gọn gàng ạ ! em trình thì chỉ code được tới đây (file đính kèm) mong các bác giúp đỡ thêm.
 

File đính kèm

PHP:
Private Sub CmdNhap_Click() '** Chú Ý Tên Các Controls Cân Doi Lai     '
Dim DgNhap As Long, Col As Integer:              Dim Cls As Range
Const NN As String = "Cân Nhâp Sô Liêu Vô ConTrol Này:"

If Me!tbSF.Value = "" Then                         'TextBox San Fam        '
    MsgBox NN
    Me!tbSF.SetFocus:                                           Exit Sub
ElseIf Me!tbKL.Value = "" Or Not IsNumeric(Me!tbKL.Value) Then
    MsgBox NN                                           'TextBox Khôi Luong      '
    Me!tbKL.SetFocus:                                           Exit Sub
ElseIf Me!tbSL.Value = "" Or Not IsNumeric(Me!tbSL.Value) Then
    MsgBox NN                                           'TextBox Sô Luong       '
    Me!tbSL.SetFocus:                                           Exit Sub
End If
For Col = 1 To 72 Step 5
    If Cells(39, Col).Value = "" Then
        DgNhap = Cells(99, Col).End(xlUp).Row + 1
        Cells(DgNhap, Col).Value = Me!tbSF.Value:       Me!tbSF.Text = ""
        Cells(DgNhap, 2 + Col).Value = Me!tbKL.Value:   Me!tbKL.Text = Space(0)
        Cells(DgNhap, 4 + Col).Value = Me!tbSL.Value:   Me!tbSL.Text = ""
        MsgBox "Nhâp Xong Rôi!":                                Exit For
    Else
        Cells(39, Col).Interior.ColorIndex = 38
    End If
Next Col
End Sub
 
Upvote 0
PHP:
Private Sub CmdNhap_Click() '** Chú Ý Tên Các Controls Cân Doi Lai     '
Dim DgNhap As Long, Col As Integer:              Dim Cls As Range
Const NN As String = "Cân Nhâp Sô Liêu Vô ConTrol Này:"

If Me!tbSF.Value = "" Then                         'TextBox San Fam        '
    MsgBox NN
    Me!tbSF.SetFocus:                                           Exit Sub
ElseIf Me!tbKL.Value = "" Or Not IsNumeric(Me!tbKL.Value) Then
    MsgBox NN                                           'TextBox Khôi Luong      '
    Me!tbKL.SetFocus:                                           Exit Sub
ElseIf Me!tbSL.Value = "" Or Not IsNumeric(Me!tbSL.Value) Then
    MsgBox NN                                           'TextBox Sô Luong       '
    Me!tbSL.SetFocus:                                           Exit Sub
End If
For Col = 1 To 72 Step 5
    If Cells(39, Col).Value = "" Then
        DgNhap = Cells(99, Col).End(xlUp).Row + 1
        Cells(DgNhap, Col).Value = Me!tbSF.Value:       Me!tbSF.Text = ""
        Cells(DgNhap, 2 + Col).Value = Me!tbKL.Value:   Me!tbKL.Text = Space(0)
        Cells(DgNhap, 4 + Col).Value = Me!tbSL.Value:   Me!tbSL.Text = ""
        MsgBox "Nhâp Xong Rôi!":                                Exit For
    Else
        Cells(39, Col).Interior.ColorIndex = 38
    End If
Next Col
End Sub
Cảm ơn bác rất nhiều ạ, để em test và ngâm cứu thử
 
Upvote 0
PHP:
Private Sub CmdNhap_Click() '** Chú Ý Tên Các Controls Cân Doi Lai     '
Dim DgNhap As Long, Col As Integer:              Dim Cls As Range
Const NN As String = "Cân Nhâp Sô Liêu Vô ConTrol Này:"

If Me!tbSF.Value = "" Then                         'TextBox San Fam        '
    MsgBox NN
    Me!tbSF.SetFocus:                                           Exit Sub
ElseIf Me!tbKL.Value = "" Or Not IsNumeric(Me!tbKL.Value) Then
    MsgBox NN                                           'TextBox Khôi Luong      '
    Me!tbKL.SetFocus:                                           Exit Sub
ElseIf Me!tbSL.Value = "" Or Not IsNumeric(Me!tbSL.Value) Then
    MsgBox NN                                           'TextBox Sô Luong       '
    Me!tbSL.SetFocus:                                           Exit Sub
End If
For Col = 1 To 72 Step 5
    If Cells(39, Col).Value = "" Then
        DgNhap = Cells(99, Col).End(xlUp).Row + 1
        Cells(DgNhap, Col).Value = Me!tbSF.Value:       Me!tbSF.Text = ""
        Cells(DgNhap, 2 + Col).Value = Me!tbKL.Value:   Me!tbKL.Text = Space(0)
        Cells(DgNhap, 4 + Col).Value = Me!tbSL.Value:   Me!tbSL.Text = ""
        MsgBox "Nhâp Xong Rôi!":                                Exit For
    Else
        Cells(39, Col).Interior.ColorIndex = 38
    End If
Next Col
End Sub
Mình đã test, sang dòng được rồi ạ. Nhưng mà TÌM Sản phẩm trùng và cộng dồn lại (khối lượng và số lượng) nếu tìm thấy trùng. Không trùng thì thêm bình thường làm sao ạ bạn !
 
Upvote 0
Mình đã test, sang dòng được rồi ạ. Nhưng mà TÌM Sản phẩm trùng và cộng dồn lại (khối lượng và số lượng) nếu tìm thấy trùng. Không trùng thì thêm bình thường làm sao ạ bạn !
Như vậy bạn phải có danh sách (DM) tên SF (sản phẩm) hay DM mã SF
& khi ý TextBox thứ 2 để nhập tên SF hiện thời sẽ biến thành ComboBox để bạn chọn 1 SF từ DM
Chỉ có vậy mới đảm bảo an toàn cho CSDL của bạn; không trở thành đống rác nguy hại ngay chính cho bạn!
 
Upvote 0
Như vậy bạn phải có danh sách (DM) tên SF (sản phẩm) hay DM mã SF
& khi ý TextBox thứ 2 để nhập tên SF hiện thời sẽ biến thành ComboBox để bạn chọn 1 SF từ DM
Chỉ có vậy mới đảm bảo an toàn cho CSDL của bạn; không trở thành đống rác nguy hại ngay chính cho bạn!
Do SP không nhất quán và số lượng lớn (>1000) mà dùng ComboBox thì lựa cũng rất là phê, mình muốn dùng phương thức Find để tìm và gộp được không bạn...
 
Upvote 0
Do SP không nhất quán và số lượng >1000 mà dùng ComboBox thì lựa cũng rất là phê, mình muốn dùng phương thức Find để tìm và gộp được không bạn...
Cụm từ 'không nhất quán' mình chưa thể hiểu!
Xài Combox thì chậm mà chắc; Ai bảo chứng cho bạn luôn nhập đúng tên từ ngàn SF như vậy mà không sai chính tả?!?
Nhanh hay chậm khi dò trên ComboBox còn do cách bạn phân loại SF nữa đó nha. Hãy dùng cách chia để trị trên ngàn SF của bạn đi
Nếu không xài ComboBox thì mình sẽ không giúp tiếp bạn được đâu: Giúp là hại bạn về lâu dài mà thôi!

Mình ví dụ như loại hàng là lương thực & thực phẩm:

TênDVT
GV___Gia vị
GVDC00Dầu ănlít
GVDJ01Đường đỏKg
GVDJ02Đường trắngKg
GVDJ03Dấm chuaKg
GVMC00MuốiKg
GVMC01Mì chínhgói
GVNC00Nước mắm thườnglít
GVNJ01Nước mắm chaichai
GVNJ02Nước hàngkg
GVNJ03Ngũ Vịgói
GVTJ00Thính gạokg
HQ___Hoa quả
HQCK00Chuốiquả
HQDK00Dưa hấukg
HQDK01Dứakg
HQMK00Míakg
Khac_Khác
KHNJ04Nước rửa bátlọ
LT___Lương thực
LTNA00Gạo nếpKg
LTTN00Gạo tẻKg
LTTT00Gạo tẻKg
ML-mua lẻ
MLCM00Cá trôiKg
MLCM01Cá mèKg
MLCM02Cá vượcKg
MLCM03Cá chimKg
MLCM04Cá nụcKg
MLCM05chả cáKg
NL___Chất đốt
NLCB00Củi épKg
RC___Rau củ quả
RCBJ00Bắp cảiKg
RCBJ01Bí đỏKg
RCBJ02Bí xanhKg
RCBJ03Bầu quảKg
RCCJ00Củ cảiKg
RCCJ01Cà chuaKg
RCCJ02Cà rốtKg
RCCJ03Cải canhKg
RCCJ04Cải ngọtKg
RCCJ05Cải thảoKg
RCCJ06Cần TâyKg
RCDJ00Dọc mùngKg
RCDJ01Dưa chuaKg
RCGE00Giá đỗKg
RCGJ01Gừng củKg
RCHJ00Hành láKg
RCHJ01Hành tâyKg
RCHJ01Hạt tiêuKg
RCL0J1LạcKg
RCLJ00Lá chanhKg
RCMJ00Mùng tơiKg
RCMJ01Mùi tàuKg
RCMJ02Mướp hươngKg
RCMJ03Mướp đắngKg
RCNJ00Nghệ củKg
RCOJ00ỚtKg
RCRJ01Rau muốngKg
RCRJ02Rau rămKg
RCRJ03RiềngKg
RCRJ04Rau ngổKg
RCRJ05Rau ngótKg
RCTJ00TỏiKg
RCTJ01Tai chuaKg
RCTJ02Thì làKg
RCVJ00Vừng vỏKg
RCXJ00Xả củKg
TF___Thực phẩm
TFBI00Bì nộm thínhKg
TFBI01Thịt bêKg
TFBI02Thịt bò loại 1Kg
TFBI03Thịt bò loại 2Kg
TFCG00Cá trôiKg
TFCG02Cá mèKg
TFCG03Cá vượcKg
TFCG04Cá chimKg
TFCH00Cá trôiKg
TFCH01Cá cơmKg
TFCH02Cá mèKg
TFCH03Cá vượcKg
TFCH04Cá chimKg
TFCH05Cá nụcKg
TFCH06chả cáKg
TFCH07TômKg
TFDD00Đậu phụKg
TFGI00Giò chảKg
TFGI00Thịt gà taKg
TFGI01Giò bòKg
TFGI01Thịt gà CNKg
TFGI02Chim cútCon
TFLI00Lòng lợnKg
TFMI00Mỡ nướcKg
TFMI01Mỡ láKg
TFNJ00NgaoKg
TFTF00Trứng gàQuả
TFTF01Trứng VịtQuả
TFTG01Trứng gàQuả
TFTG01Trứng VịtQuả
TFTI00Thịt môngKg
TFTI01Thịt vaiKg
TFTI01Trứng VịtQuả
TFTI02Thịt ba chỉKg
TFTI03Thịt thủKg
TFTI04Thịt nạc môngKg
TFTI05Thịt nạc vaiKg
TFTI06Thịt ba chỉ không đầuKg
TFXI00Xương sườnKg
TFXI01Xương ốngKg
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom