Xin code gửi phiếu lương hàng loạt qua outlook (VBA)

Liên hệ QC

August93

Thành viên mới
Tham gia
27/8/17
Bài viết
23
Được thích
4
Giới tính
Nữ
Chào anh/chị ạ,

Em có đọc các bài về gửi phiếu lương hàng loạt bằng vba, nhưng chủ yếu là gửi theo số cột từ bảng lương tổng. Sếp bên em lại muốn theo form mẫu của công ty.
Trong file em gửi có 1 sheet "Bảng lương tổng" và 1 sheet "Payslip" là mẫu để gửi đến nhân viên.
Anh/chị giúp em với ạ.
Em cảm ơn Anh/Chị nhiều nhiều ạ
 

File đính kèm

Dạ theo file gốc của Bác em đã sửa như sau:
Khai thêm :
Dim strMaNV As String, strNdung As String
strMaNV = shSendMail.Range("F14").Value
strNdung = shSendMail.Range("F15").Value
Thêm strMaNV trong strSubject và trong strFullNameFileAttached thành:
strSubject = shSendMail.Range("C18").Value & strMaNV
strFullNameFileAttached = strPath & "Bang luong" & strMaNV & ".pdf"
Thêm strNdung trong strMailBody thành:
strMailBody = shSendMail.Range("C21").Value & strNdung & "<BR><BR>" & _
shSendMail.Range("C22").Value & "<BR><BR>" & _
shSendMail.Range("C23").Value & "<BR><BR>" & _
shSendMail.Range("C24").Value & "<BR><BR>" & _
shSendMail.Range("C25").Value
Nhưng kết quả nó chỉ ra đúng giá trị ở trong ô F14/F15 chứ không nhảy theo file dữ liệu ạ.
strMaNV = shSendMail.Range("F14").Value
strNdung = shSendMail.Range("F15").Value
hai dòng trên là gì nhỉ?
 
Upvote 0
Xin chào, lâu rồi không thấy nhỉ.
Hic bữa giờ công việc tùm lum đi tùm la... giờ dịch nên mới ngồi yêu một chỗ để chọc thiên hạ bạn ơi...
Bài đã được tự động gộp:

strMaNV = shSendMail.Range("F14").Value
strNdung = shSendMail.Range("F15").Value
hai dòng trên là gì nhỉ?
tôi hỏi bạn 2 dòng trên là gì?
 
Upvote 0
Dạ em cũng chỉ bắt trước làm theo Bác chứ không hiểu gì về code ạ. Mong Bác chỉ bảo thêm.
vì thế tôi mới hỏi bạn nội dung 2 dòng mà tôi hỏi là gì???
strMaNV = shSendMail.Range("F14").Value
strNdung = shSendMail.Range("F15").Value
 
Upvote 0
Xin chào bạn mình đã thực hiện theo file trên ok nhưng mình cần thêm có password kèm theo khi mở file attach thì làm như nào ạ. Mình cảm ơn
xin lỗi bạn, mình botay cái dzụ này...vì VBA khi tạo ra file PDF từ một vùng Range trên Excel không có cái dzụ pass cho file PDF ah...
mà muốn làm thì sau khi tao ra file PDF rồi thì dùng một phần mền bên thứ 3 để tạo pass cho file PDF này.
Bài đã được tự động gộp:

Vâng. Nhờ Bác sửa giúp ạ.
tôi có biết gì để sửa đâu?
tất cả là củ tôi VÍ DỤ...
Bạn sử dụng thì có cái riêng của bạn... tôi có được sờ-rờ-mó... tới đâu mà biết sửa cái gì? chỉnh cái gì? theo ý bạn?

mà ngộ nha... tôi hỏi bạn ý nghĩa 2 dòng này
strMaNV = shSendMail.Range("F14").Value
strNdung = shSendMail.Range("F15").Value

sao mà bạn hổng trả lời cho tôi nhỉ???
 
Upvote 0
tôi có biết gì để sửa đâu?
tất cả là củ tôi VÍ DỤ...
Bạn sử dụng thì có cái riêng của bạn... tôi có được sờ-rờ-mó... tới đâu mà biết sửa cái gì? chỉnh cái gì? theo ý bạn?

mà ngộ nha... tôi hỏi bạn ý nghĩa 2 dòng này
strMaNV = shSendMail.Range("F14").Value
strNdung = shSendMail.Range("F15").Value

sao mà bạn hổng trả lời cho tôi nhỉ???
Dạ 2 dòng trên em không hiểu rõ ạ, em chỉ bắt trước từ code dòng trên của Bác để thêm 1 giá trị mới cần thay đổi khi gửi mail ạ.
Bác sửa giúp để được như này ạ.
Ví dụ nhân viên 1 sẽ là:
Subject: "Gởi bảng lương LVH"
File đính kèm: "Bang luong LVH.pdf"
Nội dung: "Gởi tới anh/chị bảng lương tháng: MAY

File mẫu em sử dụng của Bác và đã sửa nhưng do không hiểu gì nên không thực hiện đúng mục đích.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
file này là của tôi mà có gì mà sửa?còn muou61n làm gì trên 2 file này thì đọc kỹ mà thực hiện theo thôi
dữ liệu thì tự lấy riêng của mình mà làm ra....
coi kỹ cái phần "cấu hình"
View attachment 263724
và nội dung mail:

View attachment 263726

Cảm ơn bạn. Mình thấy có code lưu ra file excell có password vào một folder xong lại tự động att vào có được không bạn. Liệu có chỉnh sửa kết hợp vào cùng file Tool Send Mail Outlook - AttPDF của bạn được ko ạ.
Bài đã được tự động gộp:

Cảm ơn bạn. Mình thấy có code lưu ra file excell có password vào một folder xong lại tự động att vào có được không bạn. Liệu có chỉnh sửa kết hợp vào cùng file Tool Send Mail Outlook - AttPDF của bạn được ko ạ.

xin lỗi bạn, mình botay cái dzụ này...vì VBA khi tạo ra file PDF từ một vùng Range trên Excel không có cái dzụ pass cho file PDF ah...
mà muốn làm thì sau khi tao ra file PDF rồi thì dùng một phần mền bên thứ 3 để tạo pass cho file PDF này.
Bài đã được tự động gộp:


tôi có biết gì để sửa đâu?
tất cả là củ tôi VÍ DỤ...
Bạn sử dụng thì có cái riêng của bạn... tôi có được sờ-rờ-mó... tới đâu mà biết sửa cái gì? chỉnh cái gì? theo ý bạn?

mà ngộ nha... tôi hỏi bạn ý nghĩa 2 dòng này
strMaNV = shSendMail.Range("F14").Value
strNdung = shSendMail.Range("F15").Value

sao mà bạn hổng trả lời cho tôi nhỉ???
Cho mình hỏi thêm một chút ạ. mã nhân viên bên mình 001 đến 888 nhưng khi mình gửi thì mã nhân viên 001 đến 099 nó ko được. Do mình định dạng ô thứ tự là '001 nên ko nhận, nhưng mình ko muốn định dạng lại ô đó vì phải sủa nhiều hàm kèm theo. Bạn có cách nào để nhận ô thứ tự mã nhân viên có dấu ' đằng trước ko ạ từ '001 đến '099. Mình xin cảm ơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ 2 dòng trên em không hiểu rõ ạ, em chỉ bắt trước từ code dòng trên của Bác để thêm 1 giá trị mới cần thay đổi khi gửi mail ạ.
Bác sửa giúp để được như này ạ.
Ví dụ nhân viên 1 sẽ là:
Subject: "Gởi bảng lương LVH"
File đính kèm: "Bang luong LVH.pdf"
Nội dung: "Gởi tới anh/chị bảng lương tháng: MAY

File mẫu em sử dụng của Bác và đã sửa nhưng do không hiểu gì nên không thực hiện đúng mục đích.


View attachment 263736
@thnghiachau Em cảm ơn Bác đã hỏi nhiều lần đã thôi thúc em tự mò mẫm và dùng được theo ý rồi ạ nhưng lại gặp tình trạng mail cho nhân viên này lại bị file đính kèm bảng lương nhân viên khác. Bác xem chỗ vòng for giúp em với ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn. Mình thấy có code lưu ra file excell có password vào một folder xong lại tự động att vào có được không bạn. Liệu có chỉnh sửa kết hợp vào cùng file Tool Send Mail Outlook - AttPDF của bạn được ko ạ.
Bài đã được tự động gộp:




Cho mình hỏi thêm một chút ạ. mã nhân viên bên mình 001 đến 888 nhưng khi mình gửi thì mã nhân viên 001 đến 099 nó ko được. Do mình định dạng ô thứ tự là '001 nên ko nhận, nhưng mình ko muốn định dạng lại ô đó vì phải sủa nhiều hàm kèm theo. Bạn có cách nào để nhận ô thứ tự mã nhân viên có dấu ' đằng trước ko ạ từ '001 đến '099. Mình xin cảm ơn.
bạn đưa code của bạn tôi chỉnh lại cho
 
Upvote 0
@thnghiachau Em cảm ơn Bác đã hỏi nhiều lần đã thôi thúc em tự mò mẫm và dùng được theo ý rồi ạ nhưng lại gặp tình trạng mail cho nhân viên này lại bị file đính kèm bảng lương nhân viên khác. Bác xem chỗ vòng for giúp em với ạ.
chính vì tôi thấy bạn bị sai nên tôi mới hỏi bạn giải thích 2 dòng đó, mà bạn không nói nên tôi cũng bótay
 
Upvote 0

File đính kèm

Upvote 0
Gio lam sao de ket hop duoc hai file nay ấn gui mail la có thể tự động att file có mat khau bạn. thanks ban
cái của bạn là copy sheet"Form" qua workbook mới và lưu lại với Pass là mã NV.
Còn cái mình làm là trích xuất một vùng range thành pdf nên của minh không làm Pass cho file PDF này được
 
Upvote 0

File đính kèm

Upvote 0
Xin chào GPE,
Nhân tiện đọc qua cái chủ đề này, mình có làm một cái công cụ gởi mail hàng loạt.
Cái mình làm là gởi bằng 2 cách:
1/ bằng Gmail sử dung CDO với file đính kèm là file PDF tạo ra từ một vùng chỉ định (Vùng chuyển Pdf)
Bạn phải thiết lập Server, Port => 2 cái này như hình và điền Address Mail, Pass
View attachment 242339
2/ Bằng Outlook mail.
=> không cần cấu hình thêm, chỉ cần có cài Outlook trên máy tính mà thôi

Có phần "cấu hình" file Data để có thể sử dụng với mọi kiểu file data mà người sử dụng có sẵn.
Như thế sẽ rất dễ dùng và tiện rất nhiều.
Các bạn xem file đính kèm và nghiên cứu kỹ để sử dụng nha!
mình có kèm "Vi du FIle Du Lieu.xlsx".
Ứng với file data này thì cấu hình sẽ là:
View attachment 242301

PS: Code mình dùng rất nhiều nguồn khác nhau, trong đó chủ yếu là trên GPE này. Xin cám ơn tất cả.
bạn cho mình zalo với. mình hỏi 1 chút về VBA ạ
 
Upvote 0
Web KT

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

Back
Top Bottom