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
Anh HLMT ơi, ý của em là muốn tách dữ liệu của từng người rồi đính kèm vào mail hì...có gì anh giúp em nhá !
Chỉnh code trên lại như sau:

Mã:
Private Sub Send_File_Click()
    Dim OutlookApp As Object, MailItem As Object, i As Integer
    Dim FileName As String, WB As Workbook
    Application.DisplayAlerts = False
    With Sheet1
        For i = 1 To Application.WorksheetFunction.CountA(.[A6:A1000])
            .[A5:A1000].AutoFilter Field:=1, Criteria1:=.Cells(i + 5, 1)
            .[A4].CurrentRegion.Copy Sheet2.Range("A3")
            .[A4].CurrentRegion.CopyPicture
            Sheets("Luong").Copy
            Set WB = ActiveWorkbook
            FileName = "BangLuong" '.Cells(i + 5, 1)
            On Error Resume Next
            Kill "D:\" & FileName
            WB.SaveAs FileName:="D:\" & FileName
            Set OutlookApp = CreateObject("Outlook.Application")
            Set MailItem = OutlookApp.CreateItem(0)
            With MailItem
               .To = Sheet1.Cells(i + 5, 2)
               .Subject = "Bang luong cua: " & Sheet1.Cells(i + 5, 1)
               .Attachments.Add WB.FullName
               .HTMLBody = " <B>Dear " & Sheet1.Cells(i + 5, 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
            WB.ChangeFileAccess Mode:=xlReadOnly
            Kill WB.FullName
            WB.Close SaveChanges:=False
        Next
        .ShowAllData
    End With
    Application.DisplayAlerts = True
    Set OutlookApp = Nothing
    Set MailItem = Nothing
   
End Sub
 

File đính kèm

  • sendmail1.xls
    54 KB · Đọc: 294
Upvote 0
Em tính gửi mail (khoảng vài trăm người) mà chỉ gửi 1 lần. Trong Mail nội dung giống nhau nhưng sẽ có đường link tương ứng với từng địa chỉ Email.
Em tính làm bằng file Excel soạn sẵn tên Email và link tương ứng rồi Import vào Contact trong Outlook.
Ví dụ:
Sau khi gửi xong thì mở hộp email (a@gmail.com) với nội dung sau:
Dear a or all
Nội Dung 123
Link: www.a.com/1

Sau khi gửi xong thì mở hộp email (b@gmail.com) với nội dung sau:
Dear b or all
Nội Dung 123
Link: www.b.com/2

......... (vài trăm email)

Vậy em phải làm thế nào vậy ?? Mong các anh chỉ em với.
 
Upvote 0
Em tính gửi mail (khoảng vài trăm người) mà chỉ gửi 1 lần. Trong Mail nội dung giống nhau nhưng sẽ có đường link tương ứng với từng địa chỉ Email.
Em tính làm bằng file Excel soạn sẵn tên Email và link tương ứng rồi Import vào Contact trong Outlook.
Ví dụ:
Sau khi gửi xong thì mở hộp email (a@gmail.com) với nội dung sau:
Dear a or all
Nội Dung 123
Link: www.a.com/1

Sau khi gửi xong thì mở hộp email (b@gmail.com) với nội dung sau:
Dear b or all
Nội Dung 123
Link: www.b.com/2

......... (vài trăm email)

Vậy em phải làm thế nào vậy ?? Mong các anh chỉ em với.

Gửi form và file của bạn lên xem thử nhé.
 
Upvote 0
Tình hình là xếp em cũng đang yêu cầu gửi phiếu lương vào địa chỉ email của từng người, may mà tìm được diễn đàn này mong anh hai lúa miền tây và anh chị giúp đỡ em
Đây là file mẫu phiếu lương của công ty e.
 

File đính kèm

  • pay slip11(mẫu ) .xlsx
    110.9 KB · Đọc: 104
  • 1405_226294660853072_1135891802_n.jpg
    1405_226294660853072_1135891802_n.jpg
    44.6 KB · Đọc: 15
  • guimail.xls
    31.5 KB · Đọc: 54
Lần chỉnh sửa cuối:
Upvote 0
Anh chị giúp em với, mẫu của công ty bên em
View attachment 114829
Xếp đang yêu cầu gửi phiếu lương(pay slip) vào địa chỉ email của từng nhân viên.
Trong sheet pay slip chỉ cần gõ số thứ tự của nhân viên đó thì tự động nhảy các số liệu của nhân viên đó
Anh Hai Lúa Miền Tây ơi giúp em với
 
Upvote 0
Anh chị giúp em với, mẫu của công ty bên em
View attachment 114829
Xếp đang yêu cầu gửi phiếu lương(pay slip) vào địa chỉ email của từng nhân viên.
Trong sheet pay slip chỉ cần gõ số thứ tự của nhân viên đó thì tự động nhảy các số liệu của nhân viên đó
Anh Hai Lúa Miền Tây ơi giúp em với
Không có địa chỉ email nên tôi tạm lấy cell E3 để đưa tạm vào, bạn nên thay thế cho phù hợp nhé.

Mã:
Sub SendMail()
    Dim OutlookApp As Object, MailItem As Object, i As Integer
    Dim FileName As String, WB As Workbook
    Application.DisplayAlerts = False
        For i = 1 To Application.WorksheetFunction.CountA(Sheet1.[A14:A1000])
            With Sheets("pay slip")
                .[A1:E31].CopyPicture
                .[G2] = i
                .Copy
            End With
            Set WB = ActiveWorkbook
            FileName = "BangLuong"
            On Error Resume Next
            Kill "D:\" & FileName
            WB.SaveAs FileName:="D:\" & FileName
            Set OutlookApp = CreateObject("Outlook.Application")
            Set MailItem = OutlookApp.CreateItem(0)
            With MailItem
               .To = Sheet2.[E3]
               .Subject = "Bang luong cua: " & Sheet2.[C3]
               .Attachments.Add WB.FullName
               .HTMLBody = "<B>Xin chao: " & Sheet2.[C3] & "</B>" & _
                           "<BR><BR>Xin vui long kiem tra lai chi tiet bang luong nhu ben duoi: <BR>" & _
                           "<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 "({DOWN})", True
            SendKeys "({DOWN})", True
            SendKeys "({DOWN})", True
            SendKeys "^({v})", True
            WB.ChangeFileAccess Mode:=xlReadOnly
            Kill WB.FullName
            WB.Close SaveChanges:=False
        Next
    Application.DisplayAlerts = True
    Set OutlookApp = Nothing
    Set MailItem = Nothing
End Sub
 

File đính kèm

  • pay slip11(mẫu ) .xlsm
    121 KB · Đọc: 220
Upvote 0
hay quá, thanks anh nhiều nha

anh cho em hỏi cái này là mình gửi đồng loạt theo số thứ tự, nếu như trong danh sách này có người mình muốn gửi phiếu lương, có người không thì làm thế nào. Em chèn địa chỉ mail bên em vào một số người, anh hướng dẫn giúp em
View attachment pay slip11(mẫu ) .xlsm
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
anh cho em hỏi cái này là mình gửi đồng loạt theo số thứ tự, nếu như trong danh sách này có người mình muốn gửi phiếu lương, có người không thì làm thế nào. Em chèn địa chỉ mail bên em vào một số người, anh hướng dẫn giúp em
View attachment 114999
Bạn chỉnh code lại như sau:

Mã:
Sub SendMail()
    Dim OutlookApp As Object, MailItem As Object, i As Integer
    Dim FileName As String, WB As Workbook
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
        For i = 1 To Application.WorksheetFunction.CountA(Sheet1.[A14:A1000])
            Sheet2.[G2] = i
            If UCase(Sheet2.[J4]) = "YES" Then
                With Sheets("pay slip")
                    .[A1:E31].CopyPicture
                    .Copy
                End With
                Set WB = ActiveWorkbook
                FileName = "BangLuong"
                On Error Resume Next
                Kill "D:\" & FileName
                WB.SaveAs FileName:="D:\" & FileName
                Set OutlookApp = CreateObject("Outlook.Application")
                Set MailItem = OutlookApp.CreateItem(0)
                With MailItem
                   .To = Sheet2.[G4]
                   .Subject = "Bang luong cua: " & Sheet2.[C3]
                   .Attachments.Add WB.FullName
                   .HTMLBody = "<B>Xin chao: " & Sheet2.[C3] & "</B>" & _
                               "<BR><BR>Xin vui long kiem tra lai chi tiet bang luong nhu ben duoi: <BR>" & _
                               "<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 "({DOWN})", True
                SendKeys "({DOWN})", True
                SendKeys "({DOWN})", True
                SendKeys "^({v})", True
                WB.ChangeFileAccess Mode:=xlReadOnly
                Kill WB.FullName
                WB.Close SaveChanges:=False
            End If
        Next
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Set OutlookApp = Nothing
    Set MailItem = Nothing
End Sub
 

File đính kèm

  • pay slip11(mẫu ) .xlsm
    121 KB · Đọc: 117
Upvote 0
em chạy file nhưng sao không được anh ah, anh kiểm tra lại giúp em cái,
em gửi lại anh file mẫu công ty em, trong đó em thêm vào địa chỉ email và yêu cầu có cần gửi hay không.
anh xem giúp em cái nha, cám ơn anh nhiều
View attachment pay slip11(mẫu ) (1).xlsx

trong file đầu anh gửi cho em từ số thứ tự thứ 2 nó sẽ gửi lại người thứ nhất, chỉ được người đầu tiên là đúng thôi còn sau là ví dụ người thứ 3 thì phiếu lương dạng html là người thứ 2, 4 thì tên là 3
loi.jpg
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
em chạy file nhưng sao không được anh ah, anh kiểm tra lại giúp em cái,
em gửi lại anh file mẫu công ty em, trong đó em thêm vào địa chỉ email và yêu cầu có cần gửi hay không.
anh xem giúp em cái nha, cám ơn anh nhiều
View attachment 115055

trong file đầu anh gửi cho em từ số thứ tự thứ 2 nó sẽ gửi lại người thứ nhất, chỉ được người đầu tiên là đúng thôi còn sau là ví dụ người thứ 3 thì phiếu lương dạng html là người thứ 2, 4 thì tên là 3
View attachment 115056
Tôi đã thêm yêu cầu của bạn ở bài trước rồi, do bạn điều chỉnh cột điều kiện gửi mail và địa chỉ mail + với không có công thức ở cell G4, J4 ở sheet pay slip...

Mã:
Sub SendMail()
    Dim OutlookApp As Object, MailItem As Object, i As Integer
    Dim FileName As String, WB As Workbook
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
        For i = 1 To Application.WorksheetFunction.CountA(Sheet1.[A14:A1000]) - 2
            Sheet2.[G2] = i
            If UCase(Sheet2.[J4]) = "YES" Then
                With Sheets("pay slip")
                    .[A1:E31].CopyPicture
                    .Copy
                End With
                Set WB = ActiveWorkbook
                FileName = "BangLuong"
                On Error Resume Next
                Kill "D:\" & FileName
                WB.SaveAs FileName:="D:\" & FileName
                Set OutlookApp = CreateObject("Outlook.Application")
                Set MailItem = OutlookApp.CreateItem(0)
                With MailItem
                   .To = Sheet2.[G4]
                   .Subject = "Bang luong cua: " & Sheet2.[C3]
                   .Attachments.Add WB.FullName
                   .HTMLBody = "<B>Xin chao: " & Sheet2.[C3] & "</B>" & _
                               "<BR><BR>Xin vui long kiem tra lai chi tiet bang luong nhu ben duoi: <BR>" & _
                               "<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 "({DOWN})", True
                SendKeys "({DOWN})", True
                SendKeys "({DOWN})", True
                SendKeys "^({v})", True
                WB.ChangeFileAccess Mode:=xlReadOnly
                Kill WB.FullName
                WB.Close SaveChanges:=False
            End If
        Next
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Set OutlookApp = Nothing
    Set MailItem = Nothing
End Sub
 

File đính kèm

  • pay slip11(mẫu ) (1).xlsm
    121.5 KB · Đọc: 128
Upvote 0
anh Hai Lúa miền tây giúp em với !

Em cũng đang muốn gửi cho mỗi người chi tiết lương của họ vào mail. Nhưng số cột của em lên tới 24. Anh giúp em với.

Với lại có những ô em hide đi thì khi cahỵ code gửi có ảnh hưởng gì không ạ?

Em cảm ơn anh!

link lấy file: https://drive.google.com/file/d/0B2uDHWvRMRVdWkpJNXBkbXNMM2c/edit?usp=sharing
 
Upvote 0
Tôi đã đọc các bài trong Topic này, nhưng do kiến thức A+ nên chưa ngấm được gì nhiều vào trong đầu.
Bây giờ tôi muốn: từ 1 bảng lương Như đính kèm. Trong Sheet Mail có các cột: Danh sách tên nhân viên, email của họ và điều kiện nhận email. khi bấm vào nút gửi email thì "toàn bộ file bảng lương" này được gửi đi đến tất cả nhân viên có tên trong danh sách.
Lưu ý:
Phương án 1 - Khi gửi đi thì đưa ra 1 Box yêu cầu nhập vào đó pass rồi mới cho gửi để tránh sau khi gửi đi đến mọi thành viên, mỗi người lại bấm cho 1 cái thì hơi phiền.
Phương án 2 - Gửi đi nhưng không gửi theo sheet mail
Phương án 3 - Cho phép gửi đi cả sheet Mail nhưng sau khi gửi đi đến các thành viên thì sheet này không có tác dụng gì nữa (như kiểu gãy liên kết)
Bảng lương có thể có nhiều sheet hơn nữa chứ không phải như file đính kèm trên. bảng lương có thể đặt Protection (riêng phần Protec nếu sử lý khó quá thì thôi).
Tôi xin nhờ các A/C chỉ bảo, giúp đỡ. Cảm ơn.
 

File đính kèm

  • Bang luong.xls
    82.5 KB · Đọc: 30
Lần chỉnh sửa cuối:
Upvote 0
anh Hai Lúa miền tây giúp em với !

Em cũng đang muốn gửi cho mỗi người chi tiết lương của họ vào mail. Nhưng số cột của em lên tới 24. Anh giúp em với.

Với lại có những ô em hide đi thì khi cahỵ code gửi có ảnh hưởng gì không ạ?

Em cảm ơn anh!

link lấy file: https://drive.google.com/file/d/0B2uDHWvRMRVdWkpJNXBkbXNMM2c/edit?usp=sharing

Bạn chạy code sau coi đúng ý chưa nhé:

Mã:
Sub SendMail()
      Dim OutlookApp As Object, MailItem As Object, i As Integer, rng As Range
    With Sheet1
        For Each rng In .[AN13:AN1000]
            i = i + 13
            If Len(rng) > 0 Then
                .[AN12:AN1000].AutoFilter Field:=40, Criteria1:=rng
                .[A8].CurrentRegion.CopyPicture
                Set OutlookApp = CreateObject("Outlook.Application")
                Set MailItem = OutlookApp.CreateItem(0)
                With MailItem
                   .To = rng
                   .Subject = "Bang luong cua: " & rng.Offset(, -38)
                   .HTMLBody = " <B>Xin chao " & rng.Offset(, -38) & "</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
        Next
        .ShowAllData
    End With
    Set OutlookApp = Nothing
    Set MailItem = Nothing
   
End Sub
 

File đính kèm

  • gửi mail.rar
    288.8 KB · Đọc: 237
Upvote 0
Bạn chạy code sau coi đúng ý chưa nhé:

Mã:
Sub SendMail()
      Dim OutlookApp As Object, MailItem As Object, i As Integer, rng As Range
    With Sheet1
        For Each rng In .[AN13:AN1000]
            i = i + 13
            If Len(rng) > 0 Then
                .[AN12:AN1000].AutoFilter Field:=40, Criteria1:=rng
                .[A8].CurrentRegion.CopyPicture
                Set OutlookApp = CreateObject("Outlook.Application")
                Set MailItem = OutlookApp.CreateItem(0)
                With MailItem
                   .To = rng
                   .Subject = "Bang luong cua: " & rng.Offset(, -38)
                   .HTMLBody = " <B>Xin chao " & rng.Offset(, -38) & "</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
        Next
        .ShowAllData
    End With
    Set OutlookApp = Nothing
    Set MailItem = Nothing
   
End Sub



Hjc Anh Hai Lúa Miền Tây.
+ T1 là mail gửi toàn bộ file cho người đó. Em muốn gửi từng dòng của người đó cho họ thôi ạ.
+ T2 khi gửi mail em phải ấn send hàng loạt mail như thế, có cách nào tự động gửi được không anh mình ko cần ấn send
Giúp em với. Em cảm ơn anh.
 
Upvote 0
Hjc Anh Hai Lúa Miền Tây.
+ T1 là mail gửi toàn bộ file cho người đó. Em muốn gửi từng dòng của người đó cho họ thôi ạ.
+ T2 khi gửi mail em phải ấn send hàng loạt mail như thế, có cách nào tự động gửi được không anh mình ko cần ấn send
Giúp em với. Em cảm ơn anh.
-T1 Bạn có test code trên chưa? Nó sẽ trích lọc dữ liệu của từng người riêng biệt mà.
-T2 Bạn xem bài #4
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn anh Hai Lúa Miền Tây nhìu nhìu lắm. Mọi việc oke rùi anh ạ ^^
 
Lần chỉnh sửa cuối:
Upvote 0
Nhờ anh giúp đỡ.
-Em thì không phải gửi mail bảng tính lương mà là gửi mail báo giá cho khách hàng. Mình có 1 file excel thông tin khách hàng và file word báo giá như mình đính kèm.
-Em mong muốn bấm nút "Gửi mail" Gửi mail với nội dung vd như:
-----Kính gửi Mr or Ms Doremon - Công Ty TNHH ABC (thay đổi thông tin như file excel)
----------Em gửi anh chị báo giá ...
Thân, Phúc
- Đồng thời đính kèm file word báo giá (thay đổi theo thông tin trong file excel)
Mong các anh giúp đỡ, em cám ơn nhiều
 

File đính kèm

  • Gửi mail.rar
    35.5 KB · Đọc: 24
Upvote 0
Mình có 1 vấn đề như trong file. Lần trước nhìn thấy trên diễn đàn có 1 Anh đã post lên gần giống như vậy nhưng bây giờ tìm mãi không thấy. A/C nào biết chỗ, làm ơn chỉ giùm đường dẫn. Cảm ơn.
 

File đính kèm

  • QToanVoucher.rar
    70.8 KB · Đọc: 19
Upvote 0
Anh HLMT ơi, anh có thể chỉnh giúp em font của đoạn HTML nó không bị nhoè không ạ.chứ gửi outlook nó cứ bị nhoè như thế này anh ahfont chu.jpg

Mọi người ai biết về HTML giúp đỡ mình cái nhé. Đây là file mà anh HLMT đã viết cho mình.
View attachment pay slip11(mẫu ) .xlsm
 
Upvote 0
Web KT
Back
Top Bottom