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 Word Discussion :

Envoi document Word par Outlook


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Envoi document Word par Outlook
    Bonjour

    Je souhaite envoyer le contenu d'un document word par le biais d'outlook avec les critères suivants:
    • le contenu du document Word doit être dans le corps du message Outlook
    • Cocher les options Outlook : confirmation de lecture et accusé reception
    • modifier l'option de remise càd : Enregistrer le document une fois émis
      dans un dossier particulier
    • Insérer la signature enregistrer dans Outlook


    A force de rechercher sur les forums et FAQ j'ai trouvé deux solutions, mais qui ne répondent pas complètement à ma demande. Dans les codes ci-dessous je n'ai pas implémenté l'insertion de la signature dans le mail .


    1 - Utiliser la fonction CreateItem(olMailItem)

    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
     
    Sub EnvoiMail()
    Dim oApp As Outlook.Application
    Dim MyIt As MailItem
    Dim myNameSpace As Outlook.NameSpace
    Dim stTemp
    Dim myRange As Range
    Dim objNS As NameSpace
    Dim objFolder As MAPIFolder
     
     
    ' Selection du document et copy
    Set myRange = ActiveDocument.Range
    myRange.WholeStory
    myRange.Select
    stTemp = Selection.Text
     
    Set oApp = CreateObject("outlook.application")
    Set MyIt = oApp.CreateItem(olMailItem)
    MyIt.To = "dest"
    MyIt.Subject = "test" & Date
    MyIt.BodyFormat = olFormatHTML
    MyIt.Body = stTemp  'Document word
     
    Set objNS = oApp.GetNamespace("MAPI")
    Set objFolder = objNS.Folders("DossiersP").Folders("TEST")
    Set MyIt.SaveSentMessageFolder = objFolder
     
    'affichage
    MyIt.Display
    End sub
    Remarques:
    • Le texte est copié mais pas la mise en forme (gras, tableau, image...) Selection.text
    • Je ne sais pas codé l'accusé de réception et la confirmation de lecture
    • Ok pour le dossier destination



    2 - Utiliser ActiveWindow.EnvelopeVisible = True


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Envoimail2()
        ActiveWindow.EnvelopeVisible = True
        With ActiveDocument
         .MailEnvelope.Item.To = "dest"
         .MailEnvelope.Item.Subject = "test" & Date
         .MailEnvelope.Item.BodyFormat = olFormatHTML
    End With
     
    End Sub
    Remarques:
    • Le texte est copié avec conservation de la mise en forme
    • Je ne sais pas codé l'accusé de réception et la confirmation de lecture
    • KO pour codé le dossier destination


    En conclusion :
    • les deux méthodes sont différentes mais il est peut-être possible de les matcher ??
    • Je suis preneur du code pour insérer la signature enregistrée dans Outlook


    Merci pour votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Je viens de trouver une solution pour l'exemple 1


    En rouge les modifs

    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
    42
    43
    44
    45
    Sub EnvoiMail()
    Dim oApp As Outlook.Application
    Dim MyIt As MailItem
    'Dim myAtt As Attachment
    Dim myNameSpace As Outlook.NameSpace
    Dim stTemp
    Dim myRange As Range
    Dim objNS As NameSpace
    Dim objFolder As MAPIFolder
    
    
    'Copie du document Actif
    Set myRange = ActiveDocument.Range
    Set mycontent = ActiveDocument.Content
    mycontent.Select
    mycontent.Copy   
    
    
    Set oApp = CreateObject("outlook.application")
    Set MyIt = oApp.CreateItem(olMailItem)
    MyIt.To = "dest"
    MyIt.Subject = "test"
    MyIt.BodyFormat = olFormatHTML
    'MyIt.Body =     
    
    'ajout accusé réception et confirmation de lecture
    MyIt.OriginatorDeliveryReportRequested = True
    MyIt.ReadReceiptRequested = True
    
    
    'Affectation dossier envoi mail
    Set objNS = oApp.GetNamespace("MAPI")
    Set objFolder = objNS.Folders("Dossiers").Folders("TEST")
    Set MyIt.SaveSentMessageFolder = objFolder
    
    
    'affichage
    MyIt.Display
    
    'copy de la selection en format image
    Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, _
            Placement:=wdInLine, DisplayAsIcon:=False
     
    End Sub
    Explication pour la signature : Le fait de ne pas mettre MyIt.body force OUTLOOK à positionner la signature enregistrée dans les paramètres


    Merci de me donner votre avis svp

Discussions similaires

  1. [WD-2007] Envoi d'un document word par mail sans pièce jointe
    Par Alexou. dans le forum VBA Word
    Réponses: 0
    Dernier message: 01/08/2012, 14h24
  2. Envoi de mails par Outlook
    Par popofpopof dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/06/2007, 20h54
  3. Réponses: 2
    Dernier message: 07/06/2006, 09h50
  4. [VB.NET] Envoie de mail par outlook
    Par olbi dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/04/2006, 17h03
  5. Réponses: 11
    Dernier message: 26/04/2005, 09h23

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