Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Aloha

XLDnaute Accro
Bonjour,

Je voudrais communiquer, à des intervalles réguliers (p.ex. tous les lundis à 7:00), le contenu d'une cellule définie, à plusieurs personnes, par mail.

Excel, est-il capable d'envoyer automatiquement un mail avec le chiffre contenu dans cette cellule, à des adresses mail spécifiées?
sous condition évidemment que le programme soit ouvert.

Merci pour toute réponse

Aloha
 

MJ13

XLDnaute Barbatruc
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Re

Aloha: Tu peux tester ce fcihier. J'ai ajouté un commentaire sur le Workbook_open pour le test en lançant la macro par le bouton.

Ferme tout sur ton PC puis ouvre le fichier que tu auras copié sur ton Disque dur.
 

Pièces jointes

  • Envoi_Mail_Auto_MJ_Display.zip
    17.6 KB · Affichages: 69

Aloha

XLDnaute Accro
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Bonjour "MJ13",

Cela marche (mais pour que l'application Outlook.exe soit trouvée j'ai dû changer Office 12 en Office 11), avec la petite réserve que c'est un peu lent (mais ce n'est pas grave) et qu'à la fin je reçois un message d'erreur: Erreur d'exécution '-2147217388 (80041014)': Erreur Automation

A part ça, c'est ce que je voulais, sauf que les adresses mail devraient être inscrites dans le code, avec la possibilité d'en enlever et/ou en ajouter.

Je dois avouer que je n'ai pas tout compris de ce que tu as mis en rouge:

cocher la library "Microsoft Outlook 1.0 Object Library dans Outils référence

ainsi que:
activer la référence Microsoft WMI Scripting Library

Sous Outils il n'y a pas de sous-menu Reference en Excel 2003!

A+ et merci beaucoup à toi et à tous les autres qui m'aidez!

Aloha
 

MJ13

XLDnaute Barbatruc
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Re Aloha, job



Oui, comme l'a dit job, tu va dans le VBE (alt+F11) puis alt+o puis r. et tu dois voir ceci avec les bonnes références qui doivent être cochées ou que tu dois trouver dans la longue liste :eek:.
 

Pièces jointes

  • Outlook_VBE_Option_Reference.jpg
    Outlook_VBE_Option_Reference.jpg
    35 KB · Affichages: 83

Aloha

XLDnaute Accro
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Bonjour,

Les options sous Outils:References étaient déjà cochées.

Donc, ce que je voudrais encore changer c'est de mettre les adresses mail dans le code, comme l'avait fait "job75".

Je crois constater à l'instant un malentendu: les mêmes chiffres qui se trouvent, mettons, dans les cellules B1 à B5, doivent être transmis, avec le libellé dans les cellules A1 à A5, à tous les destinataires définis, alors que dans la situation actuelle de la macro, la première donnée est transmise au 1er destinataire et la seconde au 2e.

Enfin, j'ai toujours le message d'erreur, mais seulement après l'envoi des mails; le code se bloque à la ligne "Set objWMIService=...".

Est-ce que, dans la version définitive (qui semble être à portée de main) il faudra appuyer sur un bouton ou bien y a-t-il moyen de l'automatiser?

Merci encore à vous tous pour ce travail que je qualifierais presque de magique, car d'un coup de baguette magique des mails sont expédiés!

Bonne journée

Aloha
 

MJ13

XLDnaute Barbatruc
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Bonjour Aloha, job

Mes tests ont été fait sur XL2007, mais as tu bien les références de cochés comme dans l'image du post #35?

Sinon pour mettre tes adresses dans le code voci un petit fichier avec Array issu de l'aide (F1).

Sinon Si cela bug à la fin pour ne pas activer fermerUneApplication, tu peux tester cette macro (mais il faudra n'avoir à l'écran que excel et Outlook dans les applications actives.

Code:
Sub Fermer_Outlook_Sendkey_Version2007()
Application.SendKeys ("%{tab}"), True
attente = 3: newHour = Hour(Now()): newMinute = Minute(Now()): newSecond = Second(Now()) + attente: waitTime = TimeSerial(newHour, newMinute, newSecond): Application.Wait waitTime
Application.SendKeys ("%(f)"), True
attente = 3: newHour = Hour(Now()): newMinute = Minute(Now()): newSecond = Second(Now()) + attente: waitTime = TimeSerial(newHour, newMinute, newSecond): Application.Wait waitTime
Application.SendKeys ("t"), True
End Sub

Atention, les lettres peuvent différées d'une version à l'autre (en général, ce sont les lettres soulignées).
 

Pièces jointes

  • Liste_Adresse_Mails.xls
    31.5 KB · Affichages: 70
Dernière édition:

Aloha

XLDnaute Accro
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Bonjour Michel, bonjour tous les autres,

oui, toutes ces options sont cochées.

Ok, je vais essayer, mais s'il y a cette condition, alors je me demande s'il ne vaut pas mieux arrêter le code avant cette position qui pose problème et laisser Outlook ouvert.

Bonne fin d'après-midi

Aloha
 

Aloha

XLDnaute Accro
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Bonjour,

Malheureusement mes connaissances limitées ne permettent pas de faire le joint entre ce dernier fichier et celui dénommé "Envoi_Mail_Auto_MJ_Display".
Qui plus est, je ne comprends même pas tout à fait l'utilité du 2e.

En réalité, s'il le faut, le premier peut également fonctionner comme tel, avec les adresses mail inscrites dans la même feuille que les données à transmettre. Si je masque cette colonne ça ne dérange personne.
Il faudrait juste enlever le bout de code à la fin qui bloque.

Et envoyer les mêmes données à toutes les adresses. Comment faudrait-il changer le code pour que le contenu des cellules B1:C8 soit transmis?

Bonne journée

Aloha
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Bonjour à tous

Aloha: Suite à ta dernière demande, voici un fichier à tester.
 

Pièces jointes

  • Envoi_Mail_Plage_Auto_Display_MJ.zip
    19.6 KB · Affichages: 49

Aloha

XLDnaute Accro
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Bonjour Michel,

et merci beaucoup, une fois de plus.

Je suis en train d'installer le code dans mon fichier réel, et là je tombe évidemment sur lke problème qu'il y a plus d'une feuille, voilà pourquoi "For Each cel In Range("A1:A2)" ne peut pas fonctionner; il faut ajouter l'information que c'est dans la feuille "Soldes" que cela se passe.

Je ne connais que "Sheets("Soldes").Select"

J'ai essayé cela, mais je n'arrive pas jusqu'au bout: le code se bloque à "Dim O1 As New Outlook.Application" et il dit: "Erreur de compilation: Type défini par l'utilisateur non défini.

La library Microsoft Outlook 11.0 est bien cochée.

Dans la Sub_lance_auto il y a Lance_Outlook2007_Display; je n'arrive pas à comprendre ce qu'elle fait cette Sub et ne sais pas juger si le fait que je teste en Excel 2003 joue un rôle ou non.

A+

Aloha
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Re Aloha

Bon la, je ne vois plus trop :confused:.

Il faut aussi essayer de comprendre un peu les codes.

Essaye peut-être:

Code:
For Each cel In Sheets("Soldes").Range("A1:A2)"

Bien sur la plage A1:A2 est à adapter.

Sinon le mieux, serait d'avoir un fichier sans données confidenteilles de ce que tu veux envoyer.

Dans la Sub_lance_auto il y a Lance_Outlook2007_Display; je n'arrive pas à comprendre ce qu'elle fait cette Sub et ne sais pas juger si le fait que je teste en Excel 2003 joue un rôle ou non.

Entre 2007 et 2003, il ne doit pas y avoir de grosses diférences. peut-être des raccourcis claviers différents.


Mais seul des tests pourront te dire si cela fonctionne en modifiant le code si besoin.
 

Aloha

XLDnaute Accro
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Re,

J'ai préparé le fichier, mais je n'arrive pas à le comprimer <56 KB comme ZIP. Dommage que RAR n'est pas supporté, parce qu'on arrive à comprimer beaucoup plus.

Je pourrais l'envoyer à une adresse Mail.

A+

Aloha
 

Staple1600

XLDnaute Barbatruc
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Bonsoir à tous


Aloha
Reduis ton fichier avant de le zipper

(Une dizaine de lignes suffisent, une seule feuille, pas de couleurs, pas d'images) et ton fichier devrait largement être < à 48 ko
 

Aloha

XLDnaute Accro
Re : Excel peut-il, à intervalles réguliers, envoyer automatiquement un mail?

Re,

Ok, j'ai enlevé la 2e feuille, mais comme il y en a un certain nombre dans le fichier réel, il faut donc la référence au nom de la feuille.
Le fichier fait tout de même encore 222 Kb (avec les codes VBA) que je n'arrive pas à comprimer à < 54 Kb.

A+

Aloha
 

Discussions similaires