Gửi email tính lương cho từng người

Liên hệ QC

zine

Thành viên mới
Tham gia
21/8/07
Bài viết
27
Được thích
13
Hi các anh chị
Em có bảng tính lương cho tất cả CBCNV trong công ty
Bây giờ em muốn sau khi tính lương, gửi cách tính lương chi tiết của từng người cho người đó qua email.(thông tin lương của người nào, chỉ người đó biết)
Em gửi kèm file, mọi người có cách gì giúp em nhé, đa tạ.
 

File đính kèm

  • Gui email tu dong theo danh sach.xlsx
    13.2 KB · Đọc: 2,820
Dạ, em cảm ơn bác nhiều ạ.
Nhờ có đoạn code này em hiểu cách viết và sửa lại theo ý mình rồi ạ.
Em cũng có tham khảo đoạn code để khi gửi mail, nó sẽ là dạng cột (ý em ở đây là bảng ạ). Tuy nhiên, trong quá trình edit lại gặp phải 1 số lỗi.
Vậy nhờ bác Hai Lúa Miền Tây thêm giúp em tính năng: gửi mail đi là dạng bảng được không ạ?

Em cảm ơn bác trước ạ!
BẠn thử code sau thử:

Mã:
Sub SendMail2()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range
    Dim i As Integer
    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    With Sheet2
        For Each cell In Sheet3.[C1:C1000]
            i = i + 1
            If Len(cell) > 0 Then
                .[A1:K1000].AutoFilter Field:=11, Criteria1:=cell
                .[A1:K1000].AutoFilter Field:=7, Criteria1:="Incomplete"
                 If .Cells(Rows.Count, 7).End(xlUp).Row > 1 Then
                    .[A1].CurrentRegion.CopyPicture
                    Set OutMail = OutApp.CreateItem(0)
                    With OutMail
                       .To = cell.Value
                       .Subject = "PRODUCTS: " & Cells(cell.Row, "C").Value
                       .HTMLBody = " <B>Xin chao " & cell.Offset(, -1) & "</B>" & _
                                        "<BR><BR><BR><BR>Neu co thac mac gi xin phan hoi som" & _
                                        "<BR><B>Xin cam on,</B><BR>" & _
                                        "<BR><B>HLMT</B>"
                       .Display
                    End With
                    SendKeys "({DOWN})", True
                    SendKeys "({DOWN})", True
                    SendKeys "^({v})", True
                End If
            End If
        Next
        .ShowAllData
    End With
    Application.ScreenUpdating = True
    
End Sub

Lưu ý chuyển Table về range nhé.
 

File đính kèm

  • GuiMail.xlsm
    28.6 KB · Đọc: 107
Upvote 0
Mình có file bảng lương với code. Tại công trình, mỗi người có thể có 1 email riêng hoặc 1 người (quản lý) đại diện cho nhân viên tại công trình đó. HIện tại, mỗi người 1 email riêng thì gửi mail bình thường, còn 1 email đại diện cho nhiều người thì chưa gửi được, nó chỉ gửi đc người đầu tiên trong danh sách tại công trình.
Mọi người giúp mình đc ko, để dù trùng địa chỉ email thì vẫn gửi đc.
Xin cám ơn.

Mình cũng quan tâm đến vấn đề này.
Muốn gửi 2 dòng có email trùng như thì xử lý thế nào nhỉ, hiện nó chỉ đọc email đầu tiên thôi.

Ai biết chỉ dùm.
Cảm ơn nhiều!
 
Upvote 0
Mình cũng quan tâm đến vấn đề này.
Muốn gửi 2 dòng có email trùng như thì xử lý thế nào nhỉ, hiện nó chỉ đọc email đầu tiên thôi.

Ai biết chỉ dùm.
Cảm ơn nhiều!
Bạn lấy file ở bài #221 rồi vào sheet [Personel info], cột email, bạn gõ thêm địa chỉ email chung trong 1 cell và cách nhau bằng dấu chấm phẩy nhé.
 
Upvote 0
BẠn thử code sau thử:

Mã:
Sub SendMail2()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range
    Dim i As Integer
    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    With Sheet2
        For Each cell In Sheet3.[C1:C1000]
            i = i + 1
            If Len(cell) > 0 Then
                .[A1:K1000].AutoFilter Field:=11, Criteria1:=cell
                .[A1:K1000].AutoFilter Field:=7, Criteria1:="Incomplete"
                 If .Cells(Rows.Count, 7).End(xlUp).Row > 1 Then
                    .[A1].CurrentRegion.CopyPicture
                    Set OutMail = OutApp.CreateItem(0)
                    With OutMail
                       .To = cell.Value
                       .Subject = "PRODUCTS: " & Cells(cell.Row, "C").Value
                       .HTMLBody = " <B>Xin chao " & cell.Offset(, -1) & "</B>" & _
                                        "<BR><BR><BR><BR>Neu co thac mac gi xin phan hoi som" & _
                                        "<BR><B>Xin cam on,</B><BR>" & _
                                        "<BR><B>HLMT</B>"
                       .Display
                    End With
                    SendKeys "({DOWN})", True
                    SendKeys "({DOWN})", True
                    SendKeys "^({v})", True
                End If
            End If
        Next
        .ShowAllData
    End With
    Application.ScreenUpdating = True
    
End Sub

Lưu ý chuyển Table về range nhé.
Em rất cảm ơn bác HLMT nhiều ạ!
Em đã làm đc và hiểu đc nhiều cái
 
Upvote 0
Anh chị giúp em.
Em có 1 file excel khoảng 100 sheet. Có 1 sheet có đầy đủ tên, địa chỉ email. và các sheet khác tương ứng với tên từng nhân viên là kết quả hoạt động của họ theo từng ngày.
Khi cuối tháng để đối chiếu và thông báo kết quả làm việc, em sẽ gửi mail cho toàn bộ nhân viên và đính kèm sheet tương ứng của họ.
Anh chị xem giúp em trong file đính kèm

Em cảm ơn nhiều
 

File đính kèm

  • FILE-KẾT-QUẢ-HOẠT-ĐỘNG.xlsx
    27.4 KB · Đọc: 23
Upvote 0
Em có xin được 1 file gửi mail như trong đính kèm. Nhưng để khởi tạo nút Send thì em chưa làm được.
Anh/Chị xem giúp em
Anh chị giúp em.
Em có 1 file excel khoảng 100 sheet. Có 1 sheet có đầy đủ tên, địa chỉ email. và các sheet khác tương ứng với tên từng nhân viên là kết quả hoạt động của họ theo từng ngày.
Khi cuối tháng để đối chiếu và thông báo kết quả làm việc, em sẽ gửi mail cho toàn bộ nhân viên và đính kèm sheet tương ứng của họ.
Anh chị xem giúp em trong file đính kèm

Em cảm ơn nhiều
 

File đính kèm

  • Gui Mail.xls
    87.5 KB · Đọc: 26
Upvote 0
Anh chị giúp em.
Em có 1 file excel khoảng 100 sheet. Có 1 sheet có đầy đủ tên, địa chỉ email. và các sheet khác tương ứng với tên từng nhân viên là kết quả hoạt động của họ theo từng ngày.
Khi cuối tháng để đối chiếu và thông báo kết quả làm việc, em sẽ gửi mail cho toàn bộ nhân viên và đính kèm sheet tương ứng của họ.
Anh chị xem giúp em trong file đính kèm

Em cảm ơn nhiều

Nếu bạn quan tâm mình có thể giúp tùy biến code cho phù hợp với mục đích.
Gửi cho tất cả các Email nhiều cỡ nào cũng được tùy vào Server or Cấu hình máy. Nội dung thay đổi theo từng người , gửi luôn file đính kèm cũng Ok. CC or Bcc cho nhiều người tùy thích , Liên hệ Mail : ductaigtvt@gmail.com.
 
Upvote 0
BẠn thử code sau thử:

Mã:
Sub SendMail2()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range
    Dim i As Integer
    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    With Sheet2
        For Each cell In Sheet3.[C1:C1000]
            i = i + 1
            If Len(cell) > 0 Then
                .[A1:K1000].AutoFilter Field:=11, Criteria1:=cell
                .[A1:K1000].AutoFilter Field:=7, Criteria1:="Incomplete"
                 If .Cells(Rows.Count, 7).End(xlUp).Row > 1 Then
                    .[A1].CurrentRegion.CopyPicture
                    Set OutMail = OutApp.CreateItem(0)
                    With OutMail
                       .To = cell.Value
                       .Subject = "PRODUCTS: " & Cells(cell.Row, "C").Value
                       .HTMLBody = " <B>Xin chao " & cell.Offset(, -1) & "</B>" & _
                                        "<BR><BR><BR><BR>Neu co thac mac gi xin phan hoi som" & _
                                        "<BR><B>Xin cam on,</B><BR>" & _
                                        "<BR><B>HLMT</B>"
                       .Display
                    End With
                    SendKeys "({DOWN})", True
                    SendKeys "({DOWN})", True
                    SendKeys "^({v})", True
                End If
            End If
        Next
        .ShowAllData
    End With
    Application.ScreenUpdating = True
    
End Sub

Lưu ý chuyển Table về range nhé.
Có trường hợp xuất hiện 01 mail item trong vònglặp, vẫn có đầy đủ To, Subject,.. nhưng lại không có Picture (nghĩa là khôngpaste được hoặc lại paste ra chỗ khác), cái này sẽ xử lý như thế nào được ạ??
 
Upvote 0
Dear bác Hai Lúa Miền Tây,

Có cách nào khi gửi File đính kèm trong email, Thay vì File *.xlsx thì Excel xuất ra file PDF và có set pass (pass là cung cấp theo 1 cột ở Sheet1 theo các thông tin khác kèm theo đó ạ)

Nếu được bác giúp e với nhé.

Cảm ơn bác
 
Upvote 0
Em đính kèm lại file ạ.

Nhờ Anh Hai Lua Mien Tay giúp em với ạ

em cảm ơn
 

File đính kèm

  • guimail 1.2-ver1.xls
    74 KB · Đọc: 11
Upvote 0
Có trường hợp xuất hiện 01 mail item trong vònglặp, vẫn có đầy đủ To, Subject,.. nhưng lại không có Picture (nghĩa là khôngpaste được hoặc lại paste ra chỗ khác), cái này sẽ xử lý như thế nào được ạ??
BẠn có thể linh hoạt và điều chỉnh trong code, dời xuống hay dời lên để thực hiện theo ý.
 
Upvote 0
Kính nhờ anh/chị hỗ trợ giúp em với ạ.

Hàng tháng em phải gửi danh sách khách hàng xuống đơn vị kèm theo file đính kèm cho từng đơn vị ( 2-4 file tùy đơn vị ). Anh/chị/em giúp em với ạ.

file các thông tin e muốn gửi như tệp đính kèm. Đây chỉ là ví dụ 2 đơn vị, còn bt em phải gửi là gần 300 đơn vị như này ạ. e xin cảm ơn
 

File đính kèm

  • Documents.7z
    55 KB · Đọc: 8
Upvote 0
Kính nhờ các bro hỗ trợ giúp em với ạ.
Hàng tháng em phải gửi phiếu lương cho nhân viên trong công ty. Trước đây em toàn in ra và gửi cho từng người, bây giờ giám đốc yêu cầu gửi phiếu lương qua email. Em có một file excel trong đó có 1 sheet tính lương sheet[PQ] và sheet phiếu lương dùng để gửi mail sheet[Gui Mail auto]. Giám đốc yêu cầu như sau: Khi nhấn nút gửi trong Sheet[Gui Mail auto] thì sẽ lấy thông tin trong sheet tính lương ( 2 sheet này liên kết với nhau thông qua số thứ tự) vào trong sheet gửi mail. Sau đó kiểm tra điều kiện gửi mail ở cột BP trong sheet tính lương. Nếu thõa điều kiện thì copy nội dung sheet trong sheet[Gui Mail auto] dưới dạng hình ảnh và gửi mail cho nhân viên. Địa chỉ gửi mail nằm trong cột BO sheet tính lương. Email được gửi cho tất cả nhân viên nếu thõa điều kiện.
Em cảm ơn các bác nhiều ạ.
 

File đính kèm

  • Auto Mail Luong.xlsm
    249.4 KB · Đọc: 13
Upvote 0
Kính nhờ các bro hỗ trợ giúp em với ạ.
Hàng tháng em phải gửi phiếu lương cho nhân viên trong công ty. Trước đây em toàn in ra và gửi cho từng người, bây giờ giám đốc yêu cầu gửi phiếu lương qua email. Em có một file excel trong đó có 1 sheet tính lương sheet[PQ] và sheet phiếu lương dùng để gửi mail sheet[Gui Mail auto]. Giám đốc yêu cầu như sau: Khi nhấn nút gửi trong Sheet[Gui Mail auto] thì sẽ lấy thông tin trong sheet tính lương ( 2 sheet này liên kết với nhau thông qua số thứ tự) vào trong sheet gửi mail. Sau đó kiểm tra điều kiện gửi mail ở cột BP trong sheet tính lương. Nếu thõa điều kiện thì copy nội dung sheet trong sheet[Gui Mail auto] dưới dạng hình ảnh và gửi mail cho nhân viên. Địa chỉ gửi mail nằm trong cột BO sheet tính lương. Email được gửi cho tất cả nhân viên nếu thõa điều kiện.
Em cảm ơn các bác nhiều ạ.

Em đã làm được nhưng bị lỗi như thế này. Nếu thay dislay = send thì trong thân mail không có nội dung. Nội dung này được dán vào sheet[Gui Mail auto]. Nó hiện lên rất nhiều mail trống. Các bác xem giúp em với ạ.
 

File đính kèm

  • Auto Mail Luong.xlsm
    254.8 KB · Đọc: 25
Upvote 0
Mọi người cho em hỏi làm thế nào để mình định dạng nội dung trong email vậy ? VD như tô màu chữ, chỉnh kích thước, in đậm ...
 

File đính kèm

  • sendmail.xls
    56.5 KB · Đọc: 16
Upvote 0
Upvote 0
Upvote 0
Web KT
Back
Top Bottom