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 dynamique


Sujet :

VBA Outlook

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut publipostage avec pièce jointe dynamique
    Bonjour,
    j'ai une question concernant un publipostage que j'ai à faire en partance de word avec un passage sous outlook 2003.

    la source de mon word contient un identifiant et un mail. Cette identifiant se retrouve dans le nom d'un fichier que je dois envoyer en pièce jointe.
    j'arrive à envoyer une pièce jointe quand elle est en dur dans mon vb outlook, cependant je n'arrive pas à véhiculer mon nom de fichier dynamiquement en fonction de ma source.

    Comment véhiculer mon chemin et nom de fichier de word vers outlook, ou comment récupérer mon identifiant pour modifier mon nom de fichier dans outlook?

    D'avance merci

    mon vb est une copie de ce source :
    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
    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
    'Pour ajouter une PJ à tous décommenter
            'objCurrentMessage.Attachments.Add Source:= _
            "c:\temp\DOC2.PDF"
     
    '#perso#Pour ajouter un document personnalisé d'après le destinataire du mail décommenter ci-dessous
    'ici le nom du document est "destinataire@domaine.fr.doc"
    docperso = "C:\Documents and Settings\jacquetr\Bureau\test_publipostage\" & objCurrentMessage.Body & ". doc"
    objCurrentMessage.Attachments.Add Source:=docperso
     
    '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

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    ton départ n'est pas correct il me semble.
    Avec Application_ItemSend, tous tes mails seront impactés, même les mails normaux.

    Tu fais un test, mais ce n'est pas la solution.
    Il serait préférable que tu ajoute la pièce jointe dans le mail directement lors du publipostage.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Mon publipostage se fera sur environ 150, 200 adresses avec 1 voir 2 fichiers par mails identifiés par un id.
    si cherche une solution pour éviter se travail fastidieux et source d'erreurs.

    merci ++

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    d'où pars tu et comment fais tu ton publipostage ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Saluté,
    je pars d'un word (type de document message électronique), je charge ma source de donnée (exemple : 00001;tartanpion@aa.fr) et je veux qu'au passage par outlook, une ou deux pièces jointes soient ajoutées (exemple : fic_test_00001.pdf)

    j'arrive à faire un publipostage avec envoi de pièce jointe fixée en dur dans ma macros, mais je n'arrive pas à rendre ces pièces jointes dynamique en fonction de mon id.

    macros:
    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
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    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 un document personnalisé d'après le destinataire du mail docperso = "z:\****\****\fic_test__00001.pdf"
    'docperso = "z:\****\****\fic_test__00001.xls"
    objCurrentMessage.Attachments.Add Source:=docperso
     
     
    '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

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Ce code, tu nous l'avait déjà donné.

    Pour faire ton publipostage, comment fis tu ?
    Tu nous dit que tu pars de Word, comment fais-tu ?

    Ce qui est intéressant, c'est d'ajouter la pièce jointe au message dès le départ et pas lors de l'envoi du document.
    Avec ton code, ce sont tous les messages envoyés qui sont testés ! Ce n'est pas une bonne solution.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Re,
    dans ma procédure, une fois ma texte écrit dans le word, ma source de donnée chargé, je fusionne avec un message électronique, en liant le <A> à ma source de donnée adresse et hop envoi du mail.

    Ton idée m'intéresse, mais comment puis-je joindre un fichier pdf et xls à mon document word le tout dans un publipostage, sachant que dans le word je retrouve facilement mon id par l'insertion d'un champ de fusion.

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    C'est la raison pour laquelle, j'essaie de savoir comment tu fais ton publipostage.
    Si la source de données contient un identifiant pour le fichier attaché, on récupère ce fichier lors de l'envoi.
    Mais cette opération, doit se faire à la source, une fois le publipostage effectué, il n'est pratiquement plus possible de récupérer les données.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Re,
    justement si c'est la solution, comment puis-je faire, comment me propose tu de récupérer les pièces jointes à la source lors de l'envoi?

  10. #10
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    C'est la raison pour laquelle, j'essaie de savoir comment tu fais ton publipostage.
    Si la source de données contient un identifiant pour le fichier attaché, on récupère ce fichier lors de l'envoi.
    Mais cette opération, doit se faire à la source, une fois le publipostage effectué, il n'est pratiquement plus possible de récupérer les données.
    Si tu ne dis pas comment tu fais ton publipostage, on va tourner en rond.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Je croyais avoir décrit dans mes différents mails.

    En partant d'un text lambda à envoyer, d'une source de donnée comme ceci :
    id;mail
    00001;tartanpion@aa.fr
    ...

    de deux pièces jointes à envoyer en fonction de l'id, comment ferais tu?

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut problème de fonctionnement de la macro avec OUTL2000 et Word 2000
    Bonjour, je remercie tout d'abord oliv peut être heureux oli également si ce sont les mêmes personnes d'avoir écrit pour outlook la macro VB permettant l'envoi de PJ depuis un Publipostage sous WORD ..

    je souhaitais l'utiliser avec word 2000 et outlook 2000 (et oui tjrs en office 2000) et rencontre un problème.

    la macro fonctionne car en envoyant directement un mail avec "PUBLIPOSTAGE" comme objet , le mail part avec une PJ mais lorsque j'utilise le publipostage depuis word le document est fusionné avec mes @destinataires mais la macro ne s'exécute pas ..

    Le message part tel que avec le mêm nom d'objet sans PJ..

    Est ce du à la version 2000 et y a t'il une solution ou une modif à apportée dans la macro ?

  13. #13
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Août 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Août 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut publipostage avec piece jointe parametrable
    bonjour
    j'ai le même problème. je n'arrive pas à envoyé un fichier differents suivant les destinataires. j'utilise le code suivant : il faut que j'arrive a faire passer l'identifiant du fichier dans la ligne surlignée en bleu

    merci pour vos réponses



    Pour ThisOutlooksession
    -----------------------
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    'by oliv 05/02/2007 - Corrigée par Patricia et Pascale le 15/04/2013'

    'Pour publipostage avec PJ OUTLOOK IDENTIQUE POUR TOUS LES MAILS ou INDIVIDUELLE PAR DESTINAIRE

    If Item.Class = olMail Then
    Dim objCurrentMessage As MailItem
    Set objCurrentMessage = Item
    If UCase(objCurrentMessage.Subject) Like "*PUBLIIDEM*" 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 PUBLIIDEM du sujet
    objCurrentMessage.Subject = Replace(objCurrentMessage.Subject, "PUBLIIDEM ", "")
    ElseIf UCase(objCurrentMessage.Subject) Like "*PUBLIPERSO*" Then
    'Pascale : chemin complet et extension pièce (le fichier doit être nommé avec l'adresse mail du destinataire)
    docperso = "C:\Users\Patricia\Desktop\PJ\" & objCurrentMessage.To & ".pdf"
    objCurrentMessage.Attachments.Add Source:=docperso
    'On supprime le terme PUBLIPERSO du sujet
    objCurrentMessage.Subject = Replace(objCurrentMessage.Subject, "PUBLIPERSO ", "")
    'On sauvegarde le mail
    objCurrentMessage.Save
    End If
    Set objCurrentMessage = Nothing
    End If
    End Sub









    --------------
    Pour le module
    --------------
    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 contenu = "" Then contenu = "vide"
    modifier = MsgBox(contenu & vbCr & "Voulez vous modifier les fichiers ?", vbYesNo, "Fichiers paramétrés")
    If modifier = vbYes Then
    For i = 0 To 9
    If i > 0 Then encore = MsgBox("un autre ?", vbYesNo)
    quest:
    If encore <> vbNo Then
    PJ = InputBox("Emplacement du fichier joint au PUBLIPOSTAGE?", _
    "Paramétrage du PUBLIPOSTAGE pour la session", publipostagePJ(i))
    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 & "PUBLIIDEM" & vbCr & "dans le sujet." & vbCr & "Celui-ci sera retiré lors de l'envoi"
    End Sub

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-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
  3. [WD-2007] Publipostage avec pièce jointe personnalisée
    Par mikoric dans le forum Word
    Réponses: 4
    Dernier message: 22/10/2011, 00h47
  4. Envoyer formulaire avec pièce jointe
    Par Samanta dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/03/2006, 21h35
  5. [VB]Bp envoie mail avec piéce jointe
    Par jm1213 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/02/2006, 20h55

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