Bouton ou "ctrl+m" pour envoyer un mail

Fermé
lolozoulette - 19 mars 2021 à 14:29
lolozoulette Messages postés 4 Date d'inscription vendredi 19 mars 2021 Statut Membre Dernière intervention 23 mars 2021 - 23 mars 2021 à 08:57
Bonjour
J'ai besoin d’envoyer toutes les fins de semaines un fichier Excel.
Toujours le même fichier aux mêmes (7) personnes. Via Outlook.
avec en plus du fichier un message :
Bonjour
merci de trouver ci-joint la dernière version du fichier de remboursement.
Bien à vous
Laurence
Si qq'un peut m'envoyer un code VBA qui fait le Job ?
merci à tous pour votre aide
Belle après-midi
Laurence
A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
19 mars 2021 à 15:41
0
lolozoulette Messages postés 4 Date d'inscription vendredi 19 mars 2021 Statut Membre Dernière intervention 23 mars 2021
Modifié le 22 mars 2021 à 09:13
Bonjour,

Merci, mais je n'arrive pas à inclure de texte, ni plusieurs adresses mail.

bonne journée
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
22 mars 2021 à 11:04
Tout est expliqué là:

Sub TestEnvoiEmail_Variables()
'par Excel-Malin.com ( https://excel-malin.com )

'définition des variables
Dim MonSujet As String
Dim MonDestinataire As String
Dim MonContenu As String
Dim MaPieceJointe As String

'attribution des valeurs aux variables
MonSujet = "Test d'email d'Excel avec variables"
MonDestinataire = "jean.dupont@dupont.fr;pierre.durand@durand.fr;alain.duval@duval.fr"
MonContenu = "Bonjour Jean, voici un petit message de test... Avec un fichier en plus."
MaPieceJointe = "C:\Test\MonFichierExcel.xlsx"
    
    'test envoi de l'email
        Call EnvoyerEmail(MonSujet, MonDestinataire, MonContenu, MaPieceJointe)

MsgBox "Test terminé..."
End Sub


Voilà
0
lolozoulette Messages postés 4 Date d'inscription vendredi 19 mars 2021 Statut Membre Dernière intervention 23 mars 2021
Modifié le 22 mars 2021 à 15:59
Re,
j ai essayé en copiant et en mettant les données nécessaires mais j'ai un message d'erreur

Ci dessous ce que j'ai écrits :
Sub TestEnvoiEmail_Variables()

'définition des variables
Dim MonSujet As String
Dim MonDestinataire As String
Dim MonContenu As String
Dim MaPieceJointe As String

'attribution des valeurs aux variables
MonSujet = "FICHIER REMBOURSEMENT DU SERVICE CLIENT"
MonDestinataire = "toutes les adresses mail séparées par ; "
MonContenu = "Bonjour à tous, ci-joint la dernière version du Fichier des Remboursements. Belle journée. Laurence."
MaPieceJointe = "C:\Users\lllo\Desktop\Fichier remboursement CRM.xlsm"
    
   
End Sub




Ca ne marche pas....
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
22 mars 2021 à 11:53
tu as oublié de mettre ceci à la fin avant End Sub:

'test envoi de l'email
        Call EnvoyerEmail(MonSujet, MonDestinataire, MonContenu, MaPieceJointe)
0
lolozoulette Messages postés 4 Date d'inscription vendredi 19 mars 2021 Statut Membre Dernière intervention 23 mars 2021 > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
22 mars 2021 à 12:18
j'ai testé mais j'ai ce message d'erreur
Erreur de compilation :
Sub ou Function non definie
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > lolozoulette Messages postés 4 Date d'inscription vendredi 19 mars 2021 Statut Membre Dernière intervention 23 mars 2021
22 mars 2021 à 12:55
Je me demande si tu as lu la totalité de la procédure!
il faut mettre ceci aussi, si tu veux que cela fonctionne!

'Ajouter la Référence Microsoft Outlook X.0 Object Library
Sub EnvoyerEmail(ByVal Sujet As String, ByVal Destinataire As String, ByVal ContenuEmail As String, Optional ByVal PieceJointe 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

       .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


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


Relis toute la procédure à effectuée

@+
0
lolozoulette Messages postés 4 Date d'inscription vendredi 19 mars 2021 Statut Membre Dernière intervention 23 mars 2021 > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
23 mars 2021 à 08:57
Bonjour
Encore merci pour ton aide. mais je n'y arrive pas....
Tanpis je garde la bonne vieille méthode joindre un fichier.
bonne journée
0