Trích xuât dữ liệu

Liên hệ QC

thao.taichinhthegioi

Thành viên mới
Tham gia
18/5/13
Bài viết
4
Được thích
0
Chào a chị và các bạn.
Hiện e đang làm bên 1 cty phân phối. Hàng ngày phải viết PHIẾU YÊU CẦU để kho phát hàng.
Các dữ liệu thì phải lấy từ hệ thống ra. Công việc này hầu như hiện nay chỗ e đầu làm bằng tay ( copy past ) thật vô cùng vất vả. Mong các a c giúp e đặt công thức sao cho phù hợp nhé.
Trong file đính kèm e có sheet Data: các dữ liệu lấy trên hệ thống bên e.
Sheet Phiếu yêu cầu: là cái from PYC mà bên e phải viết.
E cần link dữ liệu từ DATA sang sheet PYC. Phần e bôi vàng là phần cần link công thức ah.
E đã thử dùng hàm advance filter nhưng mà ko hữu hiệu nếu như cần viết nhiều PYC cho nhiều tuyến. Mỗi lần viết lại phải đặt lại hàm advance.
E dùng Vlookup cung ko ổn vì trong mục Số MF nó chỉ hiện cho e 1 số. mà trong thực tế ứng với mỗi tuyến thì có nhiều số MF.
E rất mong a c nào có phương án giải quyết hay thì giúp e với ah.
Thank cac a c nhiều ah.
 

File đính kèm

Chào a chị và các bạn.
Hiện e đang làm bên 1 cty phân phối. Hàng ngày phải viết PHIẾU YÊU CẦU để kho phát hàng.
Các dữ liệu thì phải lấy từ hệ thống ra. Công việc này hầu như hiện nay chỗ e đầu làm bằng tay ( copy past ) thật vô cùng vất vả. Mong các a c giúp e đặt công thức sao cho phù hợp nhé.
Trong file đính kèm e có sheet Data: các dữ liệu lấy trên hệ thống bên e.
Sheet Phiếu yêu cầu: là cái from PYC mà bên e phải viết.
E cần link dữ liệu từ DATA sang sheet PYC. Phần e bôi vàng là phần cần link công thức ah.
E đã thử dùng hàm advance filter nhưng mà ko hữu hiệu nếu như cần viết nhiều PYC cho nhiều tuyến. Mỗi lần viết lại phải đặt lại hàm advance.
E dùng Vlookup cung ko ổn vì trong mục Số MF nó chỉ hiện cho e 1 số. mà trong thực tế ứng với mỗi tuyến thì có nhiều số MF.
E rất mong a c nào có phương án giải quyết hay thì giúp e với ah.
Thank cac a c nhiều ah.
1 Tuyến như vậy thường cao nhất là bao nhiêu dòng vậy bạn. Bạn có muốn dùng code?
 
1 Tuyến như vậy thường cao nhất là bao nhiêu dòng vậy bạn. Bạn có muốn dùng code?
Thank a trước nhé.
Bình thường thì 1 tuyến sẽ có dưới 5 số MF/ngày. Nhưng vào cuối quý do lượng hàng nhiều nên 1 số tuyến sẽ có số MF > 5. Nhưng e ko được phép thay đổi form PYC của công ty. Nên sẽ phải viết ra 2 tờ PYC.
Còn a hỏi là có muốn cùng code ko thì e ko hiểu lắm nên chẳng biết trả lời như thế nào nữa. %#^#$%#^#$
 
Thank a trước nhé.
Bình thường thì 1 tuyến sẽ có dưới 5 số MF/ngày. Nhưng vào cuối quý do lượng hàng nhiều nên 1 số tuyến sẽ có số MF > 5. Nhưng e ko được phép thay đổi form PYC của công ty. Nên sẽ phải viết ra 2 tờ PYC.
Còn a hỏi là có muốn cùng code ko thì e ko hiểu lắm nên chẳng biết trả lời như thế nào nữa. %#^#$%#^#$
Còn cột số lượng hàng thường và hàng lạnh thì sao bạn (thùng, Bao)? Bạn ghi tay?
 
Đấy là công việc của kho . E chỉ cần điền thông tin ở những ô tô vàng thôi ah

ah. Giờ thì e đã hiểu dùng code trong excel là như thế nào. Cái này e cũng đã xem qua nhưng chưa thực hành bao giờ. Nếu nó có tác dụng cho trường hợp của e thì a chỉ giúp e với ah. ^^
 
Chỉnh sửa lần cuối bởi điều hành viên:
Đấy là công việc của kho . E chỉ cần điền thông tin ở những ô tô vàng thôi ah

ah. Giờ thì e đã hiểu dùng code trong excel là như thế nào. Cái này e cũng đã xem qua nhưng chưa thực hành bao giờ. Nếu nó có tác dụng cho trường hợp của e thì a chỉ giúp e với ah. ^^

Dùng code sau:

[GPECODE=sql]Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
Dim adoConn As Object, adoRS As Object
Set adoConn = CreateObject("ADODB.Connection")
Set adoRS = CreateObject("ADODB.Recordset")
With adoConn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
.Open
End With
With adoRS
.ActiveConnection = adoConn
.Open "select F1 from [DATA$A2:C1000] " _
& "where F3 like '" & Sheet2.Range("D4").Value & "'"
End With
With Sheet2
.[B8:B12].ClearContents
.[B8].CopyFromRecordset adoRS
End With
adoRS.Close: Set adoRS = Nothing
adoConn.Close: Set adoConn = Nothing

End If

End Sub

[/GPECODE]

p/s: Dùng AdvancedFilter thì code ngắn gọn hơn nhiều, nhưng mình vẫn thích dùng ado hơn.
 

File đính kèm

Dùng code sau:

[GPECODE=sql]Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
Dim adoConn As Object, adoRS As Object
Set adoConn = CreateObject("ADODB.Connection")
Set adoRS = CreateObject("ADODB.Recordset")
With adoConn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
.Open
End With
With adoRS
.ActiveConnection = adoConn
.Open "select F1 from [DATA$A2:C1000] " _
& "where F3 like '" & Sheet2.Range("D4").Value & "'"
End With
With Sheet2
.[B8:B12].ClearContents
.[B8].CopyFromRecordset adoRS
End With
adoRS.Close: Set adoRS = Nothing
adoConn.Close: Set adoConn = Nothing

End If

End Sub

[/GPECODE]

p/s: Dùng AdvancedFilter thì code ngắn gọn hơn nhiều, nhưng mình vẫn thích dùng ado hơn.

Ồ Cám ơn a nhieu ah. E sẽ thử áp dụng đoạn code này. Nếu có khúc mắc gì e lại thỉnh a tiếp nhé. --=0 Have a good day. --=0
 
Web KT

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

Back
Top Bottom