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
Kính nhờ các bác giúp em ạ,
Em có file tổng cần tách ra thành từng file rồi đính kèm gửi đến từng người trong danh sách mà không biết làm thế nào,
Kính nhờ các bác giúp ạ.
P/s: Trong mail có tiêu đê: Kính gửi anh/chị: ...
Nội Dung: Kính gửi anh/chị KPIS tháng này
Chữ ký:
Em cám ơn nhiều ạ
 

File đính kèm

  • Book111.xlsx
    72.7 KB · Đọc: 35
Upvote 0
các Bác cho em nhờ tí khi chạy off 2007 bình thường nhưng khi chay off 2010 nó báo cái lỗi ngay khi chạy : Run time error '429' của đoạn mã ........ Set outApp= CreateObject("Outlook.Application") mình khắc phục như nào ạ. Xin chân thành cảm ơn các bác quan tâm hộ trợ.
 
Upvote 0
Các bác cho hỏi, có cách nào sửa việc hiển thị được tiếng việt khi gửi mail từ Excel bằng CDO không ạ ?
Em gửi tiếng việt trên gmail báo lỗi font. mặc dù chuẩn font ở Excel và Gmail là như nhau
Cám ơn !
 
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é.
bác ơi.e cảm ơn bác vì code bác viết chạy rất tốt ạ. nhưng có một vấn đề xảy ra là như này:
- nếu địa chỉ mail ở 3 dòng là 3 mail giống nhau thì nó chỉ gửi 1 dòng và 2 dòng còn lại nó sẽ ko gửi ạ.
 
Upvote 0
bác ơi.e cảm ơn bác vì code bác viết chạy rất tốt ạ. nhưng có một vấn đề xảy ra là như này:
- nếu địa chỉ mail ở 3 dòng là 3 mail giống nhau thì nó chỉ gửi 1 dòng và 2 dòng còn lại nó sẽ ko gửi ạ.
Bạn ráng tìm đọc trong đề tài này, sẽ có hướng giải quyết vấn đề của bạn nhé.
 
Upvote 0
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é.
bác HLMT ơi. e đọc lại từ đầu bài đến cuối như bác chỉ thì đã tìm được vấn đề mà những thành viên trước cũng gặp phải, tuy nhiên trong phần xử lý của bác hỗ trợ thì bác đang hiểu nhầm ý rồi.
bác đang hiểu là: 1 người có nhiều địa chỉ mail
nhưng thắc mắc của e và những thành viên có cùng câu hỏi là : 1 mail dùng cho nhiều người
mong bác kiểm tra lại :D
e cảm ơn :)
 
Upvote 0
bác HLMT ơi. e đọc lại từ đầu bài đến cuối như bác chỉ thì đã tìm được vấn đề mà những thành viên trước cũng gặp phải, tuy nhiên trong phần xử lý của bác hỗ trợ thì bác đang hiểu nhầm ý rồi.
bác đang hiểu là: 1 người có nhiều địa chỉ mail
nhưng thắc mắc của e và những thành viên có cùng câu hỏi là : 1 mail dùng cho nhiều người
mong bác kiểm tra lại :D
e cảm ơn :)
Vậy thì chỉnh lại chút xíu là được.

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.[A1:A1000]
            i = i + 1
            If Len(cell) > 0 Then
                .[A1:K1000].AutoFilter Field:=9, 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.Offset(, 2)
                       .Subject = "PRODUCTS: " & Cells(cell.Row, "B").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
 

File đính kèm

  • GuiMail.xlsm
    29 KB · Đọc: 88
Upvote 0
Vậy thì chỉnh lại chút xíu là được.

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.[A1:A1000]
            i = i + 1
            If Len(cell) > 0 Then
                .[A1:K1000].AutoFilter Field:=9, 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.Offset(, 2)
                       .Subject = "PRODUCTS: " & Cells(cell.Row, "B").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
được rồi ạ.
e cảm ơn bác đã trợ giúp nhiệt tình :D
 
Upvote 0
E hiện tại đang nhập đơn hàng thủ công theo file từng KH vào trong mẫu, các anh có thể giúp e làm thế nào mình điền giá trị theo từng KH vào form mẫu và in hàng loạt theo số tờ định sẵn như 2 tờ 1 lúc được ko ạ,
e chân thành cảm ơn
 

File đính kèm

  • test cthuc.xlsx
    10.7 KB · Đọc: 4
Upvote 0
bạn ơi, chỉ mình với lúc nhấn vào gửi mail thì hiển thị lên " Microsoft outlook 2010 startup" rùi mình nhấn next .... sao đó mình ko gửi dc , bạn có thể chỉ mình những thao tác lúc gửi mail bằng hình được ko ạ, với lại tại mình ko biết cách chụp màn hình như thế nào, phải mình bt mình chụp gửi qua bạn hướng dẫn cho nhanh
 
Upvote 0
mình nghĩ bạn nên làm code lưu phiếu lương thành 1 file pdf cho từng người lưu vào folder sau đó làm code đính kèm file pdf đã tạo cho mỗi người hay hơn. Bên công ty mình thường làm như vậy!
Bài đã được tự động gộp:

mình nghĩ bạn nên làm code lưu phiếu lương thành 1 file pdf cho từng người lưu vào folder sau đó làm code đính kèm file pdf đã tạo cho mỗi người hay hơn. Bên công ty mình thường làm như vậy!
 
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é.
Cảm ơn bạn nhiều
 
Upvote 0
Thông báo đó là do outlook security khi gởi mail hàng loạt bằng vba nhằm tránh spam đó mà . Hôm trước mình viết code gởi mail bảng chi tiết lương hơn 500 nhân viên Outlook cung báo vậy. Có 2 cách khắc phục : nếu bạn rành về hệ thống thì vào Regedit sửa còn không thí có tool để enable một số port trong out look la ok . bạn cần thì mail cho mình khongventoan@gmail.com
Của mình phần bạn bảo
Bạn vào Outlook Options > Trust Center > Trust Center Setting... > Programmatic Access > Click chọn Never warn me about ...
Thế là xong.
của mình chỗ đó mờ đi luôn không cho tích. Có ai có giải pháp nào khác không giúp em với?
 
Upvote 0
Chào các bác! Mình mới tìm hiểu về VBA, các bác có thể giải thích giúp mình ý nghĩa của các biến không ?
 
Upvote 0
em muốn gởi phiếu lương vào email cho mọi người, mong các ace hướng dẫn ah. em cám ơn.
em gởi kèm file bảng lương ah.
 

File đính kèm

  • luong T02 .2019.xlsx
    467.3 KB · Đọc: 7
Upvote 0
Các bác cho em hỏi làm sao mình có thể định dạng số cho dữ liệu khi gửi mail

Ví dụ: Lương thực tế phải hiện lên là 127.655.000

1552123625185.png
 
Upvote 0
Bạn ráng tìm đọc trong đề tài này, sẽ có hướng giải quyết vấn đề của bạn nhé.

Chào anh ạ.
Em có đọc đề tài này của anh và các anh chị trong chủ đề, em cũng tìm tòi nhưng do không biết về VBA nên mong anh và mọi người trên diễn đàn giúp đỡ ạ.
Em có file lương như đính kèm, em cũng có phần "Phiếu Lương" hàng tháng in và phát cho mọi người. Tuy nhiên em cũng có mong muốn như đề tài các anh chị đang bàn đó là muốn gửi các thông tin "phiếu lương" qua email cho người lao động. Chỉ khối sản xuất mới in phiếu lương ra phát.

Anh chị giúp em để em có thể gửi email phiếu lương với ạ.
Nội dung email

1. Tiêu đề email:
CÔNG TY TNHH ..... GỬI PHIẾU LƯƠNG THÁNG .... NĂM....
2. Nội dung Email:
Công ty TNHH ... cảm ơn sự nỗ lực và cống hiến của Anh / Chị trong tháng qua. Sau đây là Phiếu lương chi tiết trong tháng ........ năm........ .
214606

Anh/ chị kiểm tra Phiếu lương:
Nếu có thắc mắc về thời gian làm việc vui long liên hệ với Phòng hành chính nhân sự để được giải đáp
Nếu có thắc mắc về cách tính lương, các khoản bù trừ lương vui lòng liên hệ với Phòng Tài chính kế toán để được giải đáp.

3. Chũ ký Email

Trân Trọng

=============================

Nguyễn Thị H– Kế toán Trưởng

Mobile:...............
Email: ........................

Mong anh và các anh chị trong thành viên giúp đỡ em với ạ. Em xin cảm ơn ạ
 

File đính kèm

  • Nho ho tro gui email.xlsm
    663.3 KB · Đọc: 14
Upvote 0
NHỜ CÁC BẠN XEM GIÚP MÌNH VỚI NHA
MÌNH CẦN ĐỂ GỬI MAIL CHO MỖI NGƯỜI VA ĐÍNH KÈM MỖI FILE KHÁC NHAU NHƯNG KHÔNG GỬI ĐƯỢC
 

File đính kèm

  • 06 - Gui nhieu file khac nhau.xlsm
    15.9 KB · Đọc: 12
  • LOI.docx
    197.5 KB · Đọc: 6
Upvote 0
Web KT
Back
Top Bottom