Il y a actuellement 434 visiteurs
Vendredi 29 Mars 2024
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

Envoi de mail outlook via excel une fois date atteinte

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

Envoi de mail outlook via excel une fois date atteinte

Message le 21 Jan 2016 12:09

Bonjour.

Voilà mon "problème", en fait je voudrais créer un fichier excel comprenant, entre autres, une colonne avec des dates et une autre colonne avec des adresses mail, jusque là ça va lol, puis créer une macro qui, un peu avant la date (5 jours avant par exemple, ou plus tôt), envoie un mail à l'adresse e-mail correspondante.

J'ai essayé le code ci-dessous, mais il ne semble pas fonctionner :

Code: Tout sélectionner
Public Sub SendNotesMail()
 
Dim Maildb As Object 'La base des mails
Dim UserName As String 'Le nom d'utilisateur
Dim MailDbName As String 'Le nom de la base des mails
Dim MailDoc As Object 'Le mail
Dim AttachME As Object 'L'objet pièce jointe en RTF
Dim Session As Object 'La session Notes
Dim EmbedObj As Object 'L'objet incorporé
Dim destinataire As Variant
Dim sSujet, sBody, sAdresseMail, sAdresseRetour As String
Dim duree As Integer
Dim Lig_Deb, Lig_Fin As Integer 'ligne de début, de fin
Dim sDates_Col As String 'colonnes qui contiennent les dates à tester et les adresses mail
Dim i As Integer
'Crée une session notes
Set Session = CreateObject("Notes.NotesSession")
 
'initialisation des constantes de la macro :
Lig_Deb = 2 'dans ma feuille Excel, les dates à tester commencent en ligne 2
sDates_Col = "C" ' et elles sont en colonne C ( 3 ième colonne)
 
'Ligne de fin =1ère cellule vide dans la colonne des dates
Lig_Fin = Val(Range(sDates_Col & CStr(Lig_Deb)).End(xlDown).Row)
 
'Récupère le nom d'utilisateur et crée le nom de la base des mails
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
 
'Ouvre la base des mails
Set Maildb = Session.GETDATABASE("", MailDbName)
If Not Maildb.IsOpen Then Maildb.OPENMAIL
 
' boucle de test dans la plage des dates (=> )
For i = Lig_Deb To Lig_Fin
Range(sDates_Col & CStr(i)).Select 'activer la cellule testée
duree = Now - ActiveCell.Value ' la date est dans la cellule active
If duree < 5 Then 'echeance est dans 5 jours
destinataire = "email"
Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "Memo"
MailDoc.sendto = destinataire
MailDoc.Subject = "Echéance "
MailDoc.Body = "Ne pas oublier de faire ...."
MailDoc.SAVEMESSAGEONSEND = SaveIt
 
MailDoc.PostedDate = Now()
MailDoc.SEND 0, Recipient
 
End If
 
Next i
 
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing
End Sub


Quelqu'un saurait-il m'aider ?

Si quelqu'un a une autre solution qui ne passerait ni par excel ni par outlook, je prends également.
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 404
Inscription: 09 Avr 2010 13:54
 


Re: Envoi de mail outlook via excel une fois date atteinte

Message le 21 Jan 2016 13:37

mlkgiosn a écrit:Si quelqu'un a une autre solution qui ne passerait ni par excel ni par outlook, je prends également.

Pour envoyer de mails à partir de batch sous windows, je me sers très régulièrement de SENDMAIL logiciel gratuit de DIPISOFT
=> http://www.dipisoft.com/articles.php?lng=fr&pg=65
Si tu veux scripter ça, il "suffit" de gérer par exemple un fichier texte, de le filtrer dans un batch selon la date du jour et d'envoyer des mails en fonction des résultats qui sortent.
Au plus simple et sans devoir gérer une base de données (ou un fichier excel) c'est ce que je ferais, avec un fichier CSV formaté par exemple ainsi : aaammjj_date_expiration;e-mail

Cela dit ça demande de bosser un peu des outils de geek style SED ou AWK, GREP... disponible aussi pour windows => http://gnuwin32.sourceforge.net/
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9040
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... et jamais loin d'une Debian
 

Re: Envoi de mail outlook via excel une fois date atteinte

Message le 22 Jan 2016 00:00

CaSa a écrit:
mlkgiosn a écrit:Si quelqu'un a une autre solution qui ne passerait ni par excel ni par outlook, je prends également.

Pour envoyer de mails à partir de batch sous windows, je me sers très régulièrement de SENDMAIL logiciel gratuit de DIPISOFT
=> http://www.dipisoft.com/articles.php?lng=fr&pg=65
Si tu veux scripter ça, il "suffit" de gérer par exemple un fichier texte, de le filtrer dans un batch selon la date du jour et d'envoyer des mails en fonction des résultats qui sortent.
Au plus simple et sans devoir gérer une base de données (ou un fichier excel) c'est ce que je ferais, avec un fichier CSV formaté par exemple ainsi : aaammjj_date_expiration;e-mail

Cela dit ça demande de bosser un peu des outils de geek style SED ou AWK, GREP... disponible aussi pour windows => http://gnuwin32.sourceforge.net/

En installant des logiciels tiers, c'est "facile", en effet.

J'ai besoin de ça pour le boulot, je dois donc faire avec Excel et le VBA, éventuellement le batch, mais l'envoie de mail via batch sans demander de confirmation utilisateur est impossible, donc voilà, si quelqu'un sait faire avec les macros dans excel, ou avec un de ces outils, merci d'avance.
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 404
Inscription: 09 Avr 2010 13:54
 

Re: Envoi de mail outlook via excel une fois date atteinte

Message le 25 Jan 2016 14:40

mlkgiosn a écrit:
CaSa a écrit:
mlkgiosn a écrit:Si quelqu'un a une autre solution qui ne passerait ni par excel ni par outlook, je prends également.

Pour envoyer de mails à partir de batch sous windows, je me sers très régulièrement de SENDMAIL logiciel gratuit de DIPISOFT
=> http://www.dipisoft.com/articles.php?lng=fr&pg=65
Si tu veux scripter ça, il "suffit" de gérer par exemple un fichier texte, de le filtrer dans un batch selon la date du jour et d'envoyer des mails en fonction des résultats qui sortent.
Au plus simple et sans devoir gérer une base de données (ou un fichier excel) c'est ce que je ferais, avec un fichier CSV formaté par exemple ainsi : aaammjj_date_expiration;e-mail

Cela dit ça demande de bosser un peu des outils de geek style SED ou AWK, GREP... disponible aussi pour windows => http://gnuwin32.sourceforge.net/

En installant des logiciels tiers, c'est "facile", en effet.

J'ai besoin de ça pour le boulot, je dois donc faire avec Excel et le VBA, éventuellement le batch, mais l'envoie de mail via batch sans demander de confirmation utilisateur est impossible, donc voilà, si quelqu'un sait faire avec les macros dans excel, ou avec un de ces outils, merci d'avance.


Je suppose que c'est plus dur que certaines veulent le faire croire si personne ne peut m'aider ;)
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 404
Inscription: 09 Avr 2010 13:54
 

Re: Envoi de mail outlook via excel une fois date atteinte

Message le 26 Jan 2016 14:41

Bonjour,

Je n'ai pas de connexion Notes pour tester, mais une ligne m'intrigue dans le code.
Code: Tout sélectionner
duree = Now - ActiveCell.Value

Si j'ai bien compris, la date dans le tableau correspond à une date d'échéance (donc une date future). Du coup, la durée est forcément négative.

Est-ce que tu as un message d'erreur particulier ?
Est-ce qu'il est possible d'utiliser le serveur Notes en mode SMTP (ce qui permettrait de s'affranchir de l'utilisation d'un fichier NSF) ?
Avatar de l'utilisateur
RobinSG
Moderateur
Moderateur
 
Messages: 1509
Inscription: 29 Juin 2004 14:26
Localisation: Atys
 

Re: Envoi de mail outlook via excel une fois date atteinte

Message le 27 Jan 2016 05:21

RobinSG a écrit:Bonjour,

Je n'ai pas de connexion Notes pour tester, mais une ligne m'intrigue dans le code.
Code: Tout sélectionner
duree = Now - ActiveCell.Value

Si j'ai bien compris, la date dans le tableau correspond à une date d'échéance (donc une date future). Du coup, la durée est forcément négative.

Est-ce que tu as un message d'erreur particulier ?
Est-ce qu'il est possible d'utiliser le serveur Notes en mode SMTP (ce qui permettrait de s'affranchir de l'utilisation d'un fichier NSF) ?

Etant plutôt débutant, j'avoue que j'ai pompé une bonne partie du code, je sais donc pas trop ce que veut dire cette ligne non plus.

Oui la date sera une date future.

Pour les serveur SMTP, je crois que oui, ai-je un moyen de vérifier ?
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 404
Inscription: 09 Avr 2010 13:54
 

Re: Envoi de mail outlook via excel une fois date atteinte

Message le 27 Jan 2016 10:10

La ligne de code citée permet de calculer la différence entre 2 date. Ici, il s'agit de la date actuelle (now) et de la date spécifiée dans le tableau (ActiveCell.Value).
Ensuite, cette valeur est utilisée dans la condition (if) en dessous.
Hors, si on prends une date future (31/01 par exemple) et la date actuelle (27/01), la différence entre les 2 est forcément négative (27-31 = -4 ). Il faudrait intervertir le calcul (duree = ActiveCell.Value - Now) pour que la condition (duree < 5) ai un sens.

Pour le SMTP, un test simple à effectuer depuis la machine qui vas envoyer les messages.
En ligne de commande (exécuter / cmd), tu tapes :
Code: Tout sélectionner
telnet NomDuServeur 25

Tu dois obtenir quelque chose comme :
Code: Tout sélectionner
220 NomDuServeur ESMTP Service (Lotus Domino)
ready at Wed, 27 Jan 2016 10:00:03 +0100

(Pour quitter, il suffit de taper "quit")
Avatar de l'utilisateur
RobinSG
Moderateur
Moderateur
 
Messages: 1509
Inscription: 29 Juin 2004 14:26
Localisation: Atys
 

Re: Envoi de mail outlook via excel une fois date atteinte

Message le 28 Jan 2016 05:22

RobinSG a écrit:La ligne de code citée permet de calculer la différence entre 2 date. Ici, il s'agit de la date actuelle (now) et de la date spécifiée dans le tableau (ActiveCell.Value).
Ensuite, cette valeur est utilisée dans la condition (if) en dessous.
Hors, si on prends une date future (31/01 par exemple) et la date actuelle (27/01), la différence entre les 2 est forcément négative (27-31 = -4 ). Il faudrait intervertir le calcul (duree = ActiveCell.Value - Now) pour que la condition (duree < 5) ai un sens.

Pour le SMTP, un test simple à effectuer depuis la machine qui vas envoyer les messages.
En ligne de commande (exécuter / cmd), tu tapes :
Code: Tout sélectionner
telnet NomDuServeur 25

Tu dois obtenir quelque chose comme :
Code: Tout sélectionner
220 NomDuServeur ESMTP Service (Lotus Domino)
ready at Wed, 27 Jan 2016 10:00:03 +0100

(Pour quitter, il suffit de taper "quit")


Désolé je suis un peu long à répondre en ce moment.

Je vérifié et je t'informe ;)
mlkgiosn
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 404
Inscription: 09 Avr 2010 13:54
 



Sujets similaires

Message [Réglé] Possible piratage boîte mail
Bonsoir,En tentant de consulter ma boîte Outlook ce soir je constate qu'elle semble piratée.On me refuse l'accès via mes identifiants et la demande d'envoi d'un code par SMS est compromise car mon numéro de téléphone a visiblement été changé lui aussi.Pour information, le site prétend que j'ai essay ...
Réponses: 9

Message probleme avec le nouvel Outlook !
Bonjour,à la maison, nous nous partageons 7 adresses : outlook.fr, orange.fr, live.fr, libello.com, hotmail.com et 2 gmail.com.Tout était parfait jusqu'au moment où le nouvel OUTLOOK s'est imposé.Là, un seul compte a survécu, @outlook.fr, impossible d'afficher les 6 autres !Quand on ouvre la message ...
Réponses: 5

Message mettre le descriptif d'un flyer dans un mail
Bonjour,Excusez-moi mais je ne sais pas à quel endroit, poser la question suivante :Est-possible de mettre le contenu d'un flyer dans un mail afin qu'il soit lisible directement à l'ouverture sans le mettre en pièce jointe ?MerciCordialement
Réponses: 9

Message mail orange
BonjourDepuis que j'ai du changé mon mot de passe orange , ma boite gmail et window 10 ne reconnait plus cette adresse .
Réponses: 4

Message Formule EXCEL Sumif + liste déroulante + plusieures pages
Bonjour à tous.Je ne suis pas certain d'être sur la bonne partie du forum, mais c'est ce qui m'a semblé le plus adéquat ^^"Alors, je vous explique ce dont j'ai besoin.Pour faire la compta de mon asso, j'ai un Excel sur 13 pages. 1 par mois +1 qui me ressort sur un tableau les recettes, dépenses ...
Réponses: 0

Message help 2 compte facebook piraté mail et mot de passe changé
Bonjour.Cela peut paraitre être une demande méchante et malveillante mais je vous assure que c'est juste pour récupérer mes comptes qui comportent les photos de mes petits enfants.facebook a bloqué mes compte pour usage inhabituel. et après un mois les compte sont revenu avec une autre photo un autr ...
Réponses: 3

Message Problème envoi fichier PDF
BonjourJ'aimerai envoyer un fichier PDF à un destinataire, sauf que je veux qu'il arrive en image "brute" si j'ose m'exprimer ainsi. je m'explique, mon fichier est sur acrobat et quand je l'envoi le destinataire à le document mais avec les plages d'illustration, etc...je prends comme exemp ...
Réponses: 2


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.