Macro envoi mail

noel33

XLDnaute Occasionnel
Bonjour à tous,

Je sèche sur cette macro:

Envoyer un fichier xlms en mail outlook : j'ai une erreur inattendue!

Quelqu'un a une solution SVP?
 

Pièces jointes

  • Compte rendu.xlsm
    50.2 KB · Affichages: 36

Lone-wolf

XLDnaute Barbatruc
Bonjour noel

La macro faut la mettre dans le module standard et non dans le module de la feuille. NomFichier.ext, ce n'est pas plutôt NomFichier.txt ?? :rolleyes:. Et "C:\Chemin\NomFichier.ext", est-tu sûr que le chemin est correct?? :rolleyes: . Il faut aussi ajouter End Sub.
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re

Tu as bien un module non? Tu fait un couper-coller du code, c'est tout simple non?.

module.gif


Si tu veux que Outlook reste visible, il faut supprimer ObjOutlook.Quit.
Si tu veux visualiser le message avant de l'envoyer, il faut mettre en commentaire .Send, comme ceci

VB:
With ObjectMail
.Display
'.Send
End With
 
Dernière édition:

noel33

XLDnaute Occasionnel
Extra, cela marche.

Deuxième étape.....

J'aimerai que le sujet du mail soit du genre
"comte rendu du " avec la date de l'envoi...

et que dans le texte j'ai les références qui auraient été inscrites dans les cellules B11 à B30...

sais tu comment faire STP?

D'avance merci,

N.
 

Lone-wolf

XLDnaute Barbatruc
Re

Un essai comme ceci

VB:
Option Explicit
'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
Sub Test()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim i As Long, str As String, corps As String, _
dest As String, Nom_Fichier As String

    Set ObjOutlook = New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
    '---------------------------------------------------------
    'Exemple pour envoyer un classeur en pièce jointe
    'Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
    'If Nom_Fichier = "Faux" Then Exit Sub
    '---------------------------------------------------------
    'Ou bien entrer le path et nom du fichier autrement
    Nom_Fichier = "C:\Chemin\NomFichier.ext"
    If Nom_Fichier = "" Then Exit Sub
    '---------------------------------------------------------
    With Feuil1
        For i = 11 To 30
            str = str & .Cells(i, 2) & vbLf
        Next i
    End With

    dest = Sheets("Data").Range("o2").Value 'adresse email du destinataire
    corps = "Bonjour," & vbLf & vbLf & "Voici les références: " & vbLf & vbLf & str

    With oBjMail
        .To = dest   'le destinataire
        .Subject = "Comte rendu du " & Format(Date, "dd mmmm yyyy")   ' l'objet du mail
        .Body = corps  'le corps du mail ..son contenu
        '.Attachments.Add Nom_Fichier    ' "C:\Data\essai.txt"  ou Nomfichier
        .Display  'ici on peut supprimer pour l'envoyer sans vérification
        '.Send
    End With
    'ObjOutlook.Quit
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
End Sub
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re

Si c'est le nom de la personne, tu met en P2: Toto AMOTO par exemple; ensuite tu déclare la variable sujet As String

VB:
With Feuil1
        For i = 11 To 30
            str = str & .Cells(i, 4) & "    " & .Cells(i, 2) & "           " & .Cells(i, 7) & vbLf
        Next i
End With

With Sheets("Data")
          dest = .Range("o2").Value 'adresse email du destinataire
          sujet = "Comte rendu du " & Format(Date, "dd mmmm yyyy") &  " par " & .Range("p2").Value
End With

corps = "Bonjour," & vbLf & vbLf & "Voici les références: " & vbLf & vbLf & _
    "MSN  RÉFÉRENCE  TYPE" & vbLf & str

With oBjMail
          .To = dest
          .Subject = sujet
         .Body = corps
End with
 

Discussions similaires

Réponses
2
Affichages
201
Réponses
16
Affichages
476
Réponses
1
Affichages
105
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 104
Messages
2 085 334
Membres
102 864
dernier inscrit
abderrashmaen