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
Chào bác, nhờ bác xem giúp file đính kèm với, 1. Trong sheet test có nhiều dòng trùng 1 mã email thì làm sao để sort lại và gửi đến cho 1 địa chỉ thôi; 2. Mình modify lại nhưng lỗi, bạn giúp code chạy giúp mình với.
Bác Hai Lua Mien Tay hoặc bác nào giúp mình với, mình đang cần đoạn code này.
 
Upvote 0
Bác Hai Lua Mien Tay hoặc bác nào giúp mình với, mình đang cần đoạn code này.
Bạn dùng code này:

Mã:
Sub GuiMail()
Dim i As Integer
Sheet1.Activate
For i = 1 To Application.WorksheetFunction.CountA(Sheet5.Range("G103:G500"))
    Cells.Delete
    Sheet12.[A4:P100].AutoFilter Field:=16, Criteria1:=Sheet5.Cells(i + 102, 7)
    Sheet12.[a4].CurrentRegion.Copy [a1]
    [a1].CurrentRegion
    ActiveWorkbook.EnvelopeVisible = True
    With ActiveSheet.MailEnvelope
        .Introduction = "Dear Mr/Ms " & Sheet5.Cells(i + 102, 8) & vbNewLine & _
                        "Xin vui long xem chi tiet nhu ben duoi"
        .Item.To = Sheet5.Cells(i + 102, 9)
        .Item.Subject = "CHI TIET BANG LUONG: " & Sheet5.Cells(i + 102, 8)
        .Item.SEND
    End With
Next
Sheet12.ShowAllData
ActiveWorkbook.EnvelopeVisible = False
End Sub
 

File đính kèm

  • guimail(HLMT).rar
    26.1 KB · Đọc: 237
Upvote 0
Bạn dùng code này:

Mã:
Sub GuiMail()
Dim i As Integer
Sheet1.Activate
For i = 1 To Application.WorksheetFunction.CountA(Sheet5.Range("G103:G500"))
    Cells.Delete
    Sheet12.[A4:P100].AutoFilter Field:=16, Criteria1:=Sheet5.Cells(i + 102, 7)
    Sheet12.[a4].CurrentRegion.Copy [a1]
    [a1].CurrentRegion
    ActiveWorkbook.EnvelopeVisible = True
    With ActiveSheet.MailEnvelope
        .Introduction = "Dear Mr/Ms " & Sheet5.Cells(i + 102, 8) & vbNewLine & _
                        "Xin vui long xem chi tiet nhu ben duoi"
        .Item.To = Sheet5.Cells(i + 102, 9)
        .Item.Subject = "CHI TIET BANG LUONG: " & Sheet5.Cells(i + 102, 8)
        .Item.SEND
    End With
Next
Sheet12.ShowAllData
ActiveWorkbook.EnvelopeVisible = False
End Sub
Cảm ơn bác, phải dùng thêm 1 sheet temp nữa hả Bác? không dùng có được không? mình muốn gửi kèm cùng file excel nữa, bạn giúp mình với.
 
Lần chỉnh sửa cuối:
Upvote 0
Mình đang dùng MailEnvelope để tự động gửi mail qua outlook, các bạn cho mình hỏi có cách nào để giữ nguyên định dạng form của sheet cần gửi khi gửi mail không, giống như mình copy sheet đó rồi paste sang phần gửi mail vậy.


ActiveSheet.Range("A1:I61").Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "This is a sample worksheet."
.Item.To = email
.Item.Subject = Sheet4.Range("I1").Value
.Item.Send
End With

Thank all so much!

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 
Lần chỉnh sửa cuối:
Upvote 0
Em muốn gửi phiếu lương qua email đến từng nhân viên có tên trên bảng lương. Tuy nhiên xem bảng của các bác làm em ko biết cách phải làm thế nào để ra được chữ ''gửi email''. Các bác hướng dẫn chi tiết cách làm cho em với.
 
Upvote 0
Gửi anh Hai Lúa Miền Tây!
Hiện tại bảng lương của em có nhiều dữ liệu và cần nhiều cột. Anh có thể mở rộng ra 50 cột giúp em được không ạ?

Mẫu của em cần như file đính kèm ạ.

em cảm ơn anh nhiều ah!
 

File đính kèm

  • Luong_T10_13(VP) - Copy.rar
    69.5 KB · Đọc: 87
  • Luong_T10_13(VP) - Copy.zip
    72.7 KB · Đọc: 45
Lần chỉnh sửa cuối:
Upvote 0
Gửi anh Hai Lúa Miền Tây!
Hiện tại bảng lương của em có nhiều dữ liệu và cần nhiều cột. Anh có thể mở rộng ra 50 cột giúp em được không ạ?

Mẫu của em cần như file đính kèm ạ.

em cảm ơn anh nhiều ah!

Em dựa vào bài #35 rồi thay số 18 thành số cột mong muốn là được. Tuy nhiên với số lượng cột nhiều như vậy thì nên gửi file đính kèm thôi chứ thêm bảng dán vào Body ở outlook thì không ổn.
 
Upvote 0
Em dựa vào bài #35 rồi thay số 18 thành số cột mong muốn là được. Tuy nhiên với số lượng cột nhiều như vậy thì nên gửi file đính kèm thôi chứ thêm bảng dán vào Body ở outlook thì không ổn.

Anh ơi, không hiểu sao máy em thao tác cứ bị lỗi. Từ hôm qua tới giờ, không code nào chạy cả. Nên anh có thể giúp em trên bảng thực tế em gửi vào email của anh không ạ? Hoặc là skype ấy ạ.

Em cảm ơn anh nhiều!
 
Lần chỉnh sửa cuối:
Upvote 0
Gửi anh Hai Lúa Miền Tây!
Em đã thao tác sửa mà code lỗi hoài. Sau khi tạo file và lưu form vào ổ D, Đổi display thành.send. Code vẫn báo vàng,....Anh giúp em điều chỉnh lại như file lương thực tế em gửi nhờ vào email của anh đó ạ
Vì file lương em không thay đổi số liệu nên em không gửi lên diễn đàn được ạ
Anh giúp em với nhé! Em cần lắm ạ!

Em cảm ơn anh nhiều!
 
Upvote 0
Cuối cùng thì em cũng làm được rồi, sau 1 ngày sửa code và những vấn đề liên quan! Em cảm ơn anh HLMT nhé!
hihihi. Giờ thì nhấn 1 nút.....là code chạy ngon lành!
 
Upvote 0
Nhân bàn về vấn đề này, em cũng muốn hỏi anh HLMT và các AC xem cho em ví dụ này và tạo dùm cho em code gửi phiếu lĩnh lương bằng mail đến mọi người trong VP của em ah!
 

File đính kèm

  • guiMail.rar
    7.5 KB · Đọc: 33
Upvote 0
Nhân bàn về vấn đề này, em cũng muốn hỏi anh HLMT và các AC xem cho em ví dụ này và tạo dùm cho em code gửi phiếu lĩnh lương bằng mail đến mọi người trong VP của em ah!

Không có danh sách, không có dữ liệu thì gửi cái gì đây bạn.
 
Upvote 0
Vâng, em gửi lại anh xem dùm cho em nhé!

Bạn chạy code sau nhé:

Mã:
Sub GuiMail()
    Dim OutApp As Object, OutMail As Object
    Dim WB As Workbook, Ash As Worksheet, mailAddress As String, i As Integer, ir As Integer
    Dim Rcount As Long, FileName As String, Rnum As Long, strHeader As String, strRow As String
    On Error GoTo cleanup
    Set OutApp = CreateObject("Outlook.Application")
    Set Ash = Sheet2
    Rcount = Application.WorksheetFunction.CountA(Ash.[B8:B1000]) - 1
    For i = 4 To 15
       strHeader = strHeader & " " & "<th>" & Ash.Cells(7, i) & "</th>"
    Next
    If Rcount >= 2 Then
        For Rnum = 8 To Rcount + 7
            strRow = ""
            With Sheets("PLUONG")
               .Cells(5, 4) = Ash.Cells(Rnum, 2)
               .Cells(6, 4) = Ash.Cells(Rnum, 3)
               .Cells(7, 9) = Ash.Cells(Rnum, 16)
            End With
            For ir = 4 To 15
               strRow = strRow & " " & "<td>" & Format(Ash.Cells(Rnum, ir), "#,##0") & "</td>"
               Sheets("PLUONG").Cells(10, ir - 3) = Format(Ash.Cells(Rnum, ir), "#,##0")
            Next
            mailAddress = ""
            On Error Resume Next
            mailAddress = Ash.Cells(Rnum, 16)
            Sheets("PLUONG").Copy
            Set WB = ActiveWorkbook
            FileName = Ash.Cells(Rnum, 2)
            Kill "D:\" & FileName
            On Error GoTo 0
            WB.SaveAs FileName:="D:\" & FileName
            If mailAddress <> "" Then
                Set OutMail = OutApp.CreateItem(0)
                With OutMail
                   .To = mailAddress
                   .Subject = "Chi tiet bang luong: " & Ash.Range("C" & Rnum) _
                            & " (Voi ma so la " & Ash.Range("B" & Rnum) & ")"
                   .Attachments.Add WB.FullName
                   .HTMLBody = "<B>Dear " & Ash.Range("C" & Rnum) & ",</B><BR>" & _
                            "Xin vui long xem chi tiet bang luong nhu ben duoi hoac file dinh kem:<BR><BR>" & _
                             "<table border=1><tr>" & _
                              strHeader & _
                              "</tr><tr>" & _
                              strRow & _
                              "</tr>" & _
                              "</table>" & _
                              "<BR>" & _
                              "Neu thay co gi thac mac xin vui long phan hoi som.<BR>" & _
                              "<B>Xin Cam on,</B>" & _
                              "<BR>" & _
                              "<B>HLMT<B>"
                   .Display  'Or use Send
                 End With
              On Error GoTo 0
              Set OutMail = Nothing
            End If
            WB.ChangeFileAccess Mode:=xlReadOnly
            Kill WB.FullName
            WB.Close SaveChanges:=False
        Next Rnum
    End If
MsgBox "Da tao xong email gui", vbInformation
cleanup:
Set OutApp = Nothing: Set OutMail = Nothing
End Sub
 

File đính kèm

  • guiMail02.xlsm
    47.4 KB · Đọc: 216
Upvote 0
Tìm mãi mới ra được cái dấu xuống dòng "</B><BR>" .
Cảm ơn anh HLMT.
 
Upvote 0
Anh Hai Lúa Miền Tây ơi, giúp em với được không ạ ?

Em gửi file theo form như thế này, a giúp e với nhá

Mò mẫm mãi chả được, thôi để lại form trắng thế này. Có gì anh giúp e ạ

Em cảm ơn nhiều :D
 

File đính kèm

  • Book1.xls
    19 KB · Đọc: 34
Upvote 0
Em gửi file theo form như thế này, a giúp e với nhá

Mò mẫm mãi chả được, thôi để lại form trắng thế này. Có gì anh giúp e ạ

Em cảm ơn nhiều :D
Bạn chạy code sau:

Mã:
Private Sub Send_File_Click()
    Dim OutlookApp As Object, MailItem As Object, i As Integer
    With Sheet1
        For i = 1 To Application.WorksheetFunction.CountA(.[A6:A1000])
            .[A5:A1000].AutoFilter Field:=1, Criteria1:=.Cells(i + 5, 1)
            .[A4].CurrentRegion.CopyPicture
            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)
               .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
        Next
        .ShowAllData
    End With
    Set OutlookApp = Nothing
    Set MailItem = Nothing
   
End Sub
 

File đính kèm

  • sendmail.xls
    40.5 KB · Đọc: 144
Lần chỉnh sửa cuối:
Upvote 0
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á !
 
Upvote 0
Web KT
Back
Top Bottom