Renvoi d'un Email

Fermé
marti1220 Messages postés 20 Date d'inscription samedi 4 août 2018 Statut Membre Dernière intervention 18 septembre 2018 - 16 sept. 2018 à 09:17
titeufdu89 Messages postés 375 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 - 18 sept. 2018 à 10:39
Bonjour,
Je cherche depuis un moment à recevoir par Email des alertes issues d'un tableau EXCEL.
J'ai trouvé un code VBA qui me permet d'envoyer un email quand j'ouvre le tableau EXCEL et que j'actionne une Macro.
Est-ce qu'il est possible de créer cela (recevoir Email) sans avoir à ouvrir le tableau EXCEL???

Si quelqu'un a une solution, je vous remercie d'avance pour les réponses apportées, de votre participation à toutes ces discussions.

Cordialement,


4 réponses

yg_be Messages postés 23165 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 septembre 2024 1 532
16 sept. 2018 à 13:33
bonjour, peux-tu partager le code de ta macro?
tu voudrais donc envoyer le message en utilisant la macro, sans que le tableau soit ouvert, c'est bien cela?
qu'entends-tu par "ouvrir" un tableau?
0
titeufdu89 Messages postés 375 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
16 sept. 2018 à 19:46
Bonjour,

J'avais la même problématique que toi puis grâce aux taches planifiées de Windows j'ai pu résoudre mon problème. J'ai planifié l'ouverture de mon fichier à 7h30 (heure où je ne suis pas encore au travail), et j'ai programmé ma macro à l'ouverture du fichier à l'aide de la fonction "time" qui fait que si le fichier est ouvert avant 8h la macro m'envoie un e-mail, sauvegarde le fichier et ferme l'application. Ca marche très bien, tous les mardis matin 7h30 je reçois mes e-mail automatiques.

Il existe probablement d'autres soluations, mais celle-ci pour l'avoir testé fonctionne très bien

Bonne journée

Jc
0
marti1220 Messages postés 20 Date d'inscription samedi 4 août 2018 Statut Membre Dernière intervention 18 septembre 2018 1
18 sept. 2018 à 06:42
Merci pour cette solution, ça rentre tout à fait dans ce que je cherche à faire ^^)
0
marti1220 Messages postés 20 Date d'inscription samedi 4 août 2018 Statut Membre Dernière intervention 18 septembre 2018 1
18 sept. 2018 à 06:58
Tu l'as trouvé dans Excel la fonction Time? je cherche mais sans succès....
0
marti1220 Messages postés 20 Date d'inscription samedi 4 août 2018 Statut Membre Dernière intervention 18 septembre 2018 1
18 sept. 2018 à 06:41
Bonjour,

Merci pour ces réponses rapides. J'entends par "ouvrir le tableau" = ouvrir le fichier excel, yg_be.
Pour la macro, j'ai essayé de la copier ici, mais ça ne donne rien de bien terrible.
C'est un petit programme en langage VBA; En cherchant dans les discussions CCM : envoie d'un mail à partir d'un fichier Excel, j'ai trouvé un site où ils en parlait.

Par contre, Jc, la fonction "time sous Window" m'intrigue bcp. Si tu pouvais m'en dire un peu plus?
Tu l'as trouvé sous Excel, je suppose? dans les Macros? je vais chercher.

@+ et encore merci.
0
titeufdu89 Messages postés 375 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
18 sept. 2018 à 10:39
Bonjour Marti,

Voici le code dont je parlais, à collé dans le module "ThisWorkBook" dans l'interface VBA (Alt+F11) puis enregistrer-sous ton fichier au format XSLM (prenant en charge les macro) puis enfin mettre à jour la macro en fonction de tes besoin.

Option Compare Text
Private Sub Workbook_Open()

Application.ScreenUpdating = False
Sheets("feuille").Activate ' choisir la bonne feuille

If Time < "07:45:00" Then
'envoi mail
    Dim Sh, nSh As Worksheet
    Dim mMessage As Object
    Dim mConfig As Object
    Dim mChps
    Dim nWb As Workbook
    Dim WshShell, utilisateur
   
    Set Sh = ThisWorkbook.Sheets("feuille") 'choisir la bonne feuille
    Set mConfig = CreateObject("CDO.Configuration")
    mConfig.Load -1
    Set mChps = mConfig.Fields
    With mChps
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        'Adapter suivant votre serveur de mail. (exemple pour Gmail.)=> Hormail "smtp.live.com"
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
        'En principe, 25 fonctionne avec tout les serveurs.
       .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
       
        'Vous pouvez essayer sans ces trois lignes
       'Mais si votre serveur demande une authentification,
           .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = "1"
            .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "expediteur@gmail.com" 'mettre a jour
            .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "motdepasse" 'mettre a jour
        'Si votre serveur demande une connexion sûre (SSL)
           .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true"
        .Update
    End With
    Set mMessage = CreateObject("CDO.Message")
    With mMessage
    Set .Configuration = mConfig
        .To = "destinataire@gmail.com"
        .From = "expediteur@gmail.com"
        .Subject = "Sujet"
        .TextBody = "mymessage"
      .Send 'ou .Display pour afficher le mail.
   End With
   Set mMessage = Nothing
 
    'Libère les ressources
   Set mConfig = Nothing
    Set mChps = Nothing

Dim Wb As Workbook

For Each Wb In Application.Workbooks
Wb.Save
Wb.Close
Next Wb

Application.Quit

End If
End Sub


Cette macro s'execute lors de l'ouverture du fichier, et selon l'heure qu'il est (ici si l'ouverture est effectuée avant 7h45 du matin), elle envoie un e-mail (le contenu et les destinataires et expéditeurs sont à configurer) puis enregistre et ferme le fichier. S'il est après 7h30, elle ouvre le fichier simplement et ne fait rien, ainsi je peux travailler sur mon fichier normalement.

Pour que le fichier s'ouvre automatiquement j'ai programmé sur windows avec l'outil "planificateur de taches" voir le lien suivant : https://www.supinfo.com/articles/single/4998-utiliser-planificateur-taches-windows-10

NB : le code pour l'envoie de l'e-mail est programmé pour fonctionner avec une adresse de type gmail et ne passe pas par Outlook par contre pour fonctionner il faut que tes paramètres de sécurité de ton compte gmail soit bas, je te conseillerais donc de ne pas utiliser ton adresse perso mais plutôt d'en créer une expressément pour ce genre de taches (dès lors que les e-mails envoyés ne contiennent rien de confidentiel bien sûr) et de suivre la procédure suivante pour modifier les paramètres de ton compte gmail : https://support.google.com/accounts/answer/6010255?hl=fr

J'espère qu'avec tout ça tu parviendra a faire ce que tu souhaites
Bonne journée

Jc
0