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
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
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
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
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é)
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!
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 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.
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.
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.
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.
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.
View attachment 273116
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.
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.
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.