Il y a actuellement 457 visiteurs
Jeudi 26 Décembre 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: 9048
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 Mail invisible avec netcourrier
Bonjour J'ai reçu plusieurs mails de GLS, vides, juste l'entête, pour les voir, il faut que je les télécharge, version texte, avec les trois petits points au-dessus de la fenêtre du mail à droite, j'ai compris après coup, ce qu'il fallait faire pour pouvoir les lire. Ça me pose un gros souci, comme ...
Réponses: 5

Message Avertissement outlook@communication / Mises à jour gratuites
Bonjour, Reçu ce matin un "avertissement" d'Outlook Communication expliquant que, le 16 septembre, les applications qui utlisent une technologie moins sécurisée ne pourront plus accéder à ma messagerie.Il m'est proposé d'installer des versions gratuites d'Outlook pour régler ce pb. Je suis ...
Réponses: 1

Message Excel : vérouiller une cellule sous condition [Edit]
Bonjour,Je chercher à limiter la modification d'une plage de cellule d'un tableau sous la condition qu'une autre cellule du même tableau soit remplie.J'ai des options choisies par des élèves à entrer et s'il n'y a pas d'option choisie je coche une case "aucune option". Je voudrais vérouill ...
Réponses: 0

Message probleme avec mon compte outlook
Salut tout le mondevoilà, je m'explique en espérant que je sois compréhensible : de façon aléatoire et pas systématique, mais c'est récurrent, il ne se passe pas 15 jours, je recoit arriver sur mon bureau après démarrage de mon pc ou parfois même pc allumer et fonctionnel pendant la journée un m ...
Réponses: 12

Message Boite mail GMX
Bonjour J'ai ouvert un compte mail gmx, à chaque fois que je ferme ma page internet, je me retrouve sur cette page. https://www.gmx.fr/logout/Alors que l'adresse que j'ai copié dans le raccourci de mon navigateur, c'est le lien de ma page "connecté". Avez-vous une idée du souci ? Merci
Réponses: 13

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


Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 9 invités


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