IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outlook Discussion :

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


Sujet :

Outlook

  1. #1
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Publipostage depuis excel puis mail auto avec pièces jointes différentes
    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 (), 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.

    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.

    J'ai déjà fait quelques recherches mais ne trouve que rarement des situations qui s'approcheraient de la mienne d'où ce message.

    Merci d'avance de votre aide.

    Zeck.

  2. #2
    Membre du Club Avatar de SCryptCypher
    Femme Profil pro
    MacGyver
    Inscrit en
    Novembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : MacGyver

    Informations forums :
    Inscription : Novembre 2013
    Messages : 35
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,

    Il doit être possible de tout faire en une fois, mais sans voir ton code, il est cependant difficile de se prononcer.


    Voici un exemple de code pour créer un mail à partir de Excel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub SendMail_Outlook () 
    
    'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher 'Microsoft Outlook Library' 
    
       Dim ol As New Outlook.Application 
       Dim olmail As MailItem 
       Dim CurrFile As String 
    
       Set ol = New Outlook.Application 
       Set olmail = ol.CreateItem(olMailItem) 
       With olmail 
          .To = range('a3').value 
          .Subject = Range('a1').Value 
          .Body = 'Contenu ' & Range('a2').Value 
          .Attachments.Add 'c:\\data\\essai.doc' 
          .Display '.Send 
    'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display) 
       End With 
    End Sub

    Je pense que tu devrais pouvoir adapter ce code et l'intégrer à ta macro.

    Concrètement, tu as juste besoin de définir l'adresse du destinataire, le titre et le sujet du mail, et le chemin vers la pièce jointe.

    Tu signales pouvoir obtenir les adresses via ton fichier excel : voilà une première chose de réglée.

    Tu peux également récupérer le chemin du fichier pdf à joindre pour chacun des destinataires vu que tu les crées toi-même par impression et que tu les sauvegardes toi-même.

    Il te reste à décider si tu veux un texte générique pour tous les destinataires ou un texte personnalisé, mais là cela devient du peaufinage .


    Bon courage.
    « Si c’est vert ou si ça remue, c’est de la biologie.
    Si ça pue, c’est de la chimie.
    Si ça ne fonctionne pas, c’est de la physique.
    Si ça occupe des tableaux entiers de formules, c’est des mathématiques.
    Si ça fait ce qu’on dit, mais pas ce qu’on veut, c’est de l’informatique. »

  3. #3
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Merci pour cette base de réflexion.

    Je regarde cela. En revanche, par le code suivant : .Attachments.Add 'c:\\data\\essai.doc, je crois comprendre que la pièce jointe sera la même pour chacun

    Il faudrait que de la même façon que les mails je puisse faire une mise à jour auto de la pièce jointe.

    Pour le message, générique ou pas, ce ne sera pas un problème ou je verrai ça dans un second temps pour faire plus propre.

    Mon code actuel (sous Word donc):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    Sub TestPayslips()
     
     
    Dim iR As Integer
    Dim i As Integer
    Dim oDoc As Document
    Dim DocName As String
    Dim oDS As MailMergeDataSource
     
     
    Set oDoc = ActiveDocument
    Set oDS = oDoc.MailMerge.DataSource
     
    iR = oDoc.MailMerge.DataSource.RecordCount
    Debug.Print iR
    For i = 1 To iR
        With oDoc.MailMerge
     
            .DataSource.FirstRecord = i
     
            .DataSource.LastRecord = i
     
            .Destination = wdSendToNewDocument
     
            .Execute
     
            .DataSource.ActiveRecord = i
     
            DocName = .DataSource.DataFields(1).Value
            'DocName = DocName & "-" & .DataSource.DataFields(1).Value
            Debug.Print DocName; i
     
        End With
     
        With ActiveDocument
            .ExportAsFixedFormat "C:\000 Payslips\" & DocName & ".pdf", wdExportFormatPDF                     
            .Close False
        End With
    Next i
    End Sub

  4. #4
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Voici le code que j'ai fait en m'inspirant du tien et d'un autre trouvé je ne sais plus où tellement j'avais d'onglets ouverts sur Chrome

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    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
    Cela semble fonctionner, dites moi ce que vous en pensez... Merci d'avance

Discussions similaires

  1. [XL-2003] Probleme VBA excel générer mail automatique avec piece jointe
    Par itshy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/03/2012, 10h46
  2. e-mails automatiques avec pièce jointe
    Par touche_a_tout dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/02/2012, 10h20
  3. [HTA] SMTP Mail Client avec pièce jointe
    Par hackoofr dans le forum Vos Contributions VBScript
    Réponses: 6
    Dernier message: 24/11/2011, 20h25
  4. [Mail] problème mail html avec pièce jointe
    Par stars333 dans le forum Langage
    Réponses: 2
    Dernier message: 12/06/2007, 19h44
  5. [Mail] Problème avec pièce jointe
    Par coco38 dans le forum Langage
    Réponses: 4
    Dernier message: 27/04/2007, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo