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

copier/coller dans le body d'outlook du contenu d'un fichier word


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 63
    Points : 42
    Points
    42
    Par défaut copier/coller dans le body d'outlook du contenu d'un fichier word
    Bonjour,

    via Access j'ouvre Outlook et un fichier Word, je dois copier le contenu de ce fichier Word dans le corps du message (et non envoyer le fichier Word en pièce jointe, de plus le contenu de ce fichier Word change tout le temps et je n'en suis pas maître, il m'est mis à disposition et c'est tout, donc je ne peux changer le process).

    Voici le code dont j'ai retiré tous les tests de présence, de déjà ouvert, etc.. pour alléger et simplifier la compréhension
    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
     
    Dim oApp As Outlook.Application
    Dim oMail As Outlook.MailItem
    Dim leNameSpace As NameSpace
    Dim leFolder As MAPIFolder
     
    Dim wApp As Word.Application
    Dim oWord As Word.Document
     
        On Error GoTo GestErr
     
            Set oApp = CreateObject("Outlook.Application")
            Set oMail = oApp.CreateItem(olMailItem)
            Set oAttachement = oMail.Attachments
            oMail.Body = "Test"
            oMail.Subject = "Test"
            oMail.To = "toto@free.fr"
            'je force l'ouverture d'Outlook
            Set leNameSpace = oApp.GetNamespace("MAPI")
            Set leFolder = leNameSpace.GetDefaultFolder(olFolderOutbox)
            leFolder.Display
            oMail.Display
     
            docname = "C:\test.doc"
            Set wApp = New Word.Application
            Set oWord = GetObject(docname, "Word.Document")
            'Rend Word visible 
            oWord.Application.Visible = True
            'je sélectionne tout le document Word
            oWord.Select
            wApp.Selection.Copy
            'je remets au premier plan le mail
            oMail.Display
            oMail.Body = wApp.Selection
     
     
            'Envoi le mail
            oMail.Send
            'je libère mais sciemment je ne referme ni Outlook ni Word
            Set oWord = Nothing
            Set wApp = Nothing
            Set oMail = Nothing
            Set oApp = Nothing
    Dans le corps je retrouve bien le contenu du document Word mais uniquement le texte, pas les tableaux.
    Comme Outlook et Word sont restés ouverts et que le texte sélectionné dans Word est toujours sélectionné il me suffit dans le corps du mail de faire "coller" et là je retrouve bien tout le contenu du document y compris les tableaux !!!!

    D'où ma question que dois-je faire ?
    j'ai bien regardé sur le forum mais je ne trouve rien à ce sujet, ni dans les cours.
    J'ai essayé avec oMail.HTMLBody = wApp.Selection mais cela donne le même résultat.
    Peut-être par des "Sendkey" ? mais là je ne connais absoluement pas et je trouve dommage de devoir y avoir recours (et comment faire pour sélectionner le corps du mail et simulez le "contrôle V" ou le coller du menu) donc si vous pouviez me donner soit un bout de code ou un lien j'en serais ravi.
    D'avance merci

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Peut-être ceci pour t'aider :
    Voici les deux commandes :

    DoCmd.RunCommand acCmdCopy ' copier
    DoCmd.RunCommand acCmdPaste ' coller

    pour Copier envoi touches : {end}+{home}^c
    pour Coller envoi touches : {end}+{home}^v

    Pour copier le texte d'une zone de texte, il faut dans un premier temps le sélectionner, voici comment faire :
    Me.ActiveControl.SetFocus
    Me.ActiveControl.SelStart = 0
    Me.ActiveControl.SelLength = Len(Me.ActiveControl.text)
    'le texte est sélectionné, il nous reste qu'à le copier.
    DoCmd.RunCommand acCmdCopy

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 63
    Points : 42
    Points
    42
    Par défaut
    Merci mais hélas cela ne marche pas

    DoCmd.RunCommand acCmdPaste me renvoie comme message : "erreur 2046 : La commande ou l'action 'Coller' n'est pas disponible pour l'instant" alors que le texte est bien sélectionné et que si je fais coller manuellement cela marche.

    Merci quand même et si quelqu'un a une autre idée je suis preneur.

Discussions similaires

  1. [AC-2007] copier lignes excel et coller dans corps de mail outlook (VBA)
    Par alienorcapital dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/02/2011, 16h31
  2. [XL-2003] Excel (Visual Basic) => Outlook (Copier/Coller dans Mail)
    Par Marounda dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/12/2010, 18h52
  3. [OL-2007] macro "copier-coller" dans contact outlook
    Par remitoulouse dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 19/08/2010, 01h20
  4. Protéger Couper/Copier/Coller dans un Objet en développement
    Par tibi666 dans le forum Composants VCL
    Réponses: 14
    Dernier message: 06/12/2004, 14h52
  5. [Swing]copier coller... dans le menu.
    Par parksto dans le forum Composants
    Réponses: 3
    Dernier message: 10/05/2004, 22h56

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