VBA créer un bouton pour envoyer un mail directement avec PJ

Bonjour!
je suis méga débutante et viens de découvrir aujourd'hui le VBA.
Sur Excel 2007 je souhaiterais créer un bouton pour envoyer le fichier ouvert directement par email, lorsque cette adresse mail est écrit dans le fichier. Ici c'est un bon de commande que je veux envoyer.
J'ai bien créé un bouton contrôle Active X et j'ai trouvé ce code qui m'ouvre bien Outlook, mais je n'arrive pas à ajouter automatiquement en pièce jointe le fichier, et je n'arrive pas à insérer le fameux mail (qui est en case B87):

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Bonjour,"

On Error Resume Next
With xOutMail
.To = "=B87"
.CC = ""
.BCC = ""
.Subject = "Bon de commande "
.Body = "Bonjour,"

.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub

J'avais aussi tenté fichier-> envoyer -> courrier électronique qui fonctionne pas mal mais sans mettre l'adresse mail directement dedans.
Si vous aviez des pistes pour m'aider ce serait génial!
Merci beaucoup!

Bonjour

A tester

Private Sub CommandButton1_Click()
    ' Mise à jour par Extendoffice 2017/9/14
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    Dim recipient As String

    On Error Resume Next
    ' Créer une instance d'Outlook
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)

    ' Récupérer l'adresse e-mail depuis la cellule B87
    recipient = ThisWorkbook.Sheets("NomDeLaFeuille").Range("B87").Value ' Remplacez "NomDeLaFeuille" par le nom de votre feuille

    ' Construire le corps du mail
    xMailBody = "Bonjour," & vbCrLf & vbCrLf & "Ceci est un test d'envoi d'email."

    On Error GoTo 0 ' Réinitialiser le traitement d'erreur

    With xOutMail
        .To = recipient
        .CC = ""
        .BCC = ""
        .Subject = "Bon de commande"
        .Body = xMailBody
        .Display ' ou utilisez .Send pour envoyer directement
    End With

    ' Nettoyage
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

Pensez à modifier le nom de la feuille dans ce code

merci!
J'ai fini par trouver une solution qui envoie à la bonne adresse et qui joint le fichier:

Private Sub CommandButton1_Click()
Dim xOutApp As Object
Dim xOutMail As Object
Dim recipient As String
Dim filePath As String

' Chemin du fichier Excel actuel
filePath = ThisWorkbook.FullName

' Créer une instance d'Outlook
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)

' Récupérer l'adresse e-mail depuis B87 (feuille "Bon de commande")
recipient = ThisWorkbook.Sheets("Bon de commande").Range("B87").Value

' Configurer l'email
With xOutMail
.To = recipient
.Subject = "bon de commande "
.Body = "Bonjour," & vbCrLf & vbCrLf & _

"Merci de ne pas répondre à ce mail." & vbCrLf & _

.Attachments.Add filePath ' Joindre le fichier Excel
.Display ' Affiche l'email pour vérification (remplacez par .Send pour envoyer directement)
End With

' Nettoyage
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub

Rechercher des sujets similaires à "vba creer bouton envoyer mail directement"