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 :

Envoie fichier par email [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Envoie fichier par email
    Bonjour,

    j'utilise actuellement une macro me permettant d'afficher une partie de mon tableau dans un document word.

    Est il possible qu'automatiquement, ce document word s'ajoute en PJ d'un email avec une adresse et un objet prédéfini?

    la macro est la suivante?

    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
    Sub Excel_Word()
     
    Dim oWdApp As Object 'Word.Application
    Dim oWdDoc As Object 'Word.Document
     
    'Lancer une instance Word
    Set oWdApp = CreateObject("Word.Application")
     
    'Ouvrir un nouveau document
    Set oWdDoc = oWdApp.Documents.Open("C:\Users\utilisateur\contrat.docx")
     
    'Rendre Word visible
    oWdApp.Visible = True
     
    'Copier une plage depuis Excel
    ActiveSheet.Range("A10:X38").Copy
     
    'Coller la plage dans Word
    oWdApp.Selection.Paste
     
    'Annuler le mode couper/copier
    Application.CutCopyMode = False
     
    End Sub
    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Essaie :

    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
    Sub Excel_Word()
     
    Dim oWdApp As Object 'Word.Application
    Dim oWdDoc As Object 'Word.Document
     
    'Lancer une instance Word
    Set oWdApp = CreateObject("Word.Application")
     
    'Ouvrir un nouveau document
    Set oWdDoc = oWdApp.Documents.Open("C:\Users\Daniel\Documents\Donnees\Daniel\mpfe\contrat.docx")
     
    'Rendre Word visible
    oWdApp.Visible = True
     
    'Copier une plage depuis Excel
    ActiveSheet.Range("A10:X38").Copy
     
    'Coller la plage dans Word
    oWdApp.Selection.Paste
     
    'Annuler le mode couper/copier
    Application.CutCopyMode = False
     
    'Enregistrer le document
    oWdDoc.Save
    oWdDoc.Close
        Set OlApp = CreateObject("Outlook.application")
        Set m = OlApp.CreateItem(olMailItem)
        With m
            .Subject = "Subject"
            .Attachments.Add "C:\Users\utilisateur\contrat.docx"
            .Recipients.Add "test@test.com"
            .Send
        End With
    Set oWdDoc = Nothing
    Set oWdApp = Nothing
    Set m = Nothing
    Set OlApp = Nothing
    End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Merci Daniel pour ta réactivité, cela fonctionne parfaitement

    Pour info : est il possible de valider le mail avant de l'envoyer?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Oui,

    Mets :

    en ligne 33 au lieu de :


  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Super !

    Super, vraiment un grand merci !!!

    J'ai juste une dernière question :

    Sais-tu comment rajouter du texte dans le corp de message.

    .Textbody = "test" ==> ne fonctionne pas.

    A+

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut heu...!!!
    bonjour la macro de daniel est tres bien, ca tombee bien que tu a outlook mais si tu utilise ton fichier ou outlook n'est pas configuré la la cata!!

    tu a la solution avec "CDO" aussi en utilisant le smtp de ton "FAI"
    cette solution marche dans tout les cas il suffit de metre le bon serveur de ton fournisseur

    tu a çà dans les contributions

    le lien est dans ma signature


    au plaisir

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    @Patrick : Visiblement je n'ai pas de problème avec Outlook. Quel pourrait être le soucis?

    @Daniel : encore question : La macro copie une zone Excel de toutes les feuilles précédentes or je veux uniquement la zone de la feuille sur laquelle on active la macro. Je pensais que Activesheet.Range permettait d’éviter cela

    Encore merci pour l'aide.

    Finalement je me rends compte que la macro de Daniel enregistre le doc Word, donc des que je relance la macro cela superpose les infos.

    Est il possible de mettre en PJ uniquement le word "temporaire" , j'aimerai que mon doc reste vierge par la suite(ne pas l'enregistrer)

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    bonjour

    il n'y a pas de problème avec outlook si ce n'est que si tu utilise ton fichier

    sur plusieurs or dis et que sur l'un d'entre eux n'a pas outlook ou si outlook n'est pas configuré et ben c'est le mur
    tandis que si tu regarde mon fichier mailler dans les contributions et il y en a d'autre aussi ,ce fichier utilise la méthode "CDO" et donc le serveur smtp du fournisseur d'accès sur le quel l'ordi est connecté
    dans mon fichier on sélectionne le fournisseur, le destinataire,expéditeur,la pièce jointe, et cela sans sortir du fichier

    tu pourrais adapter la macro envoi mail qui ce trouve dans son propre module
    a mon fichier

    le lien est dans ma signature

    voila

    au plaisir

  10. #10
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Que tu utilises ma macro ou plus généralement CDO, tu ne peux envoyer qu'un fichier enregistré. Il faut que tu l'enregistres sous un autre nom qui te servira pour l'envoi.

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

Discussions similaires

  1. Problème envoi d'un fichier par email
    Par Hellgast dans le forum Réseau
    Réponses: 8
    Dernier message: 19/09/2009, 23h59
  2. envoi d'un fichier par email
    Par Hellgast dans le forum Réseau
    Réponses: 5
    Dernier message: 14/09/2009, 14h50
  3. Envoyer un fichier par email
    Par _SamSoft_ dans le forum Réseau
    Réponses: 11
    Dernier message: 16/04/2007, 09h01
  4. Envoyer un fichier par email
    Par portu dans le forum Delphi
    Réponses: 3
    Dernier message: 30/05/2006, 11h02
  5. Envoi Formulaire par Email, la soupe...!
    Par ni31x dans le forum Langage
    Réponses: 14
    Dernier message: 19/12/2005, 22h04

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