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 :

VBA OUTLOOK: imprimer un mail dès son envoi [OL-2010]


Sujet :

VBA Outlook

  1. #1
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut VBA OUTLOOK: imprimer un mail dès son envoi
    Bonjour,

    Je voudrais ajouter un script sur OUTLOOK qui m'imprime des mails dès leur envois (mails avec objet "Confirmation").

    Merci pour 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
    Bonsoir,

    voici un exemple à mettre dans 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
    'création d'une variable  avec des évenement sur le dossier de destination ici "Eléments envoyés"
     
    Dim WithEvents objMailSent As Outlook.Items
     
     
    Private Sub Application_Startup()
        'initialisation 
        Set objMailSent = Application.Session.GetDefaultFolder(olFolderSentMail).Items
    End Sub
     
     
     
     
    Private Sub objMailSent_ItemAdd(ByVal Item As Object)
     
        Dim Mail As Outlook.MailItem 
        If TypeName(Item) = "MailItem" Then
           Set Mail = Item
           Mail.PrintOut
        End If
     
    End Sub
    ca c'est la seule méthode pour imprimer directement le Mail (sans les PJ.) vers l'imprimante par défaut.

    On peut changer avant l'imprimante par défaut.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Declare Function SetDefaultPrinterAPI Lib "winspool.drv" Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Long
     
     
    sub change ()
    SetDefaultPrinterAPI  "nom imprimante"
    end sub
    Mais le mieux selon moi c'est d'enregistrer sur le disque le mail (.saveas) au format olDoc, puis de l'ouvrir par automation avec WORD et là on peut l'imprimer avec plus d'options !

  3. #3
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    Bonjour Oliv-,

    J’espère que vous allez bien ;-)

    J'ai mis le premier code dans "this outlook session" mais ça ne marche pas. juste une petite remarque, je veux imprimer uniquement les mails que j'envoie avec objet : "Confirmation".

    Merci beaucoup Oliv-

  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
    Bonjour, merci ça va.

    Il faut ajouter un test sur le sujet du mail( le sujet doit être précisément celui-là !),
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Mail.subject ="Confirmation" then Mail.PrintOut
    et initialiser la variable soit en relançant Outlook ou en lançant Application_Startup()

    Ça ne marche que si l'option "ne pas enregistrer" n'est pas cochée et si le dossier de classement est "Eléments envoyés"

  5. #5
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    Ca marche Nickel avec objet "Confirmation".

    Désolé je vous ai induit en erreur . Au faite , Je voudrais mettre la condition " l'objet contient le mot Confirmation ".

    Merci beaucoup d'avance.

  6. #6
    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
    utilises instr()

  7. #7
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    Salut,

    La fonction instr () nécessite mettre toute la chaîne de caractère sur laquelle on voulait faire la recherche. par contre l'objet de mon mail est variable (uniquement le mot Confirmation est figé). j'ai fait cette modification mais ça fonctionne toujours pas.

    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
    'création d'une variable  avec des évenement sur le dossier de destination ici "Eléments envoyés"
     
    Dim WithEvents objMailSent As Outlook.Items
     
     
    Private Sub Application_Startup()
        'initialisation
        Set objMailSent = Application.Session.GetDefaultFolder(olFolderSentMail).Items
    End Sub
     
     
     
    Private Sub objMailSent_ItemAdd(ByVal Item As Object)
     
        Dim Mail As Outlook.MailItem
     
     
        If TypeName(Item) = "MailItem" Then
           Set Mail = Item
           If InStr(Mail.Subject, "Confirmation") Then
           Mail.PrintOut
           End If
        End If
     
    End Sub

  8. #8
    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
    essaye comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if InStr(1, Mail.Subject, "Confirmation", vbTextCompare) then

  9. #9
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    Merci infiniment cher Oliv-

    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [vba-outlook]Parcourir un mail
    Par sempire dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 15/08/2009, 07h15
  2. [XL-2003] Envoi mail via vba - outlook 2003
    Par NELAIN dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/04/2009, 15h54
  3. Réponses: 2
    Dernier message: 10/06/2008, 13h24
  4. Envoi d'un mail en VBA: outlook ne se lance pas
    Par Hannibal dans le forum VBA Access
    Réponses: 4
    Dernier message: 01/06/2003, 15h24
  5. [VB6] [Outlook] Imprimer un mail en VB
    Par der dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 12/09/2002, 14h20

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