Viết Macro gửi mail (outlook) đính kèm file trong excel

Liên hệ QC

syquan

Thành viên mới
Tham gia
4/4/07
Bài viết
35
Được thích
2
Em có một vấn đề cấn các anh chị giúp đỡ:
Trong một file excel có chứa danh sách cột NCC,mail:
Tên NCC Mail Tiêu đề
CQ quandhv@gmail.com Đối chiếu NCC
HG abc@gmail.com Gửi NCC
NDC giaiphapexcel@gmail.com Gửi hóa đơn.

Và các file dinh kèm CQ1.xls, HG2.xls, NDC_CO.xls nằm trong folder: DinhKem (đường dẫn: D:\DinhKem).

Bây giờ em muốn viết một macro khi click chuột lên ô CQ thì sẽ tạo ra cửa sổ gửi mail outlook với nội dung:
To : quandhv@gmail.com
subject : Đối chiếu NCC
Attach : CQ1.xls

<việc này giống như gửi mail sử dụng Hyperlink nhưng Hyperlink lại không attach file kèm được và sbuject thì khó thay đổi>
Rất mong sự giúp đỡ từ anh chi.
Cảm ơn!!!
 
Em có một vấn đề cấn các anh chị giúp đỡ:
Trong một file excel có chứa danh sách cột NCC,mail:
Tên NCC Mail Tiêu đề
CQ quandhv@gmail.com Đối chiếu NCC
HG abc@gmail.com Gửi NCC
NDC giaiphapexcel@gmail.com Gửi hóa đơn.

Và các file dinh kèm CQ1.xls, HG2.xls, NDC_CO.xls nằm trong folder: DinhKem (đường dẫn: D:\DinhKem).

Bây giờ em muốn viết một macro khi click chuột lên ô CQ thì sẽ tạo ra cửa sổ gửi mail outlook với nội dung:
To : quandhv@gmail.com
subject : Đối chiếu NCC
Attach : CQ1.xls

<việc này giống như gửi mail sử dụng Hyperlink nhưng Hyperlink lại không attach file kèm được và sbuject thì khó thay đổi>
Rất mong sự giúp đỡ từ anh chi.
Cảm ơn!!!
Bạn tìm trong diễn đàn, hoặc những bài mình đã viết. Có nhiều bài tương tự như yêu cầu của bạn đấy. Hoặc bạn gởi file của bạn lên mới có thể giúp được.
 
Upvote 0
Viết Macro gửi mail (outlook) đính kèm file trong excel

Bạn tìm trong diễn đàn, hoặc những bài mình đã viết. Có nhiều bài tương tự như yêu cầu của bạn đấy. Hoặc bạn gởi file của bạn lên mới có thể giúp được.

Em gửi file đính kèm nhờ anh hỗ trợ dùm. Cảm ơn anh nhiều.
Đi Xa Được Ngàn Dặm, Khởi Đầu Một Bước Chân... Anh giúp em cái này thì coi như khởi đầu là nhiều bước chân rồi đấy. hjhjjj.
 

File đính kèm

  • GuiMailOutlook.xls
    69.5 KB · Đọc: 226
Upvote 0
Em gửi file đính kèm nhờ anh hỗ trợ dùm. Cảm ơn anh nhiều.
Đi Xa Được Ngàn Dặm, Khởi Đầu Một Bước Chân... Anh giúp em cái này thì coi như khởi đầu là nhiều bước chân rồi đấy. hjhjjj.

Thử code sau nhé:

Mã:
Private Sub CommandButton1_Click()
Dim OlApp As Object, OlMail As Object
Set OlApp = CreateObject("Outlook.Application")
Set OlMail = OlApp.createitem(olmailitem)
With OlMail
    .Recipients.Add [B3].Value
    .Subject = [C3].Value
    .Attachments.Add "DuongDanDenFileCanAtt."
    .Display
End With

End Sub
 
Upvote 0
Em gửi file đính kèm nhờ anh hỗ trợ dùm. Cảm ơn anh nhiều.
Đi Xa Được Ngàn Dặm, Khởi Đầu Một Bước Chân... Anh giúp em cái này thì coi như khởi đầu là nhiều bước chân rồi đấy. hjhjjj.
Thử cách này xem. Khi nào chọn vào côt E thì mới có cái nút bấm
....................
Mới up lại file. Bạn nào đã tải file về bị lỗi thì hãy thử lại file này.
 

File đính kèm

  • GuiMailOutlook.rar
    14.2 KB · Đọc: 321
Lần chỉnh sửa cuối:
Upvote 0
Công ty em dùng Outlook Express. Code trên chỉ chạy được với MS outlook. Anh giúp em viết lại dùng Outlook Express.
Cảm ơn anh nhiều.
 
Upvote 0
chào các bác,
Trong phần nội dung email em muốn lấy giá trị của nhiều cell thì phải viết ntn vậy (xuống dòng sau mỗi cell)? ví dụ:
nội dung mail:
1. giá trị cell(1,1)
2. Giá trị cell(1,2)
3....

Hiện em mới chỉ biết cách viết để lấy dữ liệu từ 1 cell như sau.
================
ub mailsend()
Dim OutApp As Object, OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.createitem(0)
With OutMail
.To = Cells(ActiveCell.Row, 2).Value
.Subject = Cells(ActiveCell.Row, 3).Value
.body = Sheet1.Range("b3").Value
'.Attachments.Add "D:\ST\" & Cells(ActiveCell.Row, 4)
.Display
End With
End Sub
==========
Mong các bác tận tình chỉ giúp.
Thanks
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn test thử như sau:

Mã:
Private Sub CommandButton1_Click()
Dim OlApp As Object, OlMail As Object, strbody As String, cell As Range
Set OlApp = CreateObject("Outlook.Application")
Set OlMail = OlApp.createitem(olmailitem)
strbody = ""
For Each cell In Range("A1:A5")
    strbody = strbody & cell.Value & vbNewLine
Next
With OlMail
    .Recipients.Add [B3].Value
    .Subject = [C3].Value
    .Body = strbody
    .Attachments.Add "DuongDanDenFileCanAtt."
    .Display
End With
End Sub
 
Upvote 0
Chào các anh em!
Mình đã tập hợp những file anh em gởi lên và chỉnh lại một chút, thì cũng được một file tương đối như mong muốn.
Nhưng mình vẫn còn vướng mắc 2 chỗ này.
Rất mong mấy anh em chỉ thêm cho mình học hỏi với.
1/ Mình muốn trong mail gởi đi có cả phần Signature, như những mail riêng lẻ đã được mặc định. (Vd: tên, chức vụ, địa chỉ, điện thoại, email....)
2/ Mình muốn đính kèm chung 1 tập tin vào trong tất cả các email muốn gởi đi, mình đã thử như hướng dẫn trên mà vẫn chưa được. (Vd: tập tin tên: ABC.doc ; nằm ở đường dẫn: E:\XYZ\ thì mình làm cách nào?)
Cảm ơn các anh, em rất nhiều!
 
Upvote 0
Chào các anh em!
Mình đã tập hợp những file anh em gởi lên và chỉnh lại một chút, thì cũng được một file tương đối như mong muốn.
Nhưng mình vẫn còn vướng mắc 2 chỗ này.
Rất mong mấy anh em chỉ thêm cho mình học hỏi với.
1/ Mình muốn trong mail gởi đi có cả phần Signature, như những mail riêng lẻ đã được mặc định. (Vd: tên, chức vụ, địa chỉ, điện thoại, email....)
2/ Mình muốn đính kèm chung 1 tập tin vào trong tất cả các email muốn gởi đi, mình đã thử như hướng dẫn trên mà vẫn chưa được. (Vd: tập tin tên: ABC.doc ; nằm ở đường dẫn: E:\XYZ\ thì mình làm cách nào?)
Cảm ơn các anh, em rất nhiều!
Bạn có thể tham khảo bài viết sau:
[h=1]Gửi email tính lương cho từng người[/h]
 
Upvote 0
Bạn syquan ơi, vấn đề của bạn giải quyết được chưa chỉ cho mình với.
Công ty mình cũng dùng Outlook Express.
 
Upvote 0
Thử cách này xem. Khi nào chọn vào côt E thì mới có cái nút bấm
....................
Mới up lại file. Bạn nào đã tải file về bị lỗi thì hãy thử lại file này.
Bạn ơi sao phần đính kèm file lại bị lỗi nhỉ.

Nếu mình viết như này
C:\Users\TueAnh\Documents\Tinh OT le tet.xlsx thì chạy tốt nhưng nếu viết theo form bạn chỉ
"C:\Users\TueAnh\Documents" & Cells(ActiveCell.Row, 4)
Thì lại lỗi
P/s: Cảm ơn bạn nhé, mình làm được rồi, thiếu dấu\ ở sau documents
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn có thể tham khảo bài viết sau:
[h=1]Gửi email tính lương cho từng người[/h]
Anh ơi, cho em hỏi là từ cái file của anh, em muốn khi bấm vào nút Send Mail thì tại ô đó sẽ biến mất ô Send mail và thay vào đó là email đang đăng nhập tại Outlook và giờ ngày tháng năm.

Sau đó ô outlook popup 1 cái mail ra thì có sẵn file mình đang làm đó nó sẽ trở thành file đính kèm luôn, thì mình làm cách nào vậy anh.

Em cảm ơn.
 
Upvote 0
Web KT
Back
Top Bottom