Tự động lưu file PDF (Cần khắc phục tình trạng trùng tên bị xóa file cũ)

Liên hệ QC

duchoa89

Thành viên mới
Tham gia
11/10/16
Bài viết
47
Được thích
1
Anh nào giúp em với được không ạ! trả là em đã xuất tự động lưu được PDF nhưng có lúc em in 1 phiếu 2 lần cùng tên thì toàn phiếu sau đè mất phiếu trước ! vậy có cách nào để phiếu sau có (1) hoặc (2) được không ạ. hay 1,2,3,4,5,6... cũng đc chỉ cần giữ được tên là đc ạ! Dưới là code của em để xuất File PDF ! mong anh chị giúp đỡ
filepdf = ThisWorkbook.Path & "\" & Range("G10") & ".pdf"
ActiveSheet.ExportAsFixedFormat xlTypePDF, filepdf
 
Không được anh ơ. Nó vẫn báo lỗi á. có cách nào khác không anh
Chắc là bạn không khai báo biến. Vậy thêm 1 câu khai báo xem sao. Code chạy tốt trên máy tính của mình

Dim filepdf As String
filepdf = ThisWorkbook.Path & "\" & Range("G10") & "_" & Date
ActiveSheet.ExportAsFixedFormat xlTypePDF, filepdf
 
Upvote 0
Chắc là bạn không khai báo biến. Vậy thêm 1 câu khai báo xem sao. Code chạy tốt trên máy tính của mình

Dim filepdf As String
filepdf = ThisWorkbook.Path & "\" & Range("G10") & "_" & Date
ActiveSheet.ExportAsFixedFormat xlTypePDF, filepdf
Em lại sửa vào nhưng cũng báo lỗi. Em gửi cái flie cho anh tham khảo chỉ giúp em với
 

File đính kèm

  • DU_LIEU.xlsm
    216.8 KB · Đọc: 20
Lần chỉnh sửa cuối:
Upvote 0
Em lại sửa vào nhưng cũng báo lỗi. Em gửi cái flie cho anh tham khảo chỉ giúp em với
Đành phải đánh võ rừng thử. Hên xui nha

Sub LUUDONTHUOC()
Dim filepdf
filepdf = ThisWorkbook.Path & "\" & Range("C5") & "_" & Date & ".pdf"
With CreateObject("scripting.filesystemobject")
If .FileExists(filepdf) Then Kill filepdf
End With
ActiveSheet.ExportAsFixedFormat xlTypePDF, filepdf
End Sub
 
Upvote 0
Đành phải đánh võ rừng thử. Hên xui nha

Sub LUUDONTHUOC()
Dim filepdf
filepdf = ThisWorkbook.Path & "\" & Range("C5") & "_" & Date & ".pdf"
With CreateObject("scripting.filesystemobject")
If .FileExists(filepdf) Then Kill filepdf
End With
ActiveSheet.ExportAsFixedFormat xlTypePDF, filepdf
End Sub
lẠI KHONG ĐƯỢC NỮA NÓ ÁO MÀU VÀNG CÁI DÒNG NÀY: ActiveSheet.ExportAsFixedFormat xlTypePDF, filepdf. KHÔNG À
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
Mọi người ơi giúp em với sao em làm theo câu lệnh này không ra vậy. nó chạy không được không à
Em muốn thêm ngày tháng vào câu lệnh này nè:
filepdf = ThisWorkbook.Path & "\" & Range("G10") & ".pdf"
ActiveSheet.ExportAsFixedFormat xlTypePDF, filepdf
Vấn đề tương tự bạn hỏi bên kia và tôi cũng đã trả lời bên kia.

https://www.giaiphapexcel.com/diend...df-khi-xuất-từ-file-excell.141212/post-908667
 
Upvote 0
Bạn viết 1 hàm tự tạo để làm việc này là được rồi. Ví dụ:
- Bạn có đường dẫn file ThisWorkbook.Path & "\" & Range("G10") & ".pdf"
- Bạn không biết đường dẫn này có tồn tại hay không
- Vậy bạn viết 1 hàm tự tạo, chẳng hạn tên là CreateSaveFileName có tác dụng kiểm tra đường dẫn trên, nếu chưa tồn tại thì để nguyên, tồn tại rồi thì bằng cách gì đó thêm các hậu tố (1)... (2)... (3) vào đến khi nào tạo ra được đường dẫn khả dụng thì thôi
Mã:
Private Function CreateSaveFileName(ByVal FileName As String) As String
  Dim n As Long
  Dim sFolder As String, sFile As String, sExt As String, sTmpFile As String
  sTmpFile = FileName
  With CreateObject("Scripting.FileSystemObject")
    sExt = .GetExtensionName(FileName)
    sFolder = .GetParentFolderName(FileName)
    sFile = .GetBaseName(FileName)
    Do While .FileExists(sTmpFile) = True
      n = n + 1
      sTmpFile = .BuildPath(sFolder, sFile & "(" & n & ")." & sExt)
    Loop
    CreateSaveFileName = sTmpFile
  End With
End Function
Giờ áp dụng bạn chỉ cần thế này:
Mã:
Dim filepdf  as string
filepdf = CreateSaveFileName(ThisWorkbook.Path & "\" & Range("G10") & ".pdf")
ActiveSheet.ExportAsFixedFormat xlTypePDF, filepdf
Vậy là xong thôi!
----------------------
(code viết sơ qua, không biết có xuất hiện lỗi tào lao nào không? Mời kiểm tra thử nhé)
Code quá ngon luôn! Cám ơn bác ạ!
 
Upvote 0
Em chào các anh, chị!
- Mong được mọi người trên diễn đàn GPE vui lòng giúp em đoạn code VBA tự động xuất file báo cáo (sheet 3) ra PDF chi tiết theo tên từng mã số nhân viên tại ô F3 và xóa file pdf trong 5 ngày hoặc cho phép lưu trùng tên. Ví dụ: 0002.pdf, 0003.pdf
- Chi tiết trong file đính kèm.
Xin cảm ơn mọi người!
 

File đính kèm

  • detailinout_t1.xlsm
    77.3 KB · Đọc: 5
Upvote 0
Em chào các anh, chị!
- Mong được mọi người trên diễn đàn GPE vui lòng giúp em đoạn code VBA tự động xuất file báo cáo (sheet 3) ra PDF chi tiết theo tên từng mã số nhân viên tại ô F3 và xóa file pdf trong 5 ngày hoặc cho phép lưu trùng tên. Ví dụ: 0002.pdf, 0003.pdf
- Chi tiết trong file đính kèm.
Xin cảm ơn mọi người!
File trên em đã thử làm 1 đoạn code nhưng vẫn bị lỗi là không xuất ra toàn bộ file pdf theo từng mã nhân viên mà chỉ xuất ra 1 file báo cáo mà còn bị sai email trên báo cáo và bị lỗi mất công thức ngay ô chứa email (nên em phải sử dụng data validation và ô trung gian).
Rất mong các anh chị giúp đỡ. Em cám ơn.
 

File đính kèm

  • 0067.Pdf
    171.3 KB · Đọc: 7
  • 0050.Pdf
    164.6 KB · Đọc: 1
  • detailinout_t1.xlsm
    80.1 KB · Đọc: 2
Upvote 0
File trên em đã thử làm 1 đoạn code nhưng vẫn bị lỗi là không xuất ra toàn bộ file pdf theo từng mã nhân viên mà chỉ xuất ra 1 file báo cáo mà còn bị sai email trên báo cáo và bị lỗi mất công thức ngay ô chứa email (nên em phải sử dụng data validation và ô trung gian).
Rất mong các anh chị giúp đỡ. Em cám ơn.
Thử xem. Có phải thế này không?
Vẫn code của bạn Tôi thêm đoạn code của anh @ndu96081631.
Cứ khi nhấn nút Loc Du Lieu thì sheet BaoCao đã được xuất sang 1 file pdf có tên trùng với mã số của nhân viên đang có mặt trên Sheet Bao Cao.(file PDF này sẽ được lưu ở cùng Folder với file Excel). Nếu file pdf đã có tên (trùng tên) thì file pdf cũ sẽ bị xóa.
 

File đính kèm

  • detailinout_t1.xlsm
    78.2 KB · Đọc: 11
Upvote 0
Thử xem. Có phải thế này không?
Vẫn code của bạn Tôi thêm đoạn code của anh @ndu96081631.
Cứ khi nhấn nút Loc Du Lieu thì sheet BaoCao đã được xuất sang 1 file pdf có tên trùng với mã số của nhân viên đang có mặt trên Sheet Bao Cao.(file PDF này sẽ được lưu ở cùng Folder với file Excel). Nếu file pdf đã có tên (trùng tên) thì file pdf cũ sẽ bị xóa.
File in ra 2 trang bạn có thể giúp in 1 trang từ cột B đến cột I không nếu lọc từng nhân viên và có thể tự động in hàng loạt theo mã nhân viên bằng 1 nút ấn. Cám ơn bạn rất nhiều.
 
Upvote 0
1/File in ra 2 trang bạn có thể giúp in 1 trang từ cột B đến cột I không nếu lọc từng nhân viên và có thể
1/File in ra 2 trang là do định dạng(căn lề của sheet BAO CAO). Bạn chỉnh lại lề sheet BAO CAO cho vừa 1 trang, thì khi ra file PDF cũng chỉ là 1 trang.
2/tự động in hàng loạt theo mã nhân viên bằng 1 nút ấn. Cám ơn bạn rất nhiều.
2/Tôi không biết viết code để in file PDF.
Tôi chỉ biết làm tự động tạo ra hàng loạt file PDF theo mã nhân viên.
Nhấn nút LỌC DỮ LIỆU để hiện form. Bạn hãy chọn mã số trong Combobox Từ và mã số đến trong combobox Den và nhấn nút Print và xem kết quả. hãy thử lại với mã số khác.
Khi chon dấu tich trong checkbox In toàn bộ và nhấn nút Print thì sẽ tạo ra hàng loạt file PDF theo mã nhân viên.
 

File đính kèm

  • detailinout_t1.xlsm
    84.8 KB · Đọc: 3
Upvote 0
1/File in ra 2 trang là do định dạng(căn lề của sheet BAO CAO). Bạn chỉnh lại lề sheet BAO CAO cho vừa 1 trang, thì khi ra file PDF cũng chỉ là 1 trang.

2/Tôi không biết viết code để in file PDF.
Tôi chỉ biết làm tự động tạo ra hàng loạt file PDF theo mã nhân viên.
Nhấn nút LỌC DỮ LIỆU để hiện form. Bạn hãy chọn mã số trong Combobox Từ và mã số đến trong combobox Den và nhấn nút Print và xem kết quả. hãy thử lại với mã số khác.
Khi chon dấu tich trong checkbox In toàn bộ và nhấn nút Print thì sẽ tạo ra hàng loạt file PDF theo mã nhân viên.
1647246464635.png
File bị lỗi khi chọn mã số, còn khi in toàn bộ danh sách thì chỉ được 10 mã nhân viên khác nhau nhưng cùng 1 bảng báo cáo. Bạn có thể xem lại giúp mình. Cám ơn bạn rất nhiều.
 
Upvote 0

File đính kèm

  • detailinout_t1.xlsm
    90.4 KB · Đọc: 2
Upvote 0
File pdf in ra lại giống nhau, mặc dù mã số và lúc ấn lọc báo cáo chạy khác nhau đối với trường hợp in toàn bộ.
Chỉnh tiếp. Hy vọng lần này đúng ý.
Tôi chưa Test kỹ, Bạn test kỹ báo lại kết quả.
 

File đính kèm

  • detailinout_t1.xlsm
    87.7 KB · Đọc: 6
Upvote 0
Chỉnh tiếp. Hy vọng lần này đúng ý.
Tôi chưa Test kỹ, Bạn test kỹ báo lại kết quả.
1647328904264.png
Báo cáo khi in toàn bộ thì không bị lỗi và các báo cáo đã đúng với từng mã nhân viên, nhưng in từ mã số đến mã số lại bị lỗi. Bạn xem lại giúp mình phần dữ liệu có email bên cột A sheet 2 mới chạy qua báo cáo (cell không có email thì không báo cáo).
Mình gửi lại file, file bạn gửi đã xóa công thức tại cột A sheet 2.
Cám ơn bạn nhiều.
 

File đính kèm

  • detailinout_t1.xlsm
    88 KB · Đọc: 3
Upvote 0
View attachment 273163
Báo cáo khi in toàn bộ thì không bị lỗi và các báo cáo đã đúng với từng mã nhân viên, nhưng in từ mã số đến mã số lại bị lỗi. Bạn xem lại giúp mình phần dữ liệu có email bên cột A sheet 2 mới chạy qua báo cáo (cell không có email thì không báo cáo).
Mình gửi lại file, file bạn gửi đã xóa công thức tại cột A sheet 2.
Cám ơn bạn nhiều.
Bạn xem file. Hy vọng đã đúng ý.
Chúc vui, khỏe, an toàn.
 

File đính kèm

  • detailinout_t1 (1).xlsm
    86.1 KB · Đọc: 18
Upvote 0
Web KT
Back
Top Bottom