Envoi d'un email exell automatique

Benja32 -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Salut,

J'ai créé un tableur pour les échéances de mes factures, jusque là ça va mais je voudrais que Excel m'envoie un mail automatiquement 3 jours avant l'échéance.
Quelqu'un peut m'aider ?

Merci d'avance.

5 réponses

pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
Bonjour,

Avant tout, il nous faudrait un exemple de la structure de ton fichier, feuilles, colonnes, entêtes... Bref un topo complet et une copie (sans données confidentielles) peuvent être très utiles...
Pour joindre un fichier ici, il faut :
1- aller sur https://www.cjoint.com/
2- créer un lien vers ton fichier
3- revenir ici coller le lien dans une réponse.
0
Benja32
 
Voici le lien pour avoir le tableur

http://cjoint.com/?3GjokkKW1Y4
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
Ma proposition :
Colle ces deux procédures dans un module standard de ton classeur, adapte les et testes...

Sub EnvoiMail()
Dim lig As Long, drlig As Long, Msg As String
Dim Exped As String, Destinat As String, CopieA As String, ServSMTP As String

'**************** A ADAPTER ****************
Exped = "mail.expediteur@free.fr"
Destinat = "mail.destinataire@free.fr"
CopieA = "mail.CC@free.fr"
ServSMTP = "smtp.free.fr"
'*******************************************

drlig = Range("F" & Rows.Count).End(xlUp).Row
For lig = 6 To drlig
    If Cells(lig, 6).Value = "À PAYER" Then
        Msg = Msg & "La facture pour " & Cells(lig, 1) & ", d'un montant de " & Cells(lig, 2) & " €, est à payer pour le " & Cells(lig, 5) & "." & Chr(10) & Chr(10)
    End If
Next lig
Envoi Exped, Destinat, Msg, ServSMTP, CopieA
End Sub

'Sources :
'http://www.commentcamarche.net/forum/affich-21042611-envoi-mail-en-vba-avec-corps-message#15
'référence à cocher : Microsoft CDO for Windows 2000 Library
Sub Envoi(strPour As String, strDe As String, Msg As String, Serveur As String, Optional strCC As String)
Dim objMessage As Object

On Error GoTo errorHandler
Set objMessage = CreateObject("CDO.Message")
With objMessage
    .Subject = "Factures à échéance."
    .From = strDe
    .To = strPour
    .CC = strCC
    .TextBody = Msg
    .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = Serveur
    .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    .Configuration.Fields.Update
    .Send
End With
MsgBox "Message transmis."
Exit Sub
errorHandler:
MsgBox Err.Description
End Sub 

0
Benja32
 
Merci mais euh ... je comprend rien. Suis quand même limité en tableur lol .
Tu saurais pas l'encoder et me le renvoyer par hazard ?
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
Bien sur.
Mais...

Tu veux que cela soit entièrement automatisé? Quand veux tu que l'email parte? à l'ouverture du classeur? autre?

Suit également les conseils de Mike-31 (salut!).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
Bonjour,

On peut toujours simplifier mais si tu n'as pas de connaissance en VBA ça va être difficile et ton problème ne peut se traiter qu'en VBA
Tu peux également suivre cette discussion en cours

https://forums.commentcamarche.net/forum/affich-28138585-envoyer-un-fichier-excel#p28211219
0