Publipostage depuis excel puis mail auto avec pièces jointes différentes

ZecK

XLDnaute Nouveau
Bonjour à tous,

Je vous expose le principe global, je dois réaliser à partir d'un fichier excel des fiches de salaire que je dois ensuite envoyer par mail aux destinataires.

Quand je suis arrivé sur cette tâche, la précédente personne faisait une à une les fiches sur excel en reportant à la main les chiffres (source d'erreur), puis impression, puis scan puis envoi par mail à la personne...

Etant du genre flemmard :)D), je tente actuellement d'optimiser le processus.

Entre mes connaissances et à l'aide du forum, j'ai réussi pour le moment à :

Utiliser la source excel de la paie pour faire un publipostage sous word

Faire une macro pour une impression PDF unique de chaque fiche de paie et enregistrée au nom de chaque personne

Maintenant il me serait assez plaisant de pousser l'expérience jusqu'à une macro qui puisse envoyer les mails automatiquement (et en tapant ça, peut être devrais je aller sur le forum Outlook aussi).

Dans ma base excel de la paie, je peux avoir les adresses mails.

Du coup, je ne sais pas si je peux faire cela d'un seul mouvement.

Je ne suis pas contre le faire en deux étapes, peut être y a t il possibilité de dresser un second fichier avec les adresses mails d'un coté, le nom de la pièce jointe de l'autre (du genre Nom_Prénom_Mois_Année.pdf) et faire un publipostage avec le message générique.

Voilà, je suis un peu perdu sur le principe plus que sur la réalisation car après je pense que je peux à nouveau m'aider du forum :)

Merci d'avance de votre aide.

Zeck.
 

ZecK

XLDnaute Nouveau
Re : Publipostage depuis excel puis mail auto avec pièces jointes différentes

Hello,

J'ai regardé et je crois que cela ne correspond pas à ce que je recherche.

J'ai fait cela du coup, qu'en pensez vous?

Code:
Sub Send_Payslips()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range

    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")

    On Error GoTo cleanup
    For Each cell In Columns("B").Cells.SpecialCells(xlCellTypeConstants)
        If cell.Value Like "?*@?*.?*" And _
           LCase(Cells(cell.Row, "C").Value) = "yes" Then

            Set OutMail = OutApp.CreateItem(0)
            On Error Resume Next
            With OutMail
                .To = cell.Value
                .Subject = "Payslip"
                .Body = "Dear " & Cells(cell.Row, "A").Value _
                      & vbNewLine & vbNewLine & _
                        "Please find attached your payslip for the current month. " & _
                    vbNewLine & vbNewLine & _
                        "Best regards."
                
                .Attachments.Add ("C:\000 Payslips\" & Cells(cell.Row, "A").Value & ".pdf")
                .Display  'à remplacer par Send
            End With
            On Error GoTo 0
            Set OutMail = Nothing
        End If
    Next cell

cleanup:
    Set OutApp = Nothing
    Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Réponses
2
Affichages
272

Statistiques des forums

Discussions
312 332
Messages
2 087 362
Membres
103 529
dernier inscrit
verdier.christophe@outloo