Sao chép dữ liệu từ file đến file

van80

New Member
Hội viên mới
Hỏi: Cần giúp trong Vba, với yêu cầu như sau:
Yêu cầu mình có mô tả chi tiết trong file đính kèm, mình xin trích dẫn 1 ý như sau:
- Tại ô D4 = 1 và ta click vào nút lệnh tong hop 18k thì chương trình sẽ mở ra hộp thoại Open.
- Ta dựa vào hộp thoại Open này tìm đến file k1.
- Khi đó dữ liệu trong file k1 của sheet(k1) sao chép vào sheet(data) của file tonghop.
Kết thúc !
- Tương tự như vậy cho những k còn lại
- Nhiệm vụ của sheet(data) phải chứa dữ liệu của 18k
Chú ý ô D4 là ô điều kiện cần sao chép dữ liệu.
Mong các Anh, chị trên diễn đàn giúp dùm, trân trọng cảm ơn !
file đính kèm là : View attachment 13712
 
Sửa lần cuối:

xuanthanh

Member
Hội viên mới
Ðề: Sao chép dữ liệu từ file đến file

Ý tưởng là thế này
1/ Tìm tất cả các file Excel cùng chung thư mục với file TongHop (tức là 18 file của bạn) chép vào Sheet Mai của file này bắt đầu từ ô A2
2/ Duyệt trong cột A của Sheet Mai file TongHop, nếu tên file là TongHop thì bỏ qua, ngược lại mở file đó và chép dữ liệu vào Sheet DaTa của file TongHop
3/ Tất cả đều thực hiện bằng VBA
Nếu tác giả đồng ý với ý tưởng trên thì ta xét tiếp
P/S : Hàm GetFileName sẽ liết kê tất cả các file Excel có chung thư mục với file đang hiện hữu, Hàm CopyData sẽ làm nhiệm vụ còn lại
Thân mến
 

xuanthanh

Member
Hội viên mới
Ðề: Sao chép dữ liệu từ file đến file

Hỏi: Cần giúp trong Vba, với yêu cầu như sau:
Yêu cầu mình có mô tả chi tiết trong file đính kèm, mình xin trích dẫn 1 ý như sau:
- Tại ô D4 = 1 và ta click vào nút lệnh tong hop 18k thì chương trình sẽ mở ra hộp thoại Open.
- Ta dựa vào hộp thoại Open này tìm đến file k1.
- Khi đó dữ liệu trong file k1 của sheet(k1) sao chép vào sheet(data) của file tonghop.
Kết thúc !
- Tương tự như vậy cho những k còn lại
- Nhiệm vụ của sheet(data) phải chứa dữ liệu của 18k
Chú ý ô D4 là ô điều kiện cần sao chép dữ liệu.
Mong các Anh, chị trên diễn đàn giúp dùm, trân trọng cảm ơn !
file đính kèm là : View attachment 13712

Nếu muốn làm như chủ thớt thì đây là đoạn code

PHP:
Sub CopyData()
    Dim MyPath As String
    Dim fName As String
    Dim n As Long, k As Long
    Dim Wb As Workbook
    Dim Ws As Worksheet
    Dim TenSh As String
    Application.ScreenUpdating = False
    On Error Resume Next
    MyPath = ThisWorkbook.Path
    fName = "k" & Sheet2.Range("D4") & ".xls"
    TenSh = "k" & Sheet2.Range("D4")
    Set Wb = Workbooks.Open(MyPath & "\" & fName)
    Set Ws = Wb.Worksheets(TenSh)
    k = Ws.Range("B65000").End(xlUp).Row
    n = Sheet1.Range("B65000").End(xlUp).Row
    If k > 7 Then Ws.Range("A8:W" & k).Copy Destination:=Sheet1.Range("A" & n + 1)
    Wb.Save
    Wb.Close
    Application.ScreenUpdating = True
    MsgBox "Xong", , "Thong Bao"
    Sheet1.Select
End Sub

Lưu ý : Sheet data luôn dược cập nhật tiếp từ dòng cuối cùng trở xuống. Nếu làm theo ý tưởng của tôi ở bài trên thì cứ mỗi lần cập nhật nó sẽ xóa dữ liệu cũ và cập nhật số liệu mới
Thân mến
 

van80

New Member
Hội viên mới
Ðề: Sao chép dữ liệu từ file đến file

Nếu muốn làm như chủ thớt thì đây là đoạn code

PHP:
Sub CopyData()
    Dim MyPath As String
    Dim fName As String
    Dim n As Long, k As Long
    Dim Wb As Workbook
    Dim Ws As Worksheet
    Dim TenSh As String
    Application.ScreenUpdating = False
    On Error Resume Next
    MyPath = ThisWorkbook.Path
    fName = "k" & Sheet2.Range("D4") & ".xls"
    TenSh = "k" & Sheet2.Range("D4")
    Set Wb = Workbooks.Open(MyPath & "\" & fName)
    Set Ws = Wb.Worksheets(TenSh)
    k = Ws.Range("B65000").End(xlUp).Row
    n = Sheet1.Range("B65000").End(xlUp).Row
    If k > 7 Then Ws.Range("A8:W" & k).Copy Destination:=Sheet1.Range("A" & n + 1)
    Wb.Save
    Wb.Close
    Application.ScreenUpdating = True
    MsgBox "Xong", , "Thong Bao"
    Sheet1.Select
End Sub

Lưu ý : Sheet data luôn dược cập nhật tiếp từ dòng cuối cùng trở xuống. Nếu làm theo ý tưởng của tôi ở bài trên thì cứ mỗi lần cập nhật nó sẽ xóa dữ liệu cũ và cập nhật số liệu mới
Thân mến

Cảm ơn anh xuanthanh ! Em sẽ vận dụng đoạn code của anh vào chương trình. Nhân tiện đây anh giúp em một vấn đề nữa nha!

- Trong sheet(main) của file tonghop tôi tạo một nút lệnh " xuat DL tung k"
- Dữ liệu xuất từ sheet(data) mã địa bàn điều tra là dựa vào cột U của sheet(data)
Cụ thể là:
Điều kiện xuất phải phụ thuộc vào ô D4 của sheet(main)
+ Khi ô D4 = 001 Tất cả các dòng có mã 001 của sheet(data) thì xuất thành file k1, khi xuất file phải mở hộp thoại save, dựa vào hộp thoại này để lưu trữ file k1
+ Khi ô D4 = 002 Tất cả các dòng có mã 002 của sheet(data) thì xuất thành file k2, khi xuất file phải mở hộp thoại save, dựa vào hộp thoại này để lưu trữ file k2
+ Tương tự như vậy cho các mã còn lại
File đính kèm : View attachment 13730

Cảm ơn anh !
 

Đính kèm

  • tonghop1.rar
    49.3 KB · Lượt xem: 426

xuanthanh

Member
Hội viên mới
Ðề: Sao chép dữ liệu từ file đến file

Thì dựa vảo đoạn code trên mà chỉnh lại thôi. Thế này nhé : Đoạn code trên chuyển dữ liệu từ các file lẻ vào file tổng hợp con yêu cầu mới thì làm ngược lại. Bạn vận dụng vào mà làm, sai đâu chỉ đó
Thân
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Kỹ thuật giải trình thanh tra BHXH

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top