Bonjour, j'ai ce code mais je n'arrive pas à insérer la pièce jointe, elle se met dans le corps du texte.
j'y arrivait en étant en olFormatHTML mais je n'arrivait pas à faire les sauts de ligne avec "vbCrLf"
Maintenant, je peux faire des sauts de ligne mais la pièce jointe n'est plus intégrée...
Quelqu'un a une idée svp ?
Merci d'avance
	
	
	
	
	
		
	
	
	
	
	
		
	
	
	
	
	
		
	
	
	
	
	
		
	
		
			
		
		
	
				
			j'y arrivait en étant en olFormatHTML mais je n'arrivait pas à faire les sauts de ligne avec "vbCrLf"
Maintenant, je peux faire des sauts de ligne mais la pièce jointe n'est plus intégrée...
Quelqu'un a une idée svp ?
Merci d'avance
		VB:
	
	
	Sub Mail_facture_non_reglee()
'définition des variables
Dim MonSujet As String
Dim MonDestinataire As String
Dim MonContenu As String
Dim MaPieceJointe As String
Dim AdresseExpediteur As String
'attribution des valeurs aux variables
MonSujet = "objet"
MonDestinataire = Worksheets("SUIVI FACTURES").Range("P4")
MonContenu = "Bonjour," & vbCrLf & Range("AX2") & Range("S3") & Range("AX3")
MaPieceJointe = Worksheets("SUIVI FACTURES").Range("P5")
AdresseExpediteur = "email@email.com.com"
    
    'test envoi de l'email
        Call EnvoyerEmail(MonSujet, MonDestinataire, MonContenu, MaPieceJointe, AdresseExpediteur)
MsgBox "Test terminé..."
End Sub
		Code:
	
	
	Private Sub PreparerOutlook(ByRef oOutlook As Object)
'par Excel-Malin.com ( https://excel-malin.com )
'------------------------------------------------------------------------------------------------
'Ce code vérifie si Outlook est prêt à envoyer des emails... Et s'il ne l'est pas, il le prépare.
'------------------------------------------------------------------------------------------------
On Error Resume Next
    'vérification si Outlook est ouvert
    Set oOutlook = GetObject(, "Outlook.Application")
    
    If (Err.Number > 0) Then 'si Outlook n'est pas ouvert, une instance est ouverte
        Err.Clear
        Set oOutlook = CreateObject("Outlook.Application")
        
        If (Err.Number > 0) Then
            MsgBox "Une erreur est survenue lors de l'ouverture de Outlook..."
            Exit Sub
        Else
        End If
        
    Else    'si Outlook est ouvert, l'instance existante est utilisée
    End If
End Sub
		Code:
	
	
	Sub EnvoyerEmail(ByVal Sujet As String, ByVal Destinataire As String, ByVal ContenuEmail As String, Optional ByVal PieceJointe As String, Optional ByVal AdresseExpediteur As String)
'par Excel-Malin.com ( https://excel-malin.com )
On Error GoTo EnvoyerEmailErreur
'définition des variables
Dim oOutlook As Outlook.Application
Dim oMailItem As Outlook.MailItem
    'vérification si le Contenu du mail n'est pas vide. Si oui, email n'est pas envoyé. Si vous voulez pouvoir envoyer les email vides, mettez en commentaire les 4 lignes de code qui suivent.
    If Len(ContenuEmail) = 0 Then
        MsgBox "Mail non envoyé car vide", vbOKOnly, "Message"
        Exit Sub
    End If
    
    'préparer Outlook
    PreparerOutlook oOutlook
    Set oMailItem = oOutlook.CreateItem(0)
    
    'création de l'email
    With oMailItem
        .To = Destinataire
        .Subject = Sujet
        
        'CHOIX DU FORMAT
        '----------------------
        'email formaté comme HTML (aussi par défaut)
            '.BodyFormat = olFormatHTML
            '.HTMLBody = "<html><p>" & ContenuEmail & "</p></html>"
            
        'OU
            
        'email formaté comme simple texte sans formats
            '.BodyFormat = olText
            '.Body = ContenuEmail
            
        'OU
                
        'email formaté comme texte riche (= avec formats)
            .BodyFormat = olFormatRichText
            .Body = ContenuEmail
        '----------------------
        
        If PieceJointe <> "" Then .Attachments.Add PieceJointe
        
            'sélection de l'addresse de l'expéditeur
            If AdresseExpediteur <> "" Then
                Dim CompteOutlook As Account
                
                For Each CompteOutlook In oOutlook.Session.Accounts
                    If CompteOutlook.SmtpAddress = AdresseExpediteur Then
                        .SendUsingAccount = CompteOutlook
                        Exit For
                    End If
                Next CompteOutlook
            Else
            End If
        
       .Display   '<- affiche l'email (si vous ne voulez pas l'afficher, mettez cette ligne en commentaire)
       .Save      '<- sauvegarde l'email avant l'envoi (pour ne pas le sauvegarder, mettez cette ligne en commentaire)
       '.Send      '<- envoie l'email (si vous voulez seulement préparer l'email et l'envoyer manuellement, mettez cette ligne en commentaire)
    End With
    
   'nettoyage...
    If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing
    If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing
    
   Exit Sub
EnvoyerEmailErreur:
    If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing
    If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing
 
    MsgBox "Le mail n'a pas pu être envoyé...", vbCritical, "Erreur"
End Sub
		Code:
	
	
	 Function OutlookOuvert() As Boolean
   Dim oOL As Object
   On Error Resume Next
   Set oOL = GetObject(, "Outlook.Application")
   On Error GoTo 0
   OutlookOuvert = Not (oOL Is Nothing)
   Set oOL = Nothing
 End Function 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		