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

VBA Outlook Discussion :

Publipostage avec pièce jointe différente


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 37
    Points : 24
    Points
    24
    Par défaut Publipostage avec pièce jointe différente
    Bonjour,

    J'ai réussi à faire un premier publipostage à partir de Word, avec un nom et emplacement de fichier définis, que j'ai pu intégrer dans mon fichier Excel, et maintenant je souhaiterais faire un publipostage en utilisant la pièce jointe située à l'emplacement de la ligne.
    Le chemin de la pièce jointe se trouve dans la colonne AX (50ème), et mon adresse de destination se trouve dans la colonne AJ (36ème).

    J'ai trouvé cette macro qui semble correspondre à ce que je cherche :
    https://wordmvp.com/FAQs/MailMerge/M...ttachments.htm

    Mais cette dernière ne fonctionne pas.
    J'ai également trouvé des add ons payants, mais je sens que je suis proche, j'aimerais bien une solution en VBA ^^

    Quelqu'un voit une solution ?

    Merci de votre aide.

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,

    Si tu veux utiliser le publipostage de WORD il faut ajouter un bout de code côtè OUTLOOK, pour ajouter la PJ à chaque envoi

    regarde ce code
    http://www.faqword.com/index.php/wor...ipostage-et-pj

  3. #3
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Bonjour et merci de votre réponse.

    Le problème est que j'aimerais envoyer une 100aine de mails, avec un nom de fichier spécifique (Code-Nom Prénom.docx) pour chaque mail, le fichier étant différent pour chaque mail.
    C'est pour ça que j'ai créé une colonne avec l'emplacement de chaque fichier, j'espère pouvoir le récupérer sur outlook pour qu'à chaque mail, il fasse le publipostage en cherchant l'adresse mail et l'emplacement de la pièce jointe de sa ligne.

    Le code indiqué sur le lien de mon premier message est censé faire cette manipulation mais je ne parvient pas à comprendre où est l'erreur.

  4. #4
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Il me semble avoir déjà donné des exemples dans ce forum, faut que je les retrouve.

    mais dans le principe, tu inséres dans ton document word un champ qui correspond à ton emplacement de fichier
    tu entoures ce chemin avec des caractères spécifiques
    par exemple :

    ¤c:\temp\toto.doc¤


    dans ta macro Application_ItemSend côtè OUTLOOK, tu vas rechercher cette info pour ajouter la pj correspondante, puis supprimer l'info.

  5. #5
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20

  6. #6
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2018
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Merci de ta réponse,

    Si je comprends bien, je récupère le code de ton premier lien, que je modifie un peu (la macro de Module1) :
    Celui de ThisOutlookSession :
    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
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    'by oliv' 05/02/2007 Pour publipostage avec PJ OUTLOOK 2003
    If Item.Class = olMail Then
    Dim objCurrentMessage As MailItem
    Set objCurrentMessage = Item
    If UCase(objCurrentMessage.Subject) Like "*PUBLIPOSTAGE*" Then
    On Error Resume Next
    'Pour ajouter la même PJ à tous
    Dim i As Long
    i = 0
    If publipostagePJ <> "" Then
    While publipostagePJ(i) <> "fin"
    objCurrentMessage.Attachments.Add Source:= publipostagePJ(i)
    i = i + 1
    Wend
    End If
    'On supprime le terme PUBLIPOSTAGE du sujet
    objCurrentMessage.Subject = Replace(objCurrentMessage.Subject, "PUBLIPOSTAGE ", "")
    'On sauvegarde le mail
    objCurrentMessage.Save
    End If
    Set objCurrentMessage = Nothing
    End If
    End Sub
    Et celui ci dans Module1 :
    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
    Public publipostagePJ As Variant
    Sub setPublipostage()
    On Error Resume Next
    If publipostagePJ(0) = "" Then publipostagePJ = Array("fin", "fin", "fin", "fin", "fin", "fin", "fin", "fin", "fin", "fin")
    While publipostagePJ(i) <> "fin"
    contenu = contenu & vbCr & publipostagePJ(i)
    i = i + 1
    Wend
    If InStr(1, item.Body, "#PJ=", vbTextCompare) > 0 Then
     
    PJ = Split(Split(item.Body, "#PJ=", -1, vbTextCompare)(1), Chr(13))(0)
      Set objOutlookRecip = item.Recipients.add(CC)
          objOutlookRecip.Type = olCC
        objOutlookRecip.Resolve
     
    'on supprime la ligne
    If item.BodyFormat = olFormatHTML Then
    item.HTMLBody = Replace(item.HTMLBody, "#PJ=" & PJ, "", , , vbTextCompare)
    Else
    item.Body = Replace(item.Body, "#PJ=" & PJ, "", , , vbTextCompare)
    End If
     If InStr(1, Item.Body, "PJ", vbTextCompare) > 0 Then
            If Item.Attachments.Count = 0 Then
                answer = MsgBox("Pas de PJ, envoyer quand même*?", vbYesNo)
                If answer = vbNo Then Cancel = True
            End If
         End If
     
    End If
    If "" = Dir(PJ, vbNormal) Then GoTo quest
    publipostagePJ(i) = PJ
    Else: Exit For
    End If
    Next i
    End If
    MsgBox "Votre publipostage doit comporter le terme :" & vbCr &
    "PUBLIPOSTAGE" & vbCr & "dans le sujet." & vbCr &
    "Celui-ci sera retiré lors de l'envoi"
    End Sub
    J'ai l'impression de faire n'importe quoi ^^

  7. #7
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    plutôt le code du derni erlien

Discussions similaires

  1. Publipostage avec pièce jointe personnalisée
    Par pomme_verte dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/05/2016, 15h07
  2. [OL-2003] publipostage avec pièce jointe dynamique
    Par Calagane dans le forum VBA Outlook
    Réponses: 12
    Dernier message: 19/08/2015, 10h50
  3. Envoie mal outlook avec pièce jointe différente tous les jours
    Par snico78 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/10/2014, 18h41
  4. [OL-2010] Publipostage depuis excel puis mail auto avec pièces jointes différentes
    Par EzeckielRSA dans le forum Outlook
    Réponses: 3
    Dernier message: 30/06/2014, 16h01
  5. [WD-2007] Publipostage avec pièce jointe personnalisée
    Par mikoric dans le forum Word
    Réponses: 4
    Dernier message: 22/10/2011, 00h47

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