Gửi email từ excel bằng VBA (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

huangocthanhtam

Thành viên chính thức
Tham gia
10/6/13
Bài viết
98
Được thích
3
Chào các Anh GPE,

Em có một bài toán đang giải mà chưa ra, nhờ các Anh chỉ giáo.

Mục đích: Gửi chi tiết bảng lương tới email của từng người (Tê, ID code theo tên, thông tin v.v.v) có sẵn

1. VD em có chi tiết 100 người nhận lương từ sheet DATA & TEMPLATE : TỪ Ô A4:AC8
2. Từ ô B10:F24 là cái template nội dung em muốn gửi tới email của người đó tương ứng với email từng người
3. Từ A2:A5 sheet Nội Dung email là nội dung CỐ ĐỊNH trong mỗi email gửi cho mọi người,
4. Sheet gửi email là tổng hợp thông tin của từng nhân viên.

Mong mọi ng hỗ trợ
 

File đính kèm

(1) File excel bạn nên thiết kế:
1 sheet là dữ liệu về lương của một danh sách nhân sự (mã nhân sự, thông tin công và lương, email - có thể để ở cột cuối ứng với nhân sự đó)
1 sheet là form bảng lương: Tiêu đề bảng lương kỳ/ tháng, nội dung bảng lương, ở cuối ghi thông tin liên hệ nhận phản hồi của nhân sự...

(2) Nội dung email:
pa1: Tách file excel theo sheet form rồi đính kèm vào mail và gửi cho từng nhân sự
pa2: Copy luôn cái form vào nội dung mail rồi gửi cho từng nhân sự

(3) Bạn có thể tìm bài viết đã có trên diễn đàn về tham khảo trước... cuối tuần tính tiếp.
 
(1) File excel bạn nên thiết kế:
1 sheet là dữ liệu về lương của một danh sách nhân sự (mã nhân sự, thông tin công và lương, email - có thể để ở cột cuối ứng với nhân sự đó)
1 sheet là form bảng lương: Tiêu đề bảng lương kỳ/ tháng, nội dung bảng lương, ở cuối ghi thông tin liên hệ nhận phản hồi của nhân sự...

(2) Nội dung email:
pa1: Tách file excel theo sheet form rồi đính kèm vào mail và gửi cho từng nhân sự
pa2: Copy luôn cái form vào nội dung mail rồi gửi cho từng nhân sự

(3) Bạn có thể tìm bài viết đã có trên diễn đàn về tham khảo trước... cuối tuần tính tiếp.
ôi zời lâu quá không gặp sư phụ, không biết còn nhớ em không, Để em làm lại như anh nói rồi em gửi tiếp nhé, Thanks anh
 
Em gửi lại file trình bày theo sự hướng dẫn của anh, Mong các Anh support
 

File đính kèm

Em gửi lại file trình bày theo sự hướng dẫn của anh, Mong các Anh support
Bạn tải 2 file dưới rồi về mở cả 2 file đó nhé.
(File .xlam là phần vba, file .xlsx là file dữ liệu của bạn)
Rồi click nút như hình:

Send mail.jpg

nhập STT ở cột A sheet "Data Luong" vào 2 textbox đó...
 

File đính kèm

Lần chỉnh sửa cuối:
Lần chỉnh sửa cuối:
Lần này nó ra mấy lỗi anh ạ,

1. KHông hiểu sao sheet Data nó ko cho nhập liệu
2. Lỗi như hình phía dưới,

Thanks anh
loi 1.jpg
 
Lần này nó ra mấy lỗi anh ạ,

1. KHông hiểu sao sheet Data nó ko cho nhập liệu
2. Lỗi như hình phía dưới,

Thanks anh
Bạn test trên file mới hay file mình gửi ở bài #5?

Theo hình thì chưa biết lỗi tại đâu? Bạn xóa file addins cũ đi rồi tải file mới về thử xem...
 
Bạn test trên file mới hay file mình gửi ở bài #5?

Theo hình thì chưa biết lỗi tại đâu? Bạn xóa file addins cũ đi rồi tải file mới về thử xem...

Xóa đi rồi cài lại thì lại gửi được nhưng nó lại báo lỗi như bên dưới, sau đó lại quay lại tình trạng cũ giông em nêu ở trên, Em tải cả 2 file của anh ở #5Capture2.JPG
 
Bạn tải lại cả 2 file bài #5 ...

Hi anh nếu email người nhận là gmail thì không dc, nó bị lỗi, Anh xem hình nhé
Em có thêm 4 câu hỏi
1. Nếu muôn chèn thêm logo vào form thì làm sao ạ, Em chèn rồi mà ko được
2. Phần nội dung email nó không đổi font chữ như mình viết
3. Nếu thay đổi màu đậm/nhạt của cữ hoặc đường line trong form thì qua email nó ko thay đổi theo
4. Email gửi không kèm theo chữ ký, làm sao để đổi, Thanks anh
Capture5.jpg
 
Hi anh nếu email người nhận là gmail thì không dc, nó bị lỗi, Anh xem hình nhé
Em có thêm 4 câu hỏi
1. Nếu muôn chèn thêm logo vào form thì làm sao ạ, Em chèn rồi mà ko được
2. Phần nội dung email nó không đổi font chữ như mình viết
3. Nếu thay đổi màu đậm/nhạt của cữ hoặc đường line trong form thì qua email nó ko thay đổi theo
4. Email gửi không kèm theo chữ ký, làm sao để đổi, Thanks anh
- Khi làm, mình chạy thử bằng gmail của mình... nên nếu bạn bị lỗi thì xem hệ thống mail của bên bạn xem...
- Chèn logo, chữ ký: để mình xem lại
- Nội dung trong form thì vẫn được chứ? (sử dụng font unicode...)
 
- Khi làm, mình chạy thử bằng gmail của mình... nên nếu bạn bị lỗi thì xem hệ thống mail của bên bạn xem...
- Chèn logo, chữ ký: để mình xem lại
- Nội dung trong form thì vẫn được chứ? (sử dụng font unicode...)

Nội dung form thì ok ạ, chỉ là chỉnh đậm/nhạt nó không hiển thị, để em test lại email
 
- Khi làm, mình chạy thử bằng gmail của mình... nên nếu bạn bị lỗi thì xem hệ thống mail của bên bạn xem...
- Chèn logo, chữ ký: để mình xem lại
- Nội dung trong form thì vẫn được chứ? (sử dụng font unicode...)
Hi Anh, Em đã tự tìm cách sữa dc hết các lỗi trên rồi, Thanks anh
 
Bạn tải 2 file dưới rồi về mở cả 2 file đó nhé.
(File .xlam là phần vba, file .xlsx là file dữ liệu của bạn)
Rồi click nút như hình:

View attachment 172016

nhập STT ở cột A sheet "Data Luong" vào 2 textbox đó...
Chào anh,
Anh có thể cho em xin đoạn code của addins này được không? Em đang cần dùng tính năng này nhưng phải sửa lại chút xíu nên xin anh đoạn code để tùy biến.
Em cám ơn anh.
 
chào bạn
Mình đang đọc cách để gửi nhiều mail cho nhiều người, mỗi người đính kèm một tệp khác nhau. mình xem ở trên và tải file sendmail.xlam nhưng không mở được . Bạn hỗ trợ mình với. Mình gửi kèm danh sách email và file dữ liệu. Phần tách các sheet ra các file mình làm được rồi nhưng phần gửi đi các email thì chưa đcj
 

File đính kèm

Chào các anh chị,

Em có làm thử như file anh befaint làm nhưng máy em chạy MacOs nên báo lỗi dòng Outlook.Application thì em phải sửa lại thì như thế nào ạh.

Nhân tiện cho em hỏi thêm file lương em đính kèm, nếu muốn thêm password vào mỗi file excel (pass là ID và 6 số cuối chứng minh nhân dân) thì phải làm sao nhờ anh chị chỉ giúp (em đã xem các bài có chỉ nhưng em làm không được ạh)

Cám ơn các anh ở GPE
 

File đính kèm

  • SendMail.xlsx
    SendMail.xlsx
    16.4 KB · Đọc: 47
  • Screen Shot 2018-08-17 at 9.02.27 PM.png
    Screen Shot 2018-08-17 at 9.02.27 PM.png
    404.5 KB · Đọc: 73
Cho minh hoi, bây giờ mình muốn gửi thư mời theo danh sách email. Thứ tự thư mời là tên file word xếp theo thứ tự email để trên 1 folder. Có cách nào để gửi thư mời cùng lúc cho nhiều người. Mỗi người 1 thư trên 1 file word. Xin cảm ơn
 
Cho minh hoi, bây giờ mình muốn gửi thư mời theo danh sách email. Thứ tự thư mời là tên file word xếp theo thứ tự email để trên 1 folder. Có cách nào để gửi thư mời cùng lúc cho nhiều người. Mỗi người 1 thư trên 1 file word. Xin cảm ơn
Có nghĩa là bây giờ bạn có danh sách gửi thư và file word đính kèm cần gửi thư cho từng người đúng không.Nhưng vấn đề ở đây là tên của file word gửi đi có cùng tên với mail cần gửi không.Mà bạn cho cái file với vài file word ví dụ coi.
 
Em có file tính lương như file đính kèm. Em nhờ các thầy và các anh, chị giúp cho em để gửi lương cho từng người theo form có sẵn với ạ. Về nội dung email em có xem theo gợi í của bác befaint thì nều được em xin các Thầy và anh, chị giúp em theo p/a 2 (Copy luôn cái form vào nội dung mail rồi gửi cho từng nhân sự ), nếu ko thì Thầy và các anh , chị giúp cách nào cũng được. Em xin cảm ơn ạ !
 

File đính kèm

Bạn tải 2 file dưới rồi về mở cả 2 file đó nhé.
(File .xlam là phần vba, file .xlsx là file dữ liệu của bạn)
Rồi click nút như hình:

View attachment 172016

nhập STT ở cột A sheet "Data Luong" vào 2 textbox đó...

Em ko chạy được addin, anh hướng dẫn giúp em cách chạy file SendEmail.xlam với ạ. Em đã cài addin rồi mà khi mở nó vẫn ko ra cái gì cả. Em cảm ơn anh !
 
Em có file tính lương như file đính kèm. Em nhờ các thầy và các anh, chị giúp cho em để gửi lương cho từng người theo form có sẵn với ạ. Về nội dung email em có xem theo gợi í của bác befaint thì nều được em xin các Thầy và anh, chị giúp em theo p/a 2 (Copy luôn cái form vào nội dung mail rồi gửi cho từng nhân sự ), nếu ko thì Thầy và các anh , chị giúp cách nào cũng được. Em xin cảm ơn ạ !
Bạn dùng thử cách mình đang dùng nhé.
Mình sưu tập code trên mạng và chắp nối kiểu Macro Recorder nên cũng ngô nghê lắm. Dùng tạm nhé. Dùng được hay không thì báo lại nhé

[Xin phép được rút lại file đính kèm do người hỏi đã được đáp ứng và do trong file có tài khoản email cá nhân]
 
Lần chỉnh sửa cuối:
Bạn dùng thử cách mình đang dùng nhé.
Thế nếu là công ty may, có rất nhiều các cô các bác lớn tuổi *** không biết tải và cài đặt thì lấy gì để đọc PDF? Sao không làm thêm, chèn thêm bảng vào nội dung thư?

***

:D
 
Thế nếu là công ty may, có rất nhiều các cô các bác lớn tuổi *** không biết tải và cài đặt thì lấy gì để đọc PDF? Sao không làm thêm, chèn thêm bảng vào nội dung thư?

***

:D
Bác ơi, bác xem lại giúp em chứ vấn đề của em khác cái đó mà bác. Em là muốn gửi từng Phiếu lương riêng rẽ cho từng người lao động theo số liệu tính công của mỗi người mà bác. Cảm ơn bác đã note cho em !
 
Bác ơi, bác xem lại giúp em chứ vấn đề của em khác cái đó mà bác. Em là muốn gửi từng Phiếu lương riêng rẽ cho từng người lao động theo số liệu tính công của mỗi người mà bác. Cảm ơn bác đã note cho em !
Tôi chú thích là trong chủ đề kia có đoạn "công ty may, có rất nhiều các cô các bác lớn tuổi". Thế thôi. :D
 
Bạn dùng thử cách mình đang dùng nhé.
Mình sưu tập code trên mạng và chắp nối kiểu Macro Recorder nên cũng ngô nghê lắm. Dùng tạm nhé. Dùng được hay không thì báo lại nhé
Cảm ơn Minh Khai đã giúp đỡ, nhưng em chạy thì bị lỗi như sau ạ
BL.png

Nhờ bác Minh Khai xem giúp em. Em xin cảm ơn !
 
Bạn tải 2 file dưới rồi về mở cả 2 file đó nhé.
(File .xlam là phần vba, file .xlsx là file dữ liệu của bạn)
Rồi click nút như hình:

View attachment 172016

nhập STT ở cột A sheet "Data Luong" vào 2 textbox đó...
anh ơi, cách này đúng là phương án mà em cần, tuy nhiên anh có thể cho em xin code để tùy chỉnh theo file của em được không?
--------
P/S: đã thấy code, cảm ơn anh !
 
Bạn tải 2 file dưới rồi về mở cả 2 file đó nhé.
(File .xlam là phần vba, file .xlsx là file dữ liệu của bạn)
Rồi click nút như hình:

View attachment 172016

nhập STT ở cột A sheet "Data Luong" vào 2 textbox đó...
anh ơi, em có tìm hiểu code nhưng không biết cách làm, em gửi lại file dữ liệu anh làm giúp em với ạ, cảm ơn anh
 

File đính kèm

@befaint : anh ơi, sau 1 hồi mày mò, thì em làm được phần dữ liệu rồi. Tuy nhiên khi nhận được mail thì phần định dạng bảng biểu bị mất, anh giúp em với ạ
 

File đính kèm

@befaint : anh ơi, sau 1 hồi mày mò, thì em làm được phần dữ liệu rồi. Tuy nhiên khi nhận được mail thì phần định dạng bảng biểu bị mất, anh giúp em với ạ
Cũng hơi lạ nhưng bạn thử như sau: mở Excel đã có add-in -> Alt + F11 -> nếu VBAProject (SendEmail.xlam) chưa mở thì click dấu + để mở -> phải chuột trên Form_SendMail -> chọn View Code -> tìm đến Sub SendMail -> sau dòng Sub SendMail(chk As Boolean) thì thêm dòng
Mã:
Const olFormatHTML = 2

-> tìm đến dòng With OutMail -> sau dòng With OutMail thì thêm
Mã:
.BodyFormat = olFormatHTML

-> chú ý có dấu chấm đằng trước -> chọn menu File -> chọn Save SendEmail.xlam -> thử gửi thư.
 
Lần chỉnh sửa cuối:
Cũng hơi lạ nhưng bạn thử như sau: mở Excel đã có add-in -> Alt + F11 -> nếu VBAProject (SendEmail.xlam) chưa mở thì click dấu + để mở -> phải chuột trên Form_SendMail -> chọn View Code -> tìm đến Sub SendMail -> sau dòng Sub SendMail(chk As Boolean) thì thêm dòng
Mã:
Const olFormatHTML = 2

-> tìm đến dòng With OutMail -> sau dòng With OutMail thì thêm
Mã:
.BodyFormat = olFormatHTML

-> chú ý có dấu chấm đằng trước -> chọn menu File -> chọn Save SendEmail.xlam -> thử gửi thư.
anh ơi, em thử rồi mà kết quả vẫn vậy à, không có thay đổi gì hết trơn á, anh xem giùm em với
 

File đính kèm

@befaint : anh ơi, sau 1 hồi mày mò, thì em làm được phần dữ liệu rồi. Tuy nhiên khi nhận được mail thì phần định dạng bảng biểu bị mất, anh giúp em với ạ
Bạn thử code này xem sao:
Mã:
Sub Sendmail()
Dim OutApp As Object
Dim OutMail As Object
Dim ETo As String, Chude As String
Dim i As Long, LValue As long

With Sheets("Bang Luong")
    LValue = .Range("A" & .Range("A" & Rows.Count).End(xlUp).Row-1).Value
End With
With Sheets("Form Email")
    For i = 1 To LValue
        .Range("H10").Value = i
        ETo = .Range("F4").Value
        Chude = .Range("B2").Value
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        With OutMail
            .To = Eto
            .cc = ""
            .BCC = ""
            .Subject = Chude
            '.Attachments.Add ActiveWorkbook.FullName
            .Display '.send: Nếu muốn gửi ngay
            Dim wdDoc As Object     '## Word.Document
            Dim wdRange As Object   '## Word.Range
            Set wdDoc = OutMail.GetInspector.WordEditor
            Set wdRange = wdDoc.Range(0, 0)
            Sheets("Form Email").Range("B4:G38").Copy
            wdRange.Paste 'Special (Value): nếu muốn gửi nội dung dạng value (không có định dạng)
        End With
        Application.CutCopyMode = False
        Set OutMail = Nothing
        Set OutApp = Nothing
    Next i
End With

End Sub
 
Lần chỉnh sửa cuối:
Bạn thử code này xem sao:
Mã:
Sub Sendmail()
Dim OutApp As Object
Dim OutMail As Object
Dim ETo As String, Chude As String
Dim i As Long, LValue As long

With Sheets("Bang Luong")
    LValue = .Range("A" & .Range("A" & Rows.Count).End(xlUp).Row-1).Value
End With
With Sheets("Form Email")
    For i = 1 To LValue
        .Range("H10").Value = i
        ETo = .Range("F4").Value
        Chude = .Range("B2").Value
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        With OutMail
            .To = Eto
            .cc = ""
            .BCC = ""
            .Subject = Chude
            '.Attachments.Add ActiveWorkbook.FullName
            .Display '.send: Nếu muốn gửi ngay
            Dim wdDoc As Object     '## Word.Document
            Dim wdRange As Object   '## Word.Range
            Set wdDoc = OutMail.GetInspector.WordEditor
            Set wdRange = wdDoc.Range(0, 0)
            Sheets("Form Email").Range("B4:G38").Copy
            wdRange.Paste 'Special (Value): nếu muốn gửi nội dung dạng value (không có định dạng)
        End With
        Application.CutCopyMode = False
        Set OutMail = Nothing
        Set OutApp = Nothing
    Next i
End With

End Sub

Khi em chọn From....To... rồi nhấn send thì nó báo lỗi này ạ, anh/chị xem giùm em với

1576553384732.png
1576553287864.png
 

File đính kèm

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

Back
Top Bottom