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

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 28
    Points : 9
    Points
    9
    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 éminent sénior
    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
    Points : 11 274
    Points
    11 274
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 28
    Points : 9
    Points
    9
    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 éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    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 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 éminent sénior
    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
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,non c'est bien AddAttachment voir http://excel.developpez.com/faq/?pag...ailCDOexchange

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    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 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...)

  7. #7
    Expert éminent sénior
    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
    Points : 11 274
    Points
    11 274
    Par défaut
    danbenzi : Salut,essaie avec envoi feuille active ou classeur complet voir le lien donné plus haut
    Pour le Classeur il faut passer par un fichier temporaire

    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
    Option Explicit
     
    Sub Tst_Wb()
    Dim SourceWb As Workbook
    Dim CdoMessage As Object
    Dim Fichier As String
     
        Set SourceWb = ActiveWorkbook
        Fichier = ThisWorkbook.Path & "/" & "Toto.xls"    
        SourceWb.SaveCopyAs Fichier
     
        Set CdoMessage = CreateObject("CDO.Message")
        With CdoMessage
            .Subject = "Exemple"
            .From = "xxxxx@wanadoo.fr"
            .To = "yyyyy@orange.fr"
            .TextBody = "Texte dans le corps de message"
            .AddAttachment Fichier
            .Send
        End With
     
        Set CdoMessage = Nothing
        'Kill Fichier
    End Sub

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Bonjour à tous deux,

    Merci pour votre aide et vos propositions.
    J'avais déjà essayé un code avec envoi de la feuille active même avec le classeur,le souci est toujours le corps du message.
    J'ai essayé le code de Casefayere mais je ne l'ai pas trop saisi.
    Il faut que je mette la fonction Sub au début et End Sub en fin sinon cela ne fonctionne pas?
    A vrai dire j'ai 2 codes, 1 qui fonctionne bien mais qui n'envoie pas la pièce jointe c'est celui-ci:

    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 _
                        & "Les Floralies  " & 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
    Et l'autre qui envoie le fichier sans corps de message c'est celui-ci:

    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
    Sub EnvoiMail()
    Dim i As Workbook
    Set i = ActiveWorkbook
    Dim Destinataire As String
    Dim Texte As String
    i.SendMail Recipients:=Range("G87").Value, Subject:="P1 du 5974", ReturnReceipt:=True
    Bcc = Range("G91")
     
    'Crée le corps du message avec insertion de sauts de ligne
        Texte = "Bonjour Olivier" & vbCrLf & vbCrLf _
                        & "Veuillez trouvez ci-joint le P1" & Range("C94").Value & vbCrLf & vbCrLf _
                        & "Cordialement " & vbCrLf _
                        & "Prénom Nom " & vbCrLf _
                        & "Grade" & vbCrLf & vbCrLf _
                        & "Les Floralies  " & vbCrLf _
                        & Range("G94").Value & vbCrLf _
                        & Range("G95").Value & vbCrLf _
                        & Range("G96").Value & vbCrLf & vbCrLf _
                        & Range("G87").Value & vbCrLf _
    'Lance le programme Outlook Express
        Shell "C:\Program Files\Outlook Express\msimn.exe " & _
            "/mailurl:mailto:" & Destinataire & _
            "?subject=" & ObjetMessage & _
            "&Body=" & Texte, vbMaximizedFocus
     i.Close savechanges:=True
    Range("B9").Select
     
    End Sub
    J'ai essayé de compiler les deux mais je n'arrive à rien.
    J'ai voulu tester le lien que Kiki m'a envoyé, je ne trouve pas mon bonheur

    C'est simple mais pourtant il y a quelque chose qui m'échappe.

    Peut être que vous verrez la faille. Merci pour votre soutien.
    Dan

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heuh!...
    bonjour a tous


    voila un exemple que j'ai élaboré pour mes besoins

    mon probleme etait que le corps du message qui etait pris dans un textbox multiligne se retrouvait sur une seule ligne dans le message maintenant tout va bien


    je met mon exemple (a adapter)
    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
    55
    56
    57
    58
    59
    60
     
     
    Sub EnvoiMail_CDO()
    messattente.Show 0
    messattente.Label1.Caption = "L 'Application transmet " & documents
    Dim iMsg As Object, iConf As Object, Flds As Object
     
    Set iMsg = CreateObject("cdo.message")
    Set iConf = CreateObject("cdo.configuration")
     
    Set Flds = iConf.Fields
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        'remplacez "smtp.nomserveur.fr" par le nom de serveur de votre FAI :
        'http://outlook.developpez.com/faq/index.php?page=Configuration#Paras_FAI
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.aliceadsl.fr"
        .Update
    End With
     
    With iMsg
        Set .Configuration = iConf
        .To = form_mail.destinataire.Value
        .From = form_mail.expediteur
        .Subject = form_mail.TITRE
      '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
      'mise en forme du paragraphe
       paragraphe = ""
    paragraphe = paragraphe & "<HEAD>" & Chr(13)
    paragraphe = paragraphe & "<BODY>" & Chr(13)
     
    Tableau = Split(form_mail.corp_du_message, vbCrLf)  'coupe la chaine du textbox par les retour a la ligne
     
        'boucle sur le tableau pour visualiser le résultat
        For i = 0 To UBound(Tableau)
            'Le résultat s'affiche dans la fenêtre d'execution de l'éditeur de macros
            paragraphe = paragraphe & "<BR>" & Tableau(i) & "<BR>" & vbCrLf
            Next i
     paragraphe = paragraphe & " Vous souhaitant bonne reception"
    paragraphe = paragraphe & "<BR>Cordialement<BR>" & "Mr toto la fritte" & "<BR>" & vbCrLf
    paragraphe = paragraphe & "<A href=mailto:l'email de mon entreprise@hotmail.fr>pour toute question Veuillez Cliquez ici pour me contacter</A>"
     
        paragraphe = paragraphe & "</BODY>"
    paragraphe = paragraphe & ""
      'MsgBox paragraphe
       'Exit Sub
     
        .HTMLBody = paragraphe
        .AddAttachment ThisWorkbook.Path & "\TEMP\" & form_mail.PIECE_JOINTE
        .Send
    End With
    FICHIER = ThisWorkbook.Path & "\TEMP\" & form_mail.PIECE_JOINTE.Value
    Kill FICHIER
    Unload messattente
    MsgBox "LE DOCUMENT A ETE TRANSMIS "
    Unload form_mail
     
     
    End Sub
     
     et ca marche parfaitement bien!!!

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Bonjour Patrick,

    Merci pour ta réponse, un souci, je ne suis pas très calé et j'ai du mal à adapter ton code.
    Destinataire et corps du message sont dans des cellules du fichier. Est-ce que CDO a une importance?

    Au niveau des deux codes que j'ai donné plus haut, ceux-ci fonctionnent mais un avec pj et l'autre qu'avec le corps du message. Je ne vois pas ou est le problème.

    Cordialement
    Dan

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour

    et alors? ca change rien a la macro

    chez moi destinataire est pris dans un textbox de mon usf
    et bien toi tu prend la range.value que tu veut

    maintenant le corp du message ches moi est aussi pris dans un textbox

    et bien toi tu le prend ou tu veux et tu l'attribu a la variable

    tien voila:
    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
    55
     
    Sub EnvoiMail_CDO()
    Dim iMsg As Object, iConf As Object, Flds As Object
     
    Set iMsg = CreateObject("cdo.message")
    Set iConf = CreateObject("cdo.configuration")
     
    Set Flds = iConf.Fields
    With Flds
     .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2       
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.aliceadsl.fr"
     
     ' ici tu met le serveur corespondant a ton fournisseur d'acces la liste tu peut la trouver dans la faq c'est ici!!!='http://outlook.developpez.com/faq/index.php?page=Configuration#Paras_FAI
     
        .Update
    End With
     
    With iMsg
        Set .Configuration = iConf
        .To = "toto@msn.com" 'ici l'adresse du destinataire
        .From = "titi@msn.com" 'ici ton adresseemail
        .Subject = "titre du message" 'ici le tire
      '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
      'mise en forme du paragraphe au format "HTML"
       paragraphe = ""
    paragraphe = paragraphe & "<HEAD>" & Chr(13)
    paragraphe = paragraphe & "<BODY>" & Chr(13)
    '************************************
    paragraphe = paragraphe & "<BR> Bonjour Olivier<BR>" & vbCrLf
    paragraphe = paragraphe & "<BR>  Veuillez trouvez ci-joint le P1" & Range("C94").Value & "<BR> " & vbCrLf
    paragraphe = paragraphe & "<BR>Cordialement<BR> " & vbCrLf
    paragraphe = paragraphe & "<BR>Prénom Nom<BR> "
    paragraphe = paragraphe & "<BR>Grade<BR>" & vbCrLf
    paragraphe = paragraphe & "<BR>Les Floralies <BR> " & vbCrLf
    paragraphe = paragraphe & "<BR>" & Range("G94").Value & "<BR>" & vbCrLf
    paragraphe = paragraphe & "<BR>" & Range("G95").Value & "<BR>" & vbCrLf
    paragraphe = paragraphe & "<BR>" & Range("G96").Value & "<BR>" & vbCrLf & vbCrLf
    paragraphe = paragraphe & "<BR>" & Range("G87").Value & "<BR>" & vbCrLf
     
    '***************************************
     paragraphe = paragraphe & " Vous souhaitant bonne reception"
    paragraphe = paragraphe & "<BR>Cordialement<BR>" & "Mr toto la fritte" & "<BR>" & vbCrLf
    paragraphe = paragraphe & "<A href=mailto:l'email de mon entreprise@hotmail.fr>pour toute question Veuillez Cliquez ici pour me contacter</A>"
     
        paragraphe = paragraphe & "</BODY>"
    paragraphe = paragraphe & ""
     
        .HTMLBody = paragraphe
      'ici on va determiner le fichier a envoyer en piece jointe  
    .AddAttachment ThisWorkbook.Path & "\TEMP\" & form_mail.PIECE_JOINTE'
        .Send
    End With
    MsgBox "LE DOCUMENT A ETE TRANSMIS "
     
    End Sub
    ca peut durrer une 15aines de secondes
    je peut pas faire plus simple
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Bonjour Patrick,

    Merci pour ta patience, peut être je me trompe mais j'ai senti de l'agacement dans ta réponse.
    Je ne vais pas ennuyez plus longtemps, j'ai repris le code, ajouter ce qu'il fallait. Il y a un débogage au niveau de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .AddAttachment ThisWorkbook.Path & "\TEMP\" & form_mail.PIECE_JOINTE
    objet requis
    Je vais essayer de voir.

    Dan

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour
    je ne suis absolument pas agacé aux contraire j'ai debuté moi aussi et j'ai sans doute posé des questions encore plus drole que toi


    le dernier code que j'ai envoyé est completement impersonel
    il y a des commentaires au endoits que tu dois adapter a toi

    si tu n'y arrive pas donne moi plus de precision

    et pour le ".AddAttachment "

    tumet du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .AddAttachment "C:\mondossier\monfichier.xls" ' ca n'est qu'un exemple
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Bonjour Patrick,

    Merci pour l'info. J'ai bien compris qu'il faut que je mette le chemin d'acces du fichier, et c'est le même débogage. Voici le code que tu m'as donné, adapté (je pense) à ma situation:


    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
    Sub EnvoiMail_CDO()
    Dim iMsg As Object, iConf As Object, Flds As Object
     
    Set iMsg = CreateObject("cdo.message")
    Set iConf = CreateObject("cdo.configuration")
     
    Set Flds = iConf.Fields
    With Flds
     .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.free.fr"
     
     
        .Update
    End With
     
    With iMsg
        Set .Configuration = iConf
        .To = "blabla@free.fr" 'ici l'adresse du destinataire
        .From = "monmail@free.fr" 'ici ton adresseemail
        .Subject = "P1 du 5974" 'ici le titre
      '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
      'mise en forme du paragraphe au format "HTML"
       paragraphe = ""
    paragraphe = paragraphe & "<HEAD>" & Chr(13)
    paragraphe = paragraphe & "<BODY>" & Chr(13)
    '************************************
    paragraphe = paragraphe & "<BR> Bonjour Olivier<BR>" & vbCrLf & vbCrLf
    paragraphe = paragraphe & "<BR>  Veuillez trouvez ci-joint le P1" & Range("C94").Value & "<BR> " & vbCrLf & vbCrLf
    paragraphe = paragraphe & "<BR>Cordialement<BR> " & vbCrLf
    paragraphe = paragraphe & "<BR>Prénom Nom<BR> "
    paragraphe = paragraphe & "<BR>Chef Gérant<BR>" & vbCrLf & vbCrLf
    paragraphe = paragraphe & "<BR>Les Floralies <BR> " & vbCrLf
    paragraphe = paragraphe & "<BR>" & Range("G94").Value & "<BR>" & vbCrLf
    paragraphe = paragraphe & "<BR>" & Range("G95").Value & "<BR>" & vbCrLf
    paragraphe = paragraphe & "<BR>" & Range("G96").Value & "<BR>" & vbCrLf  
    paragraphe = paragraphe & "<BR>" & Range("G87").Value & "<BR>" & vbCrLf
     
        paragraphe = paragraphe & "</BODY>"
    paragraphe = paragraphe & ""
     
        .HTMLBody = paragraphe
    .AddAttachment ThisWorkbook.Path & "C:\Documents and Settings\Daniel\Bureau\Dossier XYZ\FB\" & form_mail.PIECE_JOINTE '
        .Send
    End With
    MsgBox "LE DOCUMENT A ETE TRANSMIS "
     
    End Sub
    Explication du corps du mail :
    Bonjour Olivier,
    2 sauts de ligne
    Vous trouverez ci-joint le P1 du (nom du site dans la cellule C94)
    2 sauts de ligne
    Cordialement
    Mon prénom et nom
    Grade
    2 sauts de ligne
    Le nom de mon site
    1 saut de ligne
    Adresse (cellule G94)
    Ville (cellule G95)
    N° tel (cellule G96)
    2 sauts de ligne
    Adresse mail du site (cellule G87)

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour
    je me doutais bien que c'etait une petille cafouille
    alors sache que "ThisWorkbook.Path" veut dire "le dossier du classeur actif"
    supposons que ton classeur se trouve dans "C:\mondossier


    ce que tu a marqué ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .AddAttachment ThisWorkbook.Path & "C:\Documents and Settings\Daniel\Bureau\Dossier XYZ\FB\" & form_mail.PIECE_JOINTE '
    ca donnera

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .AddAttachment ""C:\mondossier"C:\Documents and Settings\Daniel\Bureau\Dossier XYZ\FB\" & form_mail.PIECE_JOINTE
    tu vois ton erreur

    allez op op op

    .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddAttachment "C:\Documents and Settings\Daniel\Bureau\Dossier XYZ\FB\" & form_mail.PIECE_JOINTE
    un dernier detail quand tu post un code met entre balises c'est plus facile pour le lecteur
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Re,

    Très bien ta réponse, j'aime bien comprendre les choses et l'explication est bien faite.
    J'ai corrigé et de nouveau un débogage à "AddAttachment" Erreur de compilation: Sub ou Function non définie.
    Quand tu dis entre balises tu veux dire entre guillemets?

    Dan

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    bonsoir

    non quand tu écris un code pour poser une question clique sur le dièse

    dis mois ou bug la macro exactement parce que la je ne comprend pas

    tien regarde ma dernière contrib

    http://www.developpez.net/forums/d10...e/#post5835864

    allez encore un peu d'effort on va y arriver j'espère que l'émail que tu dois envoyer n'est pas urgent

    non je déconne
    allez il est tard je reprendrais lundi

    regarde quand même mon formulaire et dis moi ce que tu en pense

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Bonjour patrick,

    Voici ou cela bug:
    La fenêtre qui s'ouvre et signale : "Erreur de compilation: Sub ou Function non définie"

    J'ai vu ta dernière contribution, c'est un super code mais qui dans mon cas ne serait pas nécessaire.
    En fait c'est un planning au quel j'ai ajouté au fur et à mesure des formules pour mon propre plaisir et challenge, lorsque j'ai fini les formules, je me suis lancé dans le vba pour corser l'affaire, maintenant pour finir, je voudrais ajouter l'envoi mail et le challenge sera fini, du moins jusqu'à la prochaine difficulté que je voudrais ajouter. Pourquoi pas adapter ton formulaire...
    En effet je ne suis pas pressé, si non je serai mal. Comme pour beaucoup de personnes, pour moi l'informatique c'était un clavier de machine à écrire, une "télé" et un bidule plat ou long. J'ai appris à utiliser cet outil par le biais de mon travail et maintenant je m'éclate avec excel. Mais pas qu'avec ça heureusement

    Cordialement
    Dan

  19. #19
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par danbenzi Voir le message
    Voici ou cela bug:
    La fenêtre qui s'ouvre et signale : "Erreur de compilation: Sub ou Function non définie"
    Il ne manquerait pas un petit point devant AddAttachment?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 28
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    J'ai essayé sans car avec le point il y a un bug "Erreur d'exécution 424" Objet requis sur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .AddAttachment "C:\Documents and Settings\Daniel\Bureau\Dossier xyz\FB\" & form_mail.PIECE_JOINTE '
    Je bloque à ce niveau.

    Cordialement
    Dan

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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