Probleme d'affichage des éléments lors de la création d'un mail avec VBA

Bonjour à tous,

Je suis actuellement en stage pour mes études et je bute sur un problème avec VBA:

Mon objectif est de créer un mail dans lequel j'y intègre du texte, un tableau puis a nouveau du texte.

J'y arrive presque le seul soucis est que le texte précédent le tableau se retrouve dans une cellule du tableau et j'aimerai qu'il soit bien séparé pour avoir un mail plus pro...

Voici le code que j'utilise :

Sub mail_reception()

Dim LeMail As Object, myItem As Object, wDoc As Object, rng As Object

Set LeMail = CreateObject("Outlook.Application")
Set myItem = LeMail.CreateItem(olMailItem)
Set wDoc = myItem.GetInspector.WordEditor

With myItem 

    .Subject = "Réception " & Range("B13") & "  //  Période : " & Range("F13") & " - " & Range("G13")
    .To = Range("Q8")
    .CC = Range("R10") & Range("R11") & Range("R12") & Range("R13")

    Set rng = wDoc.Content
    'rng.InsertParagraphbefore

    ' Copie du tableau de reception

    Sheets("Reception").Range("H10:L25").Copy
    rng.Paste

    rng.InsertParagraphbefore

    rng.InsertAfter "" & vbNewLine & vbNewLine & "Votre accord de réception est à renvoyer signé" & vbNewLine & vbNewLine & vbNewLine & "Salutations," & vbNewLine & vbNewLine & vbNewLine

    'rng.Move wdParagraph, -1

    rng.InsertBefore "" & vbNewLine
    rng.InsertBefore "" & vbNewLine
    rng.InsertBefore "Dans le cadre de la réception des activités Veuillez trouver ci-dessous le compte rendu d'avancement des activités nécessaire à la réception :" & vbNewLine
    rng.InsertBefore "" & vbNewLine & vbNewLine
    rng.InsertBefore "Bonjour,"

    'Insertion tableau
    'rng.Move wdParagraph, 1

    .Display 'affiche le mail avant de l'envoyer

End With

Set rng = Nothing
Set myItem = Nothing
Set LeMail = Nothing

End Sub

Merci à ceux qui prendront le temps de m'aider,

Bonne journée

Bonjour,

Quel est la ligne où tu insère ton texte et celle où tu insère ton tableau ?

Salut,

J'insère mon tableau avec cette ligne :

    Sheets("Reception").Range("H10:L25").Copy
    rng.Paste

et le texte qui pose problème avec ces lignes :

rng.InsertBefore "" & vbNewLine
    rng.InsertBefore "" & vbNewLine
    rng.InsertBefore "Dans le cadre de la réception des activités Veuillez trouver ci-dessous le compte rendu d'avancement des activités nécessaire à la réception :" & vbNewLine
    rng.InsertBefore "" & vbNewLine & vbNewLine
    rng.InsertBefore "Bonjour,"

C'est surement pas la bonne méthode car j'insère tout avant jusqu'au "Bonjour,"

essai de mettre ton texte avant l'insertion de ton tableau avec un .body

.Body = "Bonjour," & Chr(10) & Chr(10) & "Dans le cadre de la réception des activités Veuillez trouver ci-dessous le compte rendu d'avancement des activités nécessaire à la réception :" & Chr(10) & Chr(10)

Merci de ta réponse,

J'avais déjà essayé mais en fait le .body est écrasé par le suite du code et donc n'apparait pas

est ce que tu pourrais envoyer un fichier pour que je regarde ?

si oui, remplace toutes les info perso par des mots aléatoire.

11mailvba.xlsm (59.27 Ko)

Salut, voici le fichier

Merci pour ton aide

salut,

j'ai pas réussi à trouver de solution en changeant le code alors j'ai modifié la sélection pour que ta phrase au début soit aussi comprise dedans.

Regarde le fichiers pour mieux comprendre

techniquement, ça résout ton problème même si ce n'est pas comme ça que tu voulais faire

Salut,

merci de ta réponse, j'avais déjà essayé et ça fonctionne, cependant dans le texte je mets une date qui provient d'une autre cellule et avec cette technique j'obtiens une date au format : 44312 et 44337 avec comme code dans la cellule :

="les activités réalisées pendant la période du " &Mail!F13& " au " &Mail!G13& ":"

Une idée pour la transformer au format jj/mm/aaaa ?

Bonne journée,

Salut, je ne sais pas comment la transformer en format jj/mm/aaaa avec les formules Excel mais après avoir testé quelque truc avec le code de vba, j'ai réussi à obtenir le bon format.

J'espère que ça te conviendra.

Si tu as des questions, pose les moi.

Met résolue à ton poste en mettant ✓ sur un message

Bonne journée

Sub envoyerParMail()

Dim Lemail As Object
Dim myItem As Object
Dim wDoc As Object

Set Lemail = CreateObject("Outlook.Application")
Set myItem = Lemail.CreateItem(0)
Set wDoc = myItem.GetInspector.WordEditor

Set rng = wDoc.Content

With myItem

    .Subject = "Réception " & Range("B13") & "  //  Période : " & Range("F13") & " - " & Range("G13")
    .To = Range("Q8")
    .CC = Range("R10") & Range("R11") & Range("R12") & Range("R13")

    Sheets("Reception").Range("H7").Value = "Dans le cadre de la réception de la période du " _
                                            & Sheets("Mail").Range("F13").Value & " au " & Sheets("Mail").Range("G13").Value
    Sheets("Reception").Range("H6:L25").Copy
    wDoc.Range(0).Paste

    rng.InsertAfter "" & Chr(10) & Chr(10) & "Au revoir et à bientôt" & Chr(10) & Chr(10) & "Salutations," & Chr(10) & Chr(10)

    .Display

End With

Sheets("Reception").Range("H7:L7").Clear

End Sub

Top ! merci beaucoup pour ton aide

Rechercher des sujets similaires à "probleme affichage elements lors creation mail vba"