Lấy dữ liệu từ phiếu nhập

  • Thread starter Thread starter ThuNghi
  • Ngày gửi Ngày gửi
Liên hệ QC

ThuNghi

Hãy cho rồi sẽ nhận!
Thành viên đã mất
Tham gia
16/8/06
Bài viết
3,808
Được thích
4,449
Tôi có một phiếu nhập: gồm có tên KH, ngày...
Và phần chi tiết gồm nhiều nhất là 05 món hàng.
Khi nhập phiếu nhập hàng (hay xuất...) xong tôi muốn đưa vào bảng kê gồm có tên KH, ngày, chi tiết nhập, SL, DG..)
Xin chỉ cho thủ tục đưa vào bảng kê (dòng cuối BK - dòng mới nhất)
Hiện tại tôi làm 1 macro copy PN (ví dụ là A5:D9 - phần chi tiết nhập có 5 dòng) và tại BK, tôi chọn dòng cuối +1 và dán vào.
Nhưng nếu phiếu nhập chỉ có 3 món hàng thì nó sẽ sinh ra 2 dòng trống, phải xóa dòng thì không hay lắm.
Xin các bạn chỉ hộ - Cám ơn
 
Vấn đề là tôi luôn phải copy 5 dòng (số dòng nhiều nhất của PN) vd: A5:D9
trong khí có PN chỉ có 1 dòng thôi vậy là tôi phải copy 4 dòng rỗng và dán vào BK (tôi muốn có 1 thủ tục để copy trừ những dòng không có)
VD: PN1
hàng 1 dòng 5
hàng 2 dòng 6
hàng 3 dòng 7
hàng 4 dòng 8
hàng 5 dòng 9

Nhưng PN2 chỉ có
hàng 1 dòng 5

còn lại các dòng khác không có (chỉ có nhập 1 lọai hàng)
Bạn chỉ giúp nhé!
 
Tks nhiều nhưng mà chưa làm được
Bạn kiểm tra file này hộ
tôi nhập PN chi tiết vào sheet CT và copy vào sheet BK (dòng cuối) và không có những dòng có sophieu=0
Cám ơn! (vì là file nhỏ nên o nén)
đính kèm file vd.xls
 
Lần chỉnh sửa cuối:
Bạn hãy Copy & dán đè lên cái Macro cũ!

Để chạy thuận tiên thì gán fím tắt cho nó (VD: CTRL+SHIFT+C)
(Các dòng lệnh đã gán số; có thắc mét cứ hỏi!)@$@!^%
Sub CopyChiTiet()
Dim iZ As Integer: Dim Rang As Range
1 Application.ScreenUpdating = False
2 Set Rang = Sheets("CT").Range("A2:F" & ActiveSheet.Range("F65535").End(xlUp).Row)
3 Rang.Copy
4 ' Sheets("CT").Range("A2:F" & ActiveSheet.Range("F65535").End(xlUp).Row).Copy
5 Sheets("BK").Select: Range("A65535").Select
6 Selection.End(xlUp).Select
7 iZ = Selection.Row + 1
8 Range("A" & CStr(iZ)).Select
9 ActiveSheet.Paste
10 Application.CutCopyMode = False
11 With Rang
12 .ClearContents
13 End With
14 Sheets("CT").Select
15 Application.ScreenUpdating = -1
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Lấy dữ liệu từ PN khác rỗng

Cám ơn rất nhiều.
Đã áp dụng mà vẫn chưa bỏ các dòng rỗng từ sh(ct), làm thế nào nó chỉ copy dòng khác rỗng hoặc là dán vào những dòng khác rỗng.
Gởi kèm file đính kèm (có áp dụng Macro rồi)
 
Lần chỉnh sửa cuối:
Nhờ chỉ cách lấy những dữ liệu <> 0

Làm phiền chỉ dẫn tiếp
Tôi xin đính kèm lại file đã vận dụng của HYen nhưng cần thêm một số BS
Xin cám ơn.
 
Lần chỉnh sửa cuối:
Mình thấy giá trị không có quan trong gì không nhỉ nếu cần không thấy ( để cho đẹp ) thì cứ vào tool/option bỏ giá trị zero là được chứ gì.
 
Vấn đề là có 1 macro xóa các dòng =0,
- Trước copy - xóa ở CT (DL sẽ copy)
- Khi dán rồi xóa ở BK.(DL đã dán vào)
- Hay là đếm những dòng có giá trị khác 0, và copy những dòng theo trị đã đếm
 
Dear all,
--------
Theo em vấn đề của ThuNghi chỉ là xác định số mặt hàng có trong phiếu mà thôi! Cụ thể hơn là xác định phạm vi cần copy dữ liệu trên giao diện phiếu để chuyển qua Bảng kê theo từng lần nhập phiếu(?).
Một điều kiện là các mặt hàng trên phiếu phải được nhập liên tục. Bạn ThuNghi có thể MAX, COUNT ra số mặt hàng trên phiếu. Vậy tại sao không cộng con số này vào chỉ số trong tham số địa chỉ cần copy? Phép gán giá trị này chắc không cần phải bàn đến!
 
dùng range().value2

Cám ơn đã làm phiền HYen nhiều lắm.
Tôi mới mày mò (mới làm quen mà) và tìm ra như thế này. Bạm kiểm hộ có an tòan dữ liệu
VD: ta có cell F11=max(STT - cột STT) gồm bao nhiêu dòng khác 0
i= range("F11").value2 (lấy giá trị của F11 = 1 số x)
Range("A2:D" & i+1).copy (copy từ A2 ->D(giá trị F11)
....
paste
 
Trong file đầu tiên của bạn ấy, bạn hãy tạo:
Define name "zzz"=OFFSET(ct!$A$2;0;0;COUNTIF(ct!$A$2:$A$6;"<>0");6)
Với Macro đơn giản như thế này thì mọi chuyện trở nên dễ dàng bạn nhỉ!
Sub zzz()
Application.Goto Reference:="zzz"
Selection.Copy
End Sub
 
Cách làm của bác Paraduong tương đối hay và mình đã làm thử cho ThuNghi rồi đấy, tuy nhiên vùng dữ liệu nó chỉ loại các tham số <> 0 thôi, giả sử dòng trống thì cũng bị copy như thường (dạng " "), vấn đề này trước đây cũng bị vướng nhưng giờ ngon lành rồi, kinh nghiệm cho thấy bạn phải để đồng bộ dạng dữ liệu thì mọi việc sẽ trở nên đơn giản. Nếu bán quan tâm mình sẽ gửi mail cho bạn về các dạng đó
 

File đính kèm

Web KT

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

Back
Top Bottom