Renvoi d'un Email

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

  1. Contributeur Ambassadeur
    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
    1. 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
      1. Merci pour cette solution, ça rentre tout à fait dans ce que je cherche à faire ^^)
        0
      2. Tu l'as trouvé dans Excel la fonction Time? je cherche mais sans succès....
        0
    2. 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
      1. 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