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
Các đại ca ơi giúp với. Tình hình mình copy đoạn code để add vào file mình nhưng nó không chạy, có ai giúp mình k. đa tạ lắm.
 

File đính kèm

  • TTDVKH.xlsx
    14.8 KB · Đọc: 9
Upvote 0
Em đã làm được rồi ạ, Cảm ơn file của các Anh chị và các bạn nhiều
 
Lần chỉnh sửa cuối:
Upvote 0
@tt_kimbai Bài toán của bạn khó nhờ, bạn muốn người giúp bạn bẻ khóa file excel này à?
 
Upvote 0
Bác @Hai Lúa Miền Tây và anh chị giúp em với ạ
 
Upvote 0
Anh chị cho mình hỏi trường hợp sau

Em thấy code của bác HaiLua #124 Trang 13



E đã làm thành công nhưng cho em hỏi muốn khi gửi đi sẽ có thêm 1 sheet là định dạng phiếu lương, dùng sẵn hàm vlookup bên sheet2 qua sheet1 để ra dữ liệu. Vì nhiều khi nhân viên muốn in ra theo định dạng.
Anh chị xem giúp

Anh HL và các bạn giúp mình, helppp @!##
 
Upvote 0
Trong sheet form mình muốn gửi đến từng email
Nhưng format mình muốn giữ nguyên
Chỉ có mỗi người nhận được dòng tương ứng với email đó.
các sư huynh help me với, mình xin hậu tạ!
 

File đính kèm

  • TTDVKH.xlsx
    11.9 KB · Đọc: 10
Upvote 0
Nhờ các anh chị giúp đỡ ạ
mail không dán phần copy vào body thư
và em muốn bỏ đính kèm file di ạ

}}}}}}}}}}
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")
.Copy
.[A1:E31].CopyPicture
End With
Set WB = ActiveWorkbook
FileName = "BangLuong"
On Error Resume Next
Kill "E:" & FileName
WB.SaveAs FileName:="E:" & 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>Lê Thi Hà </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

  • hinh 1.jpg
    hinh 1.jpg
    9.8 KB · Đọc: 124
Lần chỉnh sửa cuối:
Upvote 0
Khi em xóa . Copy

Thì .[A1:E31].CopyPicture được dán vào body mail
nhưng lại không gửi mail cho nhiều người được mà chỉ nhận địa chỉ mail trên cùng của bảng lương thôi ạ
Anh chị sửa lỗi giúp em với ạ


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
End With
Set WB = ActiveWorkbook
FileName = "BangLuong"
On Error Resume Next
Kill "C:" & FileName
WB.SaveAs FileName:="C:" & FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set MailItem = OutlookApp.CreateItem(0)
With MailItem
.To = Sheet2.[G4]
.Subject = "Bang luong cua: " & Sheet2.[C3]
.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>Lê Thi Hà </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
 
Upvote 0
Dear các anh các chị em có một vấn đề cũng gần giống với nhưng top trên nhưng em đọc mãi mà vẫn chưa biết áp dụng như thế nào với trường hợp của em.
Em có 1 file dữ liệu bảng kê của từng khách hàng tương ứng với từng sheet
Giờ em muốn gửi mỗi 1 sheet đấy cho 1 email thì phải làm như thế nào ạ . nhờ các cao thủ giúp cho em với
 

File đính kèm

  • 01.xlsx
    19 KB · Đọc: 5
Upvote 0
Mình gửi lên đây file mẫu gửi lương mình lấy theo file của Anh HLMT và áp dụng cho cty mình, bạn nào cần lấy về chỉnh sửa theo nhu cầu
Cảm ơn Anh Hai Lúa Miền Tây và các anh chị đã có những file thật tuyệt vời như này
 

File đính kèm

  • mau luong.xlsm
    93.8 KB · Đọc: 75
Upvote 0
Dùng excel lập bảng lương và dùng outlook để gửi, có gì bạn tham khảo ở đây nhé.
[video=youtube;1vuzPgjP9rU]https://www.youtube.com/watch?v=1vuzPgjP9rU[/video]
 
Upvote 0
Bạn sử dụng code sau thử nhé

Mã:
Sub SendMail()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range
    Dim Addresslist As Scripting.Dictionary
    Application.ScreenUpdating = False
    Set Addresslist = New Scripting.Dictionary
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon

    For Each cell In Columns("B").Cells.SpecialCells(xlCellTypeConstants)
        If cell.Value Like "?*@?*.?*" And _
           LCase(Cells(cell.Row, "J").Value) = "yes" Then
            On Error Resume Next
            Addresslist.Add cell.Value, cell.Value
            If Err.Number = 0 Then
                Set OutMail = OutApp.CreateItem(0)
                With OutMail
                    .To = cell.Value
                    .Subject = "Phieu luong: " & Cells(cell.Row, "A").Value
                    .Body = "Dear " & Cells(cell.Row, "A").Value _
                          & vbNewLine & vbNewLine & _
                            "Xin vui long xem chi tiet bang luong nhu ben duoi:" & _
                            vbNewLine & vbNewLine & _
                           "+ He So Chuc Danh: " & Cells(cell.Row, "C").Value & _
                              vbNewLine & _
                           "+ So ngay cong: " & Cells(cell.Row, "D").Value & _
                            vbNewLine & _
                           "+ Luong CD: " & Cells(cell.Row, "E").Value & _
                            vbNewLine & _
                           "+ Phu cap DT: " & Cells(cell.Row, "F").Value & _
                            vbNewLine & _
                           "+ Phu cap doan the: " & Cells(cell.Row, "G").Value & _
                            vbNewLine & _
                           "+ Tru BHXH, BHYT: " & Cells(cell.Row, "H").Value & _
                            vbNewLine & _
                           "+ Luong CK: " & Cells(cell.Row, "I").Value & _
                           vbNewLine & vbNewLine & _
                           "Cam on"
                    .Display  'Or use Send
                End With
                Set OutMail = Nothing
            End If
            On Error GoTo 0
        End If
    Next cell

    Set OutApp = Nothing
    Set Addresslist = Nothing
    Application.ScreenUpdating = True
End Sub

http://www.rondebruin.nl/mail/folder3/message.htm

Tham khảo thêm file nhé.

trước cũng tìm hiểu trường hợp này
 
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.
 

File đính kèm

  • Gui mail bang luong.xls
    72.5 KB · Đọc: 17
Upvote 0
Khi mình xuất ra nó sẽ tự bun ra mà bạn. Nếu chưa chỉnh về Shrink to fit thì nó sẽ bị che mất.

[video=youtube;3QP9aMoFkuc]http://www.youtube.com/watch?v=3QP9aMoFkuc&amp;feature=youtu.be[/video]

Dear anh Hai Lua Mien Tay cùng toàn thể các anh em,
Theo file của anh HLMT hướng dẫn em tùy chỉnh để dùng được, tuy nhiên khi xuất dữ liệu vào mail, các số ko thể nào lấy được dấu phân cách nên rất khó nhìn (file em đính kèm)
Em nhờ các tiền bối chỉ giúp cách tùy chọn!
Cám ơn các bác!
 

File đính kèm

  • 2016-06-01_174447.jpg
    2016-06-01_174447.jpg
    32.8 KB · Đọc: 115
Upvote 0
Em không gửi được email ạ. Hay bắt buộc gửi qua outlook ạ
 
Upvote 0
Tìm hiểu riết mà em cũng chưa làm được cái mình muốn.
Vì em khá nhiều việc lặp đi lặp lại, mất thời gian nên để quản lý thời gian và công việc tốt hơn em đã tìm đến topic. Nhưng chắc do ngu cái khoản này quá or do quá nôn nóng cho việc hiện tại mà chưa đầu tư hết công suất để học từ đầu.
Vì vậy nhờ các bác giúp em tạo đoạn code cho file đính kèm này với ạ.

Hàng ngày em nhận được rất nhiều giấy tờ và phải thông báo đến người chịu trách nhiệm giấy tờ (có file attachment).
Trong file dưới em muốn:
- Tự động gửi mail để từng người.
- Nếu phần "Email status" là "incomplete" thì gửi, "complete" thì thôi.
- Nội dung thể hiện theo dạng cột (giống như bác Hai lúa Miền Tây đã làm)

Nhờ mọi người giúp em với ạ, sau vụ này chắc em phải dành thêm thời gian để học.
Em cảm ơn nhiều ạ.
 

File đính kèm

  • Test 1.xlsx
    24 KB · Đọc: 8
Upvote 0
Dear anh Hai Lua Mien Tay cùng toàn thể các anh em,
Theo file của anh HLMT hướng dẫn em tùy chỉnh để dùng được, tuy nhiên khi xuất dữ liệu vào mail, các số ko thể nào lấy được dấu phân cách nên rất khó nhìn (file em đính kèm)
Em nhờ các tiền bối chỉ giúp cách tùy chọn!
Cám ơn các bác!
Bạn xem lại bài #139 để giải quyết vấn đề của bạn nhé.
 
Upvote 0
Tìm hiểu riết mà em cũng chưa làm được cái mình muốn.
Vì em khá nhiều việc lặp đi lặp lại, mất thời gian nên để quản lý thời gian và công việc tốt hơn em đã tìm đến topic. Nhưng chắc do ngu cái khoản này quá or do quá nôn nóng cho việc hiện tại mà chưa đầu tư hết công suất để học từ đầu.
Vì vậy nhờ các bác giúp em tạo đoạn code cho file đính kèm này với ạ.

Hàng ngày em nhận được rất nhiều giấy tờ và phải thông báo đến người chịu trách nhiệm giấy tờ (có file attachment).
Trong file dưới em muốn:
- Tự động gửi mail để từng người.
- Nếu phần "Email status" là "incomplete" thì gửi, "complete" thì thôi.
- Nội dung thể hiện theo dạng cột (giống như bác Hai lúa Miền Tây đã làm)

Nhờ mọi người giúp em với ạ, sau vụ này chắc em phải dành thêm thời gian để học.
Em cảm ơn nhiều ạ.
Bạn xem file đính kèm coi đúng ý chưa nhé
 

File đính kèm

  • GuiMail.xlsm
    27.3 KB · Đọc: 93
Upvote 0
Bạn xem file đính kèm coi đúng ý chưa nhé
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 ạ!
 
Upvote 0
Web KT
Back
Top Bottom