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 mail en vba avec corps message [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 28
    Par défaut Envoi mail en vba avec corps message
    Bonjour à tous,

    Je voudrai inclure un corps de message à mon envoi du classeur en fichier joint via excel en vba.
    J'ai une macro où il y a bien le corps du message mais pas le fichier joint.
    J'ai essayé de combiner avec d'autres formules mais je n'y arrive pas.
    Quelqu'un pourrait me dire ce qui cloche. Merci
    Voici la macro:

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Sub EnvoiFeuilCalculMail()
     
        Dim Copie As String
        Dim Destinataire As String
        Dim ObjetMessage As String
        Dim CorpsMessage As String
        Dim EnvoiDirect As Boolean
     
     
    Set Wbk = ActiveWorkbook
     
            ObjetMessage = "P1 du " & Range("H4").Value
            Destinataire = Range("G68").Value
            Copie = Range("G72").Value
     
     'Désactivation de la mise à jour de l'écran
        Application.ScreenUpdating = False
     
     'Crée le corps du message avec insertion de sauts de ligne
        CorpsMessage = "Bonjour Olivier" & vbCrLf & vbCrLf _
                        & "Veuillez trouvez ci-joint le P1" & Range("C74").Value & vbCrLf & vbCrLf _
                        & "Cordialement " & vbCrLf _
                        & "Prénom Nom " & vbCrLf _
                        & "Grade" & vbCrLf & vbCrLf _
                        & "Etablissement  " & vbCrLf _
                        & Range("G74").Value & vbCrLf _
                        & Range("G75").Value & vbCrLf _
                        & Range("G76").Value & vbCrLf & vbCrLf _
                        & Range("G68").Value & vbCrLf _
     
     
      'Demande à l'utilisateur s'il souhaite ou non vérifier le mail
        If MsgBox("Souhaitez-vous envoyer le mail directement sans vérification ?", 36, "Confirmation") = 6 Then
          EnvoiDirect = True
          Else
          EnvoiDirect = False
        End If
     
    'Lance le programme Outlook Express
        Shell "C:\Program Files\Outlook Express\msimn.exe " & _
            "/mailurl:mailto:" & Destinataire & _
            "?subject=" & ObjetMessage & _
            "&Body=" & CorpsMessage, vbMaximizedFocus
     
     
    'Message confirmant l'envoi du mail avec précision de l'heure d'envoi
        MsgBox "Message envoyé avec Outlook Express à " & Format(Time(), "hh:mm"), vbOKOnly, "Opération réussie"
     
    'Réactivation de la mise à jour de l'écran
        Application.ScreenUpdating = True
     
    Range("B9").Select
     
    End Sub

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut,même si j'ai OExpress j'utilise la méthode suivante via CDO
    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
    Option Explicit
     
    Sub Envoi()
    Dim CdoMessage As Object
    Dim sFichier As String
        sFichier = "C:\Transfert\Essai.xls"
        Set CdoMessage = CreateObject("CDO.Message")
        With CdoMessage
            .Subject = "Essai"
            .From = "xxxxx@xxxxx.fr"
            .To = "yyyyy@yyyyy.fr"
            .TextBody = "BlaBlaBla"
            .AddAttachment sFichier
            .Send
        End With
        Set CdoMessage = Nothing
    End Sub
    Voir http://excel.developpez.com/faq/?page=Messagerie

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 28
    Par défaut
    Bonsoir,

    Merci pour la réponse, j'ai essayé le code malheureusement il y a un débogage au niveau de AddAttachment sFichier
    qui me dit que le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus.
    Je vais plancher dessus encore.

    Dan

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Perso quand j'envoie des mails avec fichier joint, l'écriture se fait ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Attachments.Add lefichier

    et non ".AddAttachment"
    à voir
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut,non c'est bien AddAttachment voir http://excel.developpez.com/faq/?pag...ailCDOexchange

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    C'est peut-être différent sans outlook, mais voici comment j'envoie un mail avec pièce jointe (et ça fonctionne), malgré le lien proposé par Kiki que j'ai consulté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Shell """C:\Program Files (x86)\Microsoft Office\Office12\OUTLOOK.EXE"""
    Set ol = New Outlook.Application
    Set olmail = ol.CreateItem(olMailItem)
    With olmail
        .To = admail
        .Subject = "CHALETS A JOUR" 'Sujet
        .Body = messmail 'Corps du mail
        .Attachments.Add nomaff
        If verifimp = True Then 'cette ligne, c'est ma sauce
            .Attachments.Add nom
        End If
        .Display '.Send 
        ..........
    end with
    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. pb envoi mail "Could not access 'CDO.Message' object"
    Par adaneels dans le forum ASP.NET
    Réponses: 3
    Dernier message: 07/05/2009, 15h29
  2. Envoi mail en VBA.
    Par monf29 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/06/2007, 15h33
  3. [Mail] envoi mail en masse avec fonction bcc
    Par jarod71 dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2006, 11h44
  4. Envoi mail par Notes avec un autre nom
    Par why-not-mi dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/10/2005, 16h35
  5. script envoi mail et fax avec CDO
    Par RobinNono dans le forum ASP
    Réponses: 1
    Dernier message: 03/10/2005, 15h36

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