Tạo Form nhập liệu Ghi sổ BH (1 người xem)

Liên hệ QC

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

thosinhkim

Thành viên mới
Tham gia
27/2/12
Bài viết
2
Được thích
0
Mọi người xem giúp tôi đoạn code này phải viết lại như thế nào để giải quyết công việc :
Form nhập liệu ghi sổ BH tôi đã tải về và muốn sửa lại để áp dụng nhưng mãi vẫn chưa đựơc :Yêu cầu từ Form sheet (Hoa don) có Ngày tháng,..., và 12 loại hàng hóa ( có tên hàng,đơn giá,số lượng)
Khi ghi sang sheet (Ghi So BH) thì mỗi lần nhập có thể chỉ có 1 hoặc vài loại hàng hóa chứ không nhất thiết phải đủ 12 loại hàng mà khi (Nhap lieu) luon tim hàng kế tiep để ghi. và ô Số HĐBH của sheet (Hoa don) tự nhảy số sau mỗi lần nhập liệutoi có gửi file kèm theo
 

File đính kèm

Sao mà code của bạn dữ dội thế. Bạn thử code của mình xem sao.
Bạn bỏ hết và viết code của nút nhập như sau:
(Code này kiểm tra chỉ hàng nào đủ tên, số lượng, dơn giá thì mới nhập vào hồ sơ. Tự đánh số tự nhân thành tiền)
Sau phải kiểm tra thêm lượng và giá có đúng là số mới nhập vào

Mã:
Private Sub NL_Click()
    If Range("B3") = "" Or Range("B4") = "" Or Range("B5") = "" Then
        MsgBox "Ban chua nhap du du lieu" & Chr(13) & "Xin ban hay kiem tra lai", , "Thong Bao"
    Else
Dim Cl As Range, Tm1, Tm2, i, j
Set Cl = Sheet2.[a65536].End(3)
Tm1 = WorksheetFunction.Transpose(Sheet1.[B3:B8])
For i = 9 To 42 Step 3
If Sheet1.Cells(i, "B") <> "" And Sheet1.Cells(i + 1, "B") <> "" And _
Sheet1.Cells(i + 2, "B") <> "" Then
j = j + 1
Tm2 = WorksheetFunction.Transpose(Sheet1.Cells(i, "B").Resize(3))
Cl.Offset(j) = Val(Cl.Value)+1
Cl.Offset(j, 1).Resize(, 6) = Tm1
Cl.Offset(j, 7).Resize(, 3) = Tm2
Cl.Offset(, 10) = Cl.Offset(, 8) * Cl.Offset(, 9)
End If
Next
Sheet1.[B3:B44].ClearContents
Sheet1.[B3].Select
End If
End Sub
 
Lần chỉnh sửa cuối:
Cám ơn Sealand,code cua bác gọn và hay quá chứ kho như tôi mới tập viết tùm lum. Xin Bác cho hỏi đoạn code trên ...
Ý tôi là form nhập tối đa tôi để 12 loại hàng khác nhau,nhưng khi sử dụng thực tế bán hàng có khi chỉ dùng 1loaij hàng hoặc 2 loại, hoặc 3 loại ....... có khi dùng đủ cả 12 loại hàng.Nếu với code trên thì khi bán 1 loại hàng thì dữ liệu vẫn điền đủ cả 12 dòng bên sheet2 và như thế thì khi lần sau nhập sẽ bị trống nhiều hàng bên trên.Bác giúp tôi viết code thế nào để khi bên form cột B dừng ở dòng nào thì bên sheet2 cũng dừng ở dòng đó mà không bị cố định nhập đủ phần ngày tháng,khách hàng,số HĐBH,phone,Email cả 12 dòng theo form.Cái này tôi nghĩ mãi không được.Xin cảm ơn
 
Đây chính là đoạn kiểm tra nếu 1 hàng nào đó có đủ 3 điều kiện: Tên hàng-Số lượng-Đơn giá thì nhập sang sheet Ghi so BH.

Mã:
If Sheet1.Cells(i, "B") <> "" And Sheet1.Cells(i + 1, "B") <> "" And _
Sheet1.Cells(i + 2, "B") <> "" Then

Bạn phát triển thêm kiểm tra lượng, giá phải là số nưa mới cho nhập. Có thể viết hẳn 1 hàm kiểm tra thay đoạn code này. Như vậy nó chắc chắn hơn.
Vậy là chỉ có dòng nào đủ điều kiện mới ghi sang còn lai sẽ bị loại bỏ.
 
Web KT

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

Back
Top Bottom