Partage
  • Partager sur Facebook
  • Partager sur Twitter

Excel VBA - Envoyer Mail

Fonction MailEnvelope

    13 janvier 2021 à 16:45:08

    Bonjour à tous!

    après maintes recherche sur la toile, pas moyen de trouver une solution à mon objectif...

    En premier lieu, sauriez-vous s'il est possible de s'envoyer un mail (comme une sorte de "copie" ou de notification) ?

    Je m'explique... J'ai créé un programme en VBA à mon travail permettant de centraliser et de formaliser des demandes de mes collègues.

    Celui récupère les données entrées par l'utilisateur dans une base de données et les redistribuent dans un email qui est envoyé à des adresses spécifiées dans les instructions de la fonction "MailEnvelope".

    Seulement voilà là où ça commence à coincer, j'aimerais que l'utilisateur reçoive un mail de lui-même (comme une sorte de copie lui certifiant que la demande à bien été envoyée) lorsqu'il envoi sa demande...

    Est-ce que c'est possible ?

    J'ai essayé une méthode qui consiste à spécifier un chemin pour que la fonction prenne l'email de l'utilisateur directement dans son appdata (avec Environ$("") ) mais je n'ai pas réussi... J'ai aussi cherché sur internet mais je n'ai rien trouvé à ce propos :/

    Voici mon code:

    Sheets("BDD").Range("N25:N46").Select
    
    ActiveWorkbook.EnvelopeVisible = True
    
    With Sheets("BDD").MailEnvelope
        .Item.To = "adressemail@gmail.com"
        .Item.Cc = (ici l'adresse de l'utilisateur)
        .Item.Subject = Sheets("SRC").Range("C7")
        .Item.Send
    
    End With
    
    
    
    Désolé si le sujet dérange et merci par avance pour votre aide!

    • Partager sur Facebook
    • Partager sur Twitter
      13 janvier 2021 à 17:45:55

      Bonjour,

      Peut-être que ce lien peu t'aider.

      -
      Edité par Zaibai 13 janvier 2021 à 17:46:14

      • Partager sur Facebook
      • Partager sur Twitter
        13 janvier 2021 à 19:05:17

        si leur mail est du type nom_session@nom_societe.com, tu peux récupérer le nom utilisateur avec environ("USERNAME") et rajouter derrière le suffixe du mail.

        ou rajouter un champ dans ta saisie pour que l'utilisateur entre son adresse mail

        • Partager sur Facebook
        • Partager sur Twitter
          14 janvier 2021 à 9:28:13

          @Zaibai Merci pour le lien! ça me fait une piste supplémentaire, le code est un peu plus délicat pour moi mais à éplucher!

          @umfred Quand tu dis de rajouter le suffixe derrière, ça s'écrirait comme ça du coup ?

          Item.Cc = Environ$("USERNAME@gmail.com")
          
          'ou
          
          Item.Cc = Environ$("USERNAME")@gmail.com

          Car ça ne semble pas fonctionner comme ça... en mettant juste Environ$("USERNAME") il me trouve bien mon nom de sessions mais sans le suffixe du coup...

          Désolé pour la demande d'assistance mais je débute en VBA hélas..... merci d'avance à vous!

          -
          Edité par KurtTruppner 14 janvier 2021 à 9:32:08

          • Partager sur Facebook
          • Partager sur Twitter
            14 janvier 2021 à 10:00:43

            grosso modo c'est ça mais c'est une chaine de caractère que tu dois traiter

            Item.Cc = environ("USERNAME") & "@gamil.com"



            • Partager sur Facebook
            • Partager sur Twitter
              14 janvier 2021 à 14:02:06

              @umfred ça marche!!! merci beaucoup !!!

              Bon mon seul problème maintenant c'est que le nom de session est différent de l'adresse mail utilisateur...

              Par exemple, en le faisant avec ma session, j'ai le nom d'utilisateur qui correspond à j.dupond et du coup avec cette instruction ça donne j.dupond@gmail.com

              Mais malheureusement, l'adresse mail associé à la session est souvent différente ce qui devrait donner normalement ici jean.dupond@gmail.fr

              Je continue de creuser mais en attendant ton instruction marche! Si tu as des pistes je suis preneur... Sinon, encore merci !!

              • Partager sur Facebook
              • Partager sur Twitter
                14 janvier 2021 à 15:15:35

                La dernière réponse du lien de Zaibai devrait t'aider si les utilisateurs utilisent Outlook en messagerie

                 Dim OL As Object, olAllUsers As Object, oExchUser As Object, oentry As Object, myitem As Object
                    Dim User As String
                
                    Set OL = CreateObject("outlook.application")
                    Set olAllUsers = OL.Session.AddressLists.Item("All Users").AddressEntries
                
                    User = OL.Session.CurrentUser.Name
                
                    Set oentry = olAllUsers.Item(User)
                
                    Set oExchUser = oentry.GetExchangeUser()
                
                    msgbox oExchUser.PrimarySmtpAddress



                • Partager sur Facebook
                • Partager sur Twitter
                  Hier à 19:46

                  @umfred d'accord, j'avais essayé plusieurs bouts de codes de ce lien mais je vais réessayer avec celui-là! 

                  Si ça marche je repostera le code correspondant, ça pourras toujours servir à d'autres! 🤗

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Excel VBA - Envoyer Mail

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  • Editeur
                  • Markdown