Tạo file backup sang thư mục khác

Liên hệ QC
Có thành viên nào test hộ cái file mình làm phía trên giúp bạn lee chung nhé. Chắc chắn bạn đã làm gì sai đấy. Cái file mình gởi lên bên trong có 1 sự kiện Workbook Open nữa đấy nhé. Khi mở file sẽ tư động chạy Sub hengio. Khi đến thời điểm ấn định sẽ gọi tiếp thủ tục File_Copy

File này em vừa test xong, nó vẫn chạy bình thường mà.

@Bạn leechung,

Bạn download file của anh quanghai1969 về và chỉ sửa đường dẫn thôi thì chắc vẫn chạy bình thường.
Nhưng nếu bạn chỉ copy 2 sub và dán vào Module thôi thì không chạy vì còn thiếu 1 sub sự kiện đối với workbook để kích hoạt sub hengio

Mã:
Private Sub Workbook_Open()
hengio
End Sub

Còn 1 điều nữa là bạn đã cho phép Macro hoạt động chưa ?
 
Lần chỉnh sửa cuối:
Cám ơn 2 bạn nhắc nhở mình đã thử lại nhiều lần trên file của bạn quanghai1969 như sau(file vẫn luôn mở nhé và đã chọn enable macros): đổi giờ sớm hơn giờ hiện hành trên máy 5ph xong bấm save thoát cửa sổ visual basic xong bấm save file tiếp tục bấm menu/macro/macro hengio bấm nút RUN chờ sau 5ph kiểm tra E:\BACKUP đúng là file đã được copy vào, nhưng nếu chỉ đổi giờ mà không RUN macro hengio thì chờ bao lâu cũng chẳng copy gì cã. Còn bạn mhung12005 nói nếu bạn chỉ copy 2 sub và dán vào Module thôi thì không chạy vì còn thiếu 1 sub sự kiện đối với workbook để kích hoạt sub hengio mình không hiểu phải làm gì trong trường hợp này kiến thức mình còn nông cạn lắm. Vậy các bạn xem giúp để nó thật sự tự động copy nhé.
 
Tên hàm:
MkDir
Mô tả:
MkDir path
Tạo thư mục
Tham số:
path
Đường dẫn nơi muốn tạo thư mục
Ví dụ:
Option Explicit
Private Sub Form_Load()
MkDir "D:\My Folder"
End Sub
Cái này sẽ giúp bạn bảo vđược nội dung cá nhân hiệu qu

Bạn ơi code của bạn mình không biết áp dụng như thế nào và dùng như thế nào để đạt được yêu cầu này: mình có 4 file excell trong cùng thư mục, mình muốn hằng ngày cứ đến 8h tối là 4 file này tự động lưu vào thư mục "Du lieu Backup" của ổ E nằm ở một máy tính khác có kết nối mạng nội bộ với nhau.
 
Lần chỉnh sửa cuối:
Cám ơn 2 bạn nhắc nhở mình đã thử lại nhiều lần trên file của bạn quanghai1969 như sau(file vẫn luôn mở nhé và đã chọn enable macros): đổi giờ sớm hơn giờ hiện hành trên máy 5ph xong bấm save thoát cửa sổ visual basic xong bấm save file tiếp tục bấm menu/macro/macro hengio bấm nút RUN chờ sau 5ph kiểm tra E:\BACKUP đúng là file đã được copy vào, nhưng nếu chỉ đổi giờ mà không RUN macro hengio thì chờ bao lâu cũng chẳng copy gì cã. Còn bạn mhung12005 nói nếu bạn chỉ copy 2 sub và dán vào Module thôi thì không chạy vì còn thiếu 1 sub sự kiện đối với workbook để kích hoạt sub hengio mình không hiểu phải làm gì trong trường hợp này kiến thức mình còn nông cạn lắm. Vậy các bạn xem giúp để nó thật sự tự động copy nhé.
Mở cái file của mình gởi, vào cửa sổ code, bấm chuột vào đối tượng ThisWorkbook sẽ hiểu.
 
Mở cái file của mình gởi, vào cửa sổ code, bấm chuột vào đối tượng ThisWorkbook sẽ hiểu.

Cám ơn bạn đã mở rộng tầm nhìn cho mình, sau khi xem code mình đã nhận thấy đúng là file của bạn không có gì sai cả mà lổi ở chổ dùng không đúng cách. khi file được mở lập tức kích hoạt sub hengio và nó nhớ cái giờ có sẵn trong code, vì vậy khi mình đổi giờ trong code, dù đã lưu lại đi nữa thì máy vẫn nhớ giờ hẹn lúc đầu và đương nhiên là không thể nào copy theo giờ hẹn mới được, để khắc phục: sau khi đổi giờ, lưu file code để code cập nhật giờ hẹn mới và đặc biệt là phải thoát hẵn file luôn rồi mới mở file trở lại để sub hengio kích hoạt cập nhật giờ mình mới thay đổi, chắc chắn 100% là sẻ copy đúng theo giờ sửa đổi của mình. Vì kiến thức mình kém cỏi đã làm phiền các bạn cho mình xin lổi các bạn nhé.
 
Bạn thử code này xem sao. Sửa lại tên đường dẫn theo thực tế.
Mình cũng không dám chắc là code chạy được.
Code sẽ copy các file Excel từ thư mục F:\DATA sang E:\BACKUP và ghi đè lên những file cũ
Lưu ý là file này phải đang được mở vào thời điểm ấn định
PHP:
Sub File_Copy()
Application.ScreenUpdating = False
   With CreateObject("Scripting.FileSystemObject")
      .CopyFile "F:\DATA\*.xl*", "E:\BACKUP\", True
   End With
Application.ScreenUpdating = True
End Sub
Bạn sửa số 20 thành 1 số khác để hẹn giờ chạy code
PHP:
Sub hengio()
Application.OnTime TimeValue("20:00:00"), "File_Copy"
End Sub

Bạn quanghai1969 mến, mình đã tạo đường dẫn copy tự động sang máy khác được rồi nhờ bạn đổi code để file tự động copy cứ mổi giờ một lần nhé, vì window hoặc ổ cứng máy này có vấn đề rồi có thể hư đột xuất xin cám ơn bạn trước nhe.
 
Bạn quanghai1969 mến, mình đã tạo đường dẫn copy tự động sang máy khác được rồi nhờ bạn đổi code để file tự động copy cứ mổi giờ một lần nhé, vì window hoặc ổ cứng máy này có vấn đề rồi có thể hư đột xuất xin cám ơn bạn trước nhe.

Cũng sử dụng file trên, nhưng sửa lại 1 chút như thế này
PHP:
Sub File_Copy()
Application.ScreenUpdating = False
   With CreateObject("Scripting.FileSystemObject")
      .CopyFile "F:\DATA\*.xl*", "E:\BACKUP\", True
   End With
   hengio
Application.ScreenUpdating = True
End Sub

PHP:
Sub hengio()
Application.OnTime Now + TimeValue("00:59:59"), "File_Copy"
End Sub
 
Bạn thử code này xem sao. Sửa lại tên đường dẫn theo thực tế.
Mình cũng không dám chắc là code chạy được.
Code sẽ copy các file Excel từ thư mục F:\DATA sang E:\BACKUP và ghi đè lên những file cũ
Lưu ý là file này phải đang được mở vào thời điểm ấn định
PHP:
Sub File_Copy()
Application.ScreenUpdating = False
   With CreateObject("Scripting.FileSystemObject")
      .CopyFile "F:\DATA\*.xl*", "E:\BACKUP\", True
   End With
Application.ScreenUpdating = True
End Sub
Bạn sửa số 20 thành 1 số khác để hẹn giờ chạy code
PHP:
Sub hengio()
Application.OnTime TimeValue("20:00:00"), "File_Copy"
End Sub
Cho mình hỏi có cách nào không mỡ file mà đến giờ ấn định vẫn lưu tự động được không (file được lưu trên server, cùng thư mục, máy vẫn chạy 24/24), Như vậy đến ngày hôm sau mình vào sẻ thấy file mới và được đổi tên lại. (thay đổi ngày)
VD: file ngày hôm trước: Z:\thong bao 25-01-2013
ngày hôm sau vào vẫn trên ỗ Z có thêm: Z:\thong bao 26-01-2013

Trân trọng cảm ơn
 
Cho mình hỏi có cách nào không mỡ file mà đến giờ ấn định vẫn lưu tự động được không (file được lưu trên server, cùng thư mục, máy vẫn chạy 24/24), Như vậy đến ngày hôm sau mình vào sẻ thấy file mới và được đổi tên lại. (thay đổi ngày)
VD: file ngày hôm trước: Z:\thong bao 25-01-2013
ngày hôm sau vào vẫn trên ỗ Z có thêm: Z:\thong bao 26-01-2013
Trân trọng cảm ơn

Câu trả lời cuối cùng là nếu file không đang mở thì code không chạy được
 
Bạn thử code này xem sao. Sửa lại tên đường dẫn theo thực tế.
Mình cũng không dám chắc là code chạy được.
Code sẽ copy các file Excel từ thư mục F:\DATA sang E:\BACKUP và ghi đè lên những file cũ
Lưu ý là file này phải đang được mở vào thời điểm ấn định
PHP:
Sub File_Copy()
Application.ScreenUpdating = False
   With CreateObject("Scripting.FileSystemObject")
      .CopyFile "F:\DATA\*.xl*", "E:\BACKUP\", True
   End With
Application.ScreenUpdating = True
End Sub
Bạn sửa số 20 thành 1 số khác để hẹn giờ chạy code
PHP:
Sub hengio()
Application.OnTime TimeValue("20:00:00"), "File_Copy"
End Sub

Nhờ Anh QuangHai và mọi người thêm vào Code trên để khi sao lưu sẽ không ghi đè lên file cũ mà sao chép vào với tên mới
Vd tên cũ là Baocao thì File sao chép lần 1 là Baocao1, lần 2 Baocao2, lần 3 Baocao3
 
Máy tính của mình bị nhiễm con vi rút ẩn thư mục, khi tao một thư mục mới , copy file vào đó nó lại tự động dồn các thư mục này vào ổ đĩa C hoặc D. Mình đã dùng AVG 2012 free edition update hiện tại để diệt mà không được, các Anh/Chị nào phần mềm nào hay giúp mình khắc phục con này với ?
 
trên này toàn nhiều cao thủ không ai giúp được vấn đề này à ?
 
Máy tính của mình bị nhiễm con vi rút ẩn thư mục, khi tao một thư mục mới , copy file vào đó nó lại tự động dồn các thư mục này vào ổ đĩa C hoặc D. Mình đã dùng AVG 2012 free edition update hiện tại để diệt mà không được, các Anh/Chị nào phần mềm nào hay giúp mình khắc phục con này với ?
Bạn tham khảo ở đây
http://forum.bkav.com.vn/showthread.php?17947-Virus-lam-an-folder
http://4vn.eu/forum/showthread.php?t=67634
http://www.ddth.com/showthread.php/125630-Virus-l%C3%A0m-%E1%BA%A9n-folder-v%C3%A0-t%E1%BA%A1o-file-autorun-inf
 
Sub File_Copy()
Application.ScreenUpdating = False
With CreateObject("Scripting.FileSystemObject")
.CopyFile "F:\DATA\*.xl*", "E:\BACKUP\", True
End With
hengio
Application.ScreenUpdating = True
End Sub



Sub hengio()
Application.OnTime Now + TimeValue("00:59:59"), "File_Copy"
End Sub

chủ đề này hơi cũ nhưng mới với em, xin làm phiền a quanghai chút ạ, cái chỗ code em bôi đỏ có phải là tên workbook mà mình muốn backup ko ạ...! và em test thử code thấy 1 vấn đề nho nhỏ tnay ạ. nếu 2 thư mục cùng 1 máy tính thì run code ngon, nhưng code ko chạy đc vs 2 thư mục # máy tính...
 
Web KT

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

Back
Top Bottom