Bonjour le forum,
Je fais appel à vous pour obtenir de l'aide.
Je suis confronté à un problème persistant avec le code VBA ci-dessous depuis plusieurs jours.
J'ai créé un bouton auquel j'ai associé la macro ci-dessous. Cette macro copie une plage de données et la colle dans le corps du texte du mail.
Ce que je souhaite accomplir, c'est d'ajouter avant le tableau le texte suivant :
"Bonjour,
Ci-dessous le tableau correspondant à votre demande".
Malheureusement, je n'arrive pas à obtenir les deux simultanément. Quand j'affiche le texte, je perds le tableau et quand j'ai le tableau, je perds le texte.
Est-ce qu'un expert en VBA pourrait m'aider ?
Meilleures salutations
Sub Send_Email()
Dim xRg As Range
Dim xEmailBody As String
Dim xMailOut As Object ' Utilisez Object pour éviter une référence anticipée à Outlook
' Sélectionner la plage nommée "Tableau1" dans l'onglet "Tableau"
On Error Resume Next
Set xRg = ThisWorkbook.Sheets("Tableau").Range("Tableau1")
On Error GoTo 0
If xRg Is Nothing Then
MsgBox "La plage nommée 'Tableau1' n'a pas été trouvée dans l'onglet 'Tableau'. Veuillez vérifier le nom de la plage.", vbExclamation
Exit Sub
End If
' Copier la plage sélectionnée avec la mise en forme
xRg.Copy
' Créer un nouvel objet MailItem
Set xMailOut = CreateObject("Outlook.Application").CreateItem(0)
' Remplir les détails du message
With xMailOut
.Subject = "Test"
.To = "toto@gmail.ch"
.Display
' Coller les valeurs de la plage sélectionnée avec la mise en forme dans le corps du message
.GetInspector.WordEditor.Range.PasteAndFormat 16 ' 16 pour coller en tant que tableau
End With
' Nettoyer les objets Outlook
Set xMailOut = Nothing
Set xRg = Nothing
End Sub