IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Gérer l'envoi de mail préformaté avec outlook depuis données Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Par défaut Gérer l'envoi de mail préformaté avec outlook depuis données Excel
    Bonjour,
    j'ai une petite question car j'aimerais automatiser un traitement.

    J'ai un fichier Excel comprenant une liste de demandes, avec les coordonnées du demandeur (nom prénom téléphone mail).
    Une demande=une ligne avec la description de la demande et du demandeur.
    J'ai régulièrement besoin de recontacter chacun des demandeurs, et j'utilise pour cela des mails préformatés (j'ai trois modèles) dans lesquels je remplace par exemple [Nom du demandeur] par son nom.
    J'envoie ensuite le mail à la main depuis Outlook.

    J'aimerais automatiser cela car cela devient fastidieux quand j'ai beaucoup de mails à envoyer alors qu'ils ont tous la même forme.

    Ce que j'aimerais faire:
    - Pouvoir cliquer sur la ligne désirée, exécuter ma macro et choisir quel type de mail préformaté envoyer pour cette demande (j'ai trois modèles prédéfinis).
    - qu'en fonction du modèle de mail désiré, ça m'ouvre Outlook,et que le mail soit déjà rempli avec le texte préformaté choisi, un titre générique en objet pour le mail, les informations du demandeur récupérées depuis le fichier Excel à la place de mes champs de type [Nom du demandeur] et son adresse mail déjà renseignée dans l'emplacement "destinataire".
    - que je n'ai plus qu'à contrôler les informations remplies et cliquer sur envoyer.

    Je débute et je ne sais pas comment faire ceci,comment contrôler outlook depuis Excel ni automatiser ces traitements.
    Merci d'avance pour vos pistes et conseils.

    Cordialement,
    M

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Tu peux commencer en cherchant dans les cours, tutaux et FAQ tout ce qui concerne l'automation d'Outlook.

    Bon courage,

    PGZ

  3. #3
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Par défaut
    Bonjour,
    j'y suis à peu près parvenu avec le code suivant mais j'ai encore deux soucis:
    le texte affiché est correct, j'ai bien les champs que je récupère sur mon fichier Excel qui sont insérés et les bonnes infos dans le mail, mais le corps de texte que je stocke dans une variable est tronqué,toujours au même endroit (juste après "nous vous contacterons sous 15 jours" dans le code que j'ai recopié ci-dessous).
    Une variable string peut-elle stocker seulement un nombre maximum de caractères?

    Deuxième problème, je marque mon mail comme envoyé dans une case pour confirmer que j'ai envoyé un mail de confirmation (toute dernière ligne de ma macro)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(LigneCourante, 6) = "x"
    ; hors j'aimerais que cela ne soit fait qu'une fois que j'ai cliqué sur "envoyer le mail",pour le moment cela se fait dès que j'ai exécuté ma macro, même si elle ne fonctionne pas correctement cela se marche comme envoyé.

    Merci d'avance pour votre retour, le code est ci-dessous.
    Cordialement,
    M




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Sub SendMail()
      Dim Subj As String
      Dim EmailAddr As String
      Dim Recipient As String
      Dim Fichier As String
      Dim Msg As String
      Dim HLink As String
      Dim LigneCourante As Long
     
    '-------------------------------------------------définir les données
     
          LigneCourante = Windows(ThisWorkbook.Name).ActiveCell.Row
          Subj = "Confirmation de la date d'enregistrement de votre demande "
          Recipient = Cells(LigneCourante, 2)
          Recipient = Recipient & " " & Cells(LigneCourante, 1)
          EmailAddr = Cells(LigneCourante, 5)
     
    '--------------------------------------------------Composer le message
          Msg = "Bonjour " & Recipient & "%0A"
          Msg = Msg & "%0A" & "Nous vous confirmons que votre demande en date du " & Cells(LigneCourante, 3) & " a bien été enregistrée.Nous vous contacterons sous 15 jours pour vous donner une date de réalisation pour l'analyse de votre demande."
          Msg = Msg & "%0A" & "Cordialement,"
          Msg = Msg & "%0A" & "Mon nom"
     
     '--------------------------------------------------Construire lien hypertexte
          HLink = "mailto:" & EmailAddr & "?"
          HLink = HLink & "subject=" & Subj & "&"
          HLink = HLink & "body=" & Msg
     '--------------------------------------------------Transmettre le message
          ActiveWorkbook.FollowHyperlink HLink
     
     '------------------------------------------------- On marque le mail comme envoyé
          Cells(LigneCourante, 6) = "x"
     
    End Sub
    Petit complémnet: j'ai essayé de séparer mo texte et de le stocker dans deux variables, il est toujours tronqué à "nous vous contacterons sous 15"!
    D'ou est-il tronqué de cette manière?
    Voilà le code retouché:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    '--------------------------------------------------Composer le message
          Msg = "Bonjour " & Recipient & "%0A"
          Msg = Msg & "%0A" & "Nous vous confirmons que votre demande en date du " & Cells(LigneCourante, 3) & " a bien été enregistrée."
          Msg2 = "Nous vous contacterons sous 15 jours pour vous donner une date de réalisation pour l'analyse de votre besoin."
          Msg2 = Msg2 & "%0A" & "Cordialement,"
          Msg2 = Msg2 & "%0A" & "Mon Nom"
     
     '--------------------------------------------------Construire lien hypertexte
          HLink = "mailto:" & EmailAddr & "?"
          HLink = HLink & "subject=" & Subj & "&"
          HLink = HLink & "body=" & Msg & Msg2

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Une variable de type chaîne peut contenir 2^16 caractères. Le pb ne vient pas de là. Plus probablement de la méthode FollowHyperLink, mais je ne l'ai jamais utilisé pour faire ça, donc je laisse qqn de plus expérimenté s'exprimer sur le sujet.
    Je préfère utiliser l'automation d'Outlook et je pense que tu vas devoir y passer pour résoudre ton deuxème problème.

    Je te renouvelle donc ma suggestion de décrouvir en FAQ ou tutos ce qui concerne l'automation d'Outlook. Plus compliqué, mais tellement plus riche!

    Bon courage,

    PGZ

  5. #5
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Par défaut
    Merci pour tes conseils mais je n'ai rien trouvé là dessus dans les FAQ (peut-être ai-je mal cherché).
    J'imagine que pour pouvoir contrôler Outlook je vais devoir faire référence à ldes librairies spécifiques, mais les fichiers étant utilisés par de nombreux utilisateurs j'aimerais également éviter ça.
    Personne n'a de renseignements supplémentaires sur la méthode Follow Hyperlink?Je n'ai trouvé que des exemples l'utilisant pour des Url,pas des envois de mails.

    Cordialement,
    M

  6. #6
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Par défaut
    Un petit up car ça fait quelques jours et j'en suis toujours au même point.
    Quelqu'un aurait des renseignements supplémentaires sur le fait que mon texte est tronqué quand j'utilise la méthode follow hyperlink?
    J'aimerais bien trouver une solution de contournement.
    Merci d'avance,
    M

    Au pire une autre méthode existerait-elle?

Discussions similaires

  1. [OL-2013] Envoi de mail automatique avec PJ sous outlook 2013
    Par Jwinner dans le forum VBA Outlook
    Réponses: 10
    Dernier message: 21/01/2015, 10h48
  2. [XL-2013] Envoyer un mail automatiquement avec Outlook depuis mon userform
    Par Samira60000 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/01/2015, 16h39
  3. [UNIX] envoi de mail HTML avec mailx
    Par darinze dans le forum Développement
    Réponses: 3
    Dernier message: 21/09/2011, 14h24
  4. Réponses: 4
    Dernier message: 02/04/2007, 18h17
  5. Envoi de mail automatique avec Visual C++
    Par cza dans le forum MFC
    Réponses: 2
    Dernier message: 22/02/2005, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo