Làm thế nào để lưu Excel 2007 dạng tự động theo ngày ?

Liên hệ QC

songqueqb

Thành viên hoạt động
Tham gia
20/1/10
Bài viết
131
Được thích
54
Chào anh em !
Anh em nào biết cách lưu file dạng này không chỉ dùm với
Mình có một file Excel 2007
mình muốn mỗi ngày làm việc khi mỏ file đó lên ( a.xls chẳn hạn )
khi sáng mở ra nó tự động lưu vào thư mục cho trước theo dạng 20022011 (theo ngày 20 tháng 02 năm 2011 )

Tìm hoài vấn đề này trên google mà không có. Nếu ai biết cách làm chỉ giúp thì vui quá

Cảm ơn nhiều !
 
Bạn chép đoạn code này vào thisworkbook chọn sự kiện workbookopen
Mã:
Sub luu()
Dim ddan As String, ngay As String
Application.DisplayAlerts = False
ddan = ThisWorkbook.Path
ngay = Format(Now(), "ddmmyyyy")
ActiveWorkbook.SaveAs ddan & "\" & ngay, 52, , , , False
End Sub
Không biết có đúng ý bạn không
 
Lần chỉnh sửa cuối:
Upvote 0
không được bạn ơi ,Mình làm Y chang vậy mà khi mở file ra có thấy gì đâu ta ?

Nếu được bạn hướng dẫn tỉ mỷ chút đi bạn ! Thanks trước nha !
cái khoản VBA mình kém quas :)
 
Upvote 0
không được bạn ơi ,Mình làm Y chang vậy mà khi mở file ra có thấy gì đâu ta ?

Nếu được bạn hướng dẫn tỉ mỷ chút đi bạn ! Thanks trước nha !
cái khoản VBA mình kém quas :)

Bạn làm theo nhé:
- Bạn mở VBA ra
- Tạo 1 module và dán đoạn code này vào:
PHP:
Sub luu()
Dim ddan As String, ngay As String
Application.DisplayAlerts = False
ddan = ThisWorkbook.Path
ngay = Format(Now(), "ddmmyyyy")
ActiveWorkbook.SaveAs ddan & "\" & ngay, 52, , , , False
End Sub
- Bạn click phải chuột vào ThisWorkBook và chọn View Code
- Bạn chọn sự kiện:
PHP:
Private Sub Workbook_Open()
    luu
End Sub
- Lưu lại và mở nhé!
 
Upvote 0
Bạn làm theo nhé:
- Bạn mở VBA ra
- Tạo 1 module và dán đoạn code này vào:
PHP:
Sub luu()
Dim ddan As String, ngay As String
Application.DisplayAlerts = False
ddan = ThisWorkbook.Path
ngay = Format(Now(), "ddmmyyyy")
ActiveWorkbook.SaveAs ddan & "\" & ngay, 52, , , , False
End Sub
- Bạn click phải chuột vào ThisWorkBook và chọn View Code
- Bạn chọn sự kiện:
PHP:
Private Sub Workbook_Open()
    luu
End Sub
- Lưu lại và mở nhé!


Mình làm y Chang và có lỗi xảy ra ! Nếu được bạn sửa lỗi dùm! Cảm ơn
 

File đính kèm

  • 1.JPG
    1.JPG
    38.6 KB · Đọc: 6
  • 2.JPG
    2.JPG
    35 KB · Đọc: 6
  • 3.JPG
    3.JPG
    39.9 KB · Đọc: 5
  • 4.JPG
    4.JPG
    31.4 KB · Đọc: 5
Upvote 0
Mình làm y Chang và có lỗi xảy ra ! Nếu được bạn sửa lỗi dùm! Cảm ơn
Dùng thử code này xem:
PHP:
Sub Auto_Open()
  Dim fName As String
  fName = ThisWorkbook.Path & "\" & Format(Now(), "ddmmyyyy") & ".xls"
  If Len(Dir(fName)) = 0 Then ThisWorkbook.SaveAs fName
End Sub
Code này chèn vào module nhé
 
Upvote 0
Dùng thử code này xem:
PHP:
Sub Auto_Open()
  Dim fName As String
  fName = ThisWorkbook.Path & "\" & Format(Now(), "ddmmyyyy") & ".xls"
  If Len(Dir(fName)) = 0 Then ThisWorkbook.SaveAs fName
End Sub
Code này chèn vào module nhé

Hay quá đã làm được rùi cảm ơn bạn nhiều

Tiện thể cho mình hỏi ! Nếu không muốn lưu chung một thư mục mà muốn lưu file đó ở một thư mục có đường dẫn khác thì làm sao ?
 
Upvote 0
Hay quá đã làm được rùi cảm ơn bạn nhiều

Tiện thể cho mình hỏi ! Nếu không muốn lưu chung một thư mục mà muốn lưu file đó ở một thư mục có đường dẫn khác thì làm sao ?
Thì bạn sửa đoạn ThisWorkbook.Path & "\" thành cái gì đó tùy ý bạn, vì dụ thế này:
PHP:
Sub Auto_Open()
  Dim fName As String
  fName = "D:\Excel\" & Format(Now(), "ddmmyyyy") & ".xls"
  If Len(Dir(fName)) = 0 Then ThisWorkbook.SaveAs fName
End Sub
Code này sẽ lưu file vào thư mục D:\Excel
 
Upvote 0
Hay quá đã làm được rùi cảm ơn bạn nhiều

Tiện thể cho mình hỏi ! Nếu không muốn lưu chung một thư mục mà muốn lưu file đó ở một thư mục có đường dẫn khác thì làm sao ?
Nếu vậy bạn thay ngay chỗ thisworkbook.path bằng 1 đường dẫn bạn muốn lưu ví dụ: fName = "D:\Data" & "\" & Format(Now(), "ddmmyyyy") & ".xls"
 
Upvote 0
Cảm ơn bạn rất nhiều .Mình đã làm được rùi :)

Chúc năm mới vui vẻ
 
Upvote 0
Cảm ơn bạn rất nhiều .Mình đã làm được rùi :)

Chúc năm mới vui vẻ
Tôi suy nghĩ lại thấy nên sửa code thế này mới ổn:
PHP:
Sub Auto_Open()
  Dim fName As String
  fName = ThisWorkbook.Path & "\" & Format(Now(), "ddmmyyyy") & ".xls"
  If Len(Dir(fName)) = 0 Then ThisWorkbook.SaveCopyAs fName
End Sub
Tức dùng SaveCopyAs chứ không phải SaveAs ----> Nếu dùng SaveAs, sau khi mở file xong thì ta sẽ thao tác trên file mới chứ không phải file cũ
Bạn chú ý điều này nha!
 
Upvote 0
Anh em ơi cho hỏi tý
Sao chay trên Ecexl 2003 thì OK còn Ecexl 2007 lại k chay được ta ?
làm thế nào để chạy được trên Ecexl 2007 vậy chỉ mình chút đi đang cần quá
Hôm qua ở nhà có Excel 2003 nên tưởng chạy được rùi ai dè vào Công ty Ecexl 2007 vẫn bó tay huuhuhu
 
Upvote 0
Anh em ơi cho hỏi tý
Sao chay trên Ecexl 2003 thì OK còn Ecexl 2007 lại k chay được ta ?
làm thế nào để chạy được trên Ecexl 2007 vậy chỉ mình chút đi đang cần quá
Hôm qua ở nhà có Excel 2003 nên tưởng chạy được rùi ai dè vào Công ty Ecexl 2007 vẫn bó tay huuhuhu
Chạy trên Excel 2003 hay Excel 2007 gì cũng được.. nhưng với code trên bạn nên đưa vào 1 file có định dang xls là ăn tiền liền
(đương nhiên macro không thể chạy được với file xlsx rồi ---> Điều đó ai cũng biết mà)
 
Upvote 0
Thực tình là không được mà bác
Xem qua file em đính kèm và thử mở với 2003-2007 coi

Bên 2003 thì OK còn 2007 lại k được Chán quá !
 

File đính kèm

  • 14022011.rar
    52 KB · Đọc: 3
Upvote 0
Thực tình là không được mà bác
Xem qua file em đính kèm và thử mở với 2003-2007 coi

Bên 2003 thì OK còn 2007 lại k được Chán quá !
Hình như bạn chưa sửa lại code thì phải:
PHP:
Sub Auto_Open()
  Dim fName As String
  fName = ThisWorkbook.Path & "\" & Format(Now(), "ddmmyyyy") & ".xls"
  If Len(Dir(fName)) = 0 Then ThisWorkbook.SaveCopyAs fName
End Sub
Tôi chạy trên Excel 2003 hay Excel 2007 đều OK cả
Trên Excel 2007 không biết bạn đã Enable Macro chưa nhỉ (nếu không thì làm sao code chạy)
Ngoài ra xin lưu ý thêm: Với code trên, nếu đã chạy 1 lần và lưu file dự phòng rồi thì đương nhiên trong cùng 1 ngày, nếu chạy file thêm lần nữa thì nó sẽ không lưu (vì đã có file lưu rồi, lưu thêm chi nữa)
 

File đính kèm

  • Main.rar
    45.4 KB · Đọc: 10
Upvote 0
Thực sự là từ xưa đến nay chỉ dùng excel 2003 chưa dùng 2007 bao giờ :)
Trên Excel 2007 không biết bạn đã Enable Macro chưa nhỉ (nếu không thì làm sao code chạy)
Ở Excel 2003 vào Tools > Macro (Atrl+f8)
Thế trong Excel 2007 nó nằm ở đâu thế bắc ? ( Xin giúp đỡ gà :) )
 
Upvote 0
Upvote 0
Web KT
Back
Top Bottom