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

Macros et VBA Excel Discussion :

Envoi de mail et lien Excel word :aide


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    salarié
    Inscrit en
    Octobre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Octobre 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Envoi de mail et lien Excel word :aide
    Bonjour, je viens vers vous avec un petit soucis ...

    J'ai créé une macro sur excel qui me permet de remplir un champ (plusieurs par la suite) dans un document word et d'envoyer celui-ci automatiquement via Outlook en pièce jointe.
    Sur le principe, il semble que cela puisse marcher mais je me retrouve avec deux petits problèmes qu'un expert VBA pourra certainement solutionner très vite.
    - il faudrait que je vide le champ avant de réintroduire une donnée car sinon elles se cumulent sur le document
    - malgré le fait que je crois avoir sauvegardé (.Save) le document word, il me mets en pièce jointe la version avant sauvegarde!
    Là, je bloque ... je cherche une âme charitable

    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
     
        Private Sub CommandButton1_Click()
     
            Dim WordApp As Word.Application
            Dim WordDoc As Word.Document
            Set WordApp = New Word.Application
            Set WordDoc = WordApp.Documents.Open("C:\Users\Patrick\Desktop\Commande.docx")
            WordApp.Visible = False
     
            WordDoc.Fields(1).Result.Text = Range("F3")
            WordDoc.Save
            WordDoc.Close True
            WordApp.Quit
     
     
            Dim fichier
            fichier = "C:\Users\Patrick\Desktop\Commande.docx"
     
            Set myApp = CreateObject("Outlook.Application")
            Set myItem = myApp.CreateItem(olMailItem)
            myItem.Subject = "Commande en cours"
            myItem.Body = "Merci de bien vouloir prendre en compte ma commande"
            myItem.Attachments.Add fichier
            myItem.to = "patrick.quinard@aliceadsl.fr"
            myItem.Display
            myItem.Send
     
            MsgBox "Le mail a bien envoyé"
     
        End Sub
    Merci d'avance
    Cordialement
    Patrick

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur étude
    Inscrit en
    Novembre 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur étude

    Informations forums :
    Inscription : Novembre 2016
    Messages : 50
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    Attention à votre adresse mail qui apparait dans le code: tout le monde peut la voir (risque de spam en même temps).
    Vous devriez éditer le post et remplacer l'adresse par autre chose.

    Yohann

    De mon côté, il envoie bien le fichier sauvegardé; par contre, j'ai aussi le premier problème, mais en fait c'est plus subtil: le texte du champ reste toujours vide, et le texte est ajouté à WordDoc.Content.Text, et pas dans le champ.

    Quelqu'un aurait-il une idée svp?

    Finalement, j'ai réussi comme ceci. Je ne sais pas si c'est le mieux mais ça fonctionne.

    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
    Private Sub CommandButton1_Click()
     
            Dim WordApp As Word.Application
            Dim WordDoc As Word.Document
            Set WordApp = New Word.Application
            Set WordDoc = WordApp.Documents.Open("chemin\fichier.docx") ' à modifier
            WordApp.Visible = False
     
            WordDoc.Fields.Item(1).Code.Words.Item(3).Text = Range("F3")
            WordDoc.Fields.Item(1).Update
            WordDoc.Save
            WordDoc.Close True
            WordApp.Quit
     
            Dim fichier
            fichier = "chemin\fichier.docx"
     
            Set myApp = CreateObject("Outlook.Application")
            Set myItem = myApp.CreateItem(olMailItem)
            myItem.Subject = "Commande en cours"
            myItem.Body = "Merci de bien vouloir prendre en compte ma commande"
            myItem.Attachments.Add fichier
            myItem.to = "mail@mail.com" 'à modifier
            myItem.Display
            myItem.Send
     
            MsgBox "Le mail a bien envoyé"
     
    End Sub
    Dis-moi si c'est OK.

    Yohann

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