Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    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

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Sao chép dữ liệu từ file đến file




    Trích dẫn Gửi bởi van80
    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



    Mã nguồn PHP:
    [COLOR=#000000]
    Sub CopyData[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]Dim MyPath [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String Dim fName [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String Dim n [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]k [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long Dim Wb [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Workbook Dim Ws [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Worksheet Dim TenSh [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ScreenUpdating [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]False On Error Resume Next MyPath [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]ThisWorkbook[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Path fName [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"k" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000BB]Sheet2[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"D4"[/COLOR][COLOR=#007700]) & [/COLOR][COLOR=#DD0000]".xls" [/COLOR][COLOR=#0000BB]TenSh [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"k" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000BB]Sheet2[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"D4"[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Set Wb [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Workbooks[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Open[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]MyPath [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#DD0000]"\" & fName) Set Ws = Wb.Worksheets(TenSh) k = Ws.Range("[/COLOR][COLOR=#0000BB]B65000[/COLOR][COLOR=#DD0000]").End(xlUp).Row n = Sheet1.Range("[/COLOR][COLOR=#0000BB]B65000[/COLOR][COLOR=#DD0000]").End(xlUp).Row If k > 7 Then Ws.Range("[/COLOR][COLOR=#0000BB]A8[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000BB]W[/COLOR][COLOR=#DD0000]" & k).Copy Destination:=Sheet1.Range("[/COLOR][COLOR=#0000BB]A[/COLOR][COLOR=#DD0000]" & n + 1) Wb.Save Wb.Close Application.ScreenUpdating = True MsgBox "[/COLOR][COLOR=#0000BB]Xong[/COLOR][COLOR=#DD0000]", , "[/COLOR][COLOR=#0000BB]Thong Bao[/COLOR][COLOR=#DD0000]" Sheet1.Select End Sub[/COLOR
    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

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Sao chép dữ liệu từ file đến file




    Trích dẫn Gửi bởi xuanthanh
    Nếu muốn làm như chủ thớt thì đây là đoạn code



    Mã nguồn PHP:
    [COLOR=#000000]
    Sub CopyData[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]Dim MyPath [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String Dim fName [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String Dim n [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]k [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long Dim Wb [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Workbook Dim Ws [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Worksheet Dim TenSh [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ScreenUpdating [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]False On Error Resume Next MyPath [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]ThisWorkbook[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Path fName [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"k" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000BB]Sheet2[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"D4"[/COLOR][COLOR=#007700]) & [/COLOR][COLOR=#DD0000]".xls" [/COLOR][COLOR=#0000BB]TenSh [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"k" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000BB]Sheet2[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"D4"[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Set Wb [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Workbooks[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Open[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]MyPath [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#DD0000]"\" & fName) Set Ws = Wb.Worksheets(TenSh) k = Ws.Range("[/COLOR][COLOR=#0000BB]B65000[/COLOR][COLOR=#DD0000]").End(xlUp).Row n = Sheet1.Range("[/COLOR][COLOR=#0000BB]B65000[/COLOR][COLOR=#DD0000]").End(xlUp).Row If k > 7 Then Ws.Range("[/COLOR][COLOR=#0000BB]A8[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000BB]W[/COLOR][COLOR=#DD0000]" & k).Copy Destination:=Sheet1.Range("[/COLOR][COLOR=#0000BB]A[/COLOR][COLOR=#DD0000]" & n + 1) Wb.Save Wb.Close Application.ScreenUpdating = True MsgBox "[/COLOR][COLOR=#0000BB]Xong[/COLOR][COLOR=#DD0000]", , "[/COLOR][COLOR=#0000BB]Thong Bao[/COLOR][COLOR=#DD0000]" Sheet1.Select End Sub[/COLOR
    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 !

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •