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 :

Placer des variables dans le corps d'un mail envoyé. [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 44
    Par défaut Placer des variables dans le corps d'un mail envoyé.
    Bonsoir à tous,

    Je poursuis l'écriture de mon programme ... Avec votre aide j'y parviens pas à pas.
    Depuis quelques jours je travaille sur l'envoi automatique de mail.
    Voici mon problème.
    A partir d'un UserForm, je sélectionne un fichier et j'y place un certain nombre de modifications à effectuer.
    Ce fichier s'ouvre alors, les modifications sont effectuées dans celui-ci.
    Ensuite je le convertis au format .pdf, je l'enregistre et je le ferme.
    Directement, un mail se prépare avec l'adresse du destinataire, un sujet, un message (body) et le fichier .pdf en pièce jointe. Ce mail est transmis avec Thunderbird. (Mais cela ne doit pas avoir une grande importance ... ?
    Il ne me reste plus alors qu'à contrôler puis valider l'envoi. Je reviens alors sur mon UserForm pour une autre sélection.

    Tout cela fonctionne correctement mais il me reste un problème.
    Je souhaiterais que dans le corps du message, je puisse, par l'intermédiaire de variables, placer des références.

    Mon message pourrait alors ressemblé à :"Veuillez trouver ci-joint le fichier N° .....fourni par une variable.... qui a été enregistré le : .....date fournie par une variable...

    Cela est-il possible avec un niveau de programmation qui ne soit pas "trop ambitieux pour mes compétences".

    Voici la partie du code correspondant à l'envoi du mail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Destinataire = Courriel
    Sujet = "Envoi document."
    BodyFormat = 2
    HTMLBody = "<html><body><font size=5><font color=#006633>Entreprise Toto.</font color=#006633></font size=5><br>Rue du Truc<br>00000 Cépala<br>Tél. : 00 00 00 00 00<br>Courriel : toto@.fr<br><br>Madame‚ Monsieur‚<br>Veuillez trouver ci-joint  le fichier N° ..... X.......<br> Celui-ci a été enregistré le ..... date......<br> Nous vous souhaitons bonne réception.<br><br>Monsieur DUPOND</body></html>"
     
    Fichierjoint = "C:\Fichier\Machin\" & Fichier_à_Ouvrir & ".pdf"
     
    strcommand = "D:\Thunderbird\thunderbird.exe"
    strcommand = strcommand & " -compose " & "to='" & Destinataire & "'"
    strcommand = strcommand & "," & "subject=" & Sujet & ","
    strcommand = strcommand & "body=" & HTMLBody
    strcommand = strcommand & "," & "attachment=file:///" & Fichierjoint
    Call Shell(strcommand, vbNormalFocus)
    J'espère avoir été assez clair.

    Merci pour votre aide.

    Danad38

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonsoir
    Ne suffit-il pas de modifier le calcul de ta variable Htmlbody?

  3. #3
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 44
    Par défaut Placer des variables dans le corps d'un mail envoyé
    Bonjour bbil,

    Merci pour ta réponse mais comment modifier le calcul de cette variable htmlbody ?
    J'ai bien essayé d'inclure des " & " avec le nom des variables (comme on peut le faire avec des MsgBox par exemple) de manière à écrire par :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    HTMLBody = "<html><body><font size=5><font color=#006633>Entreprise Toto.</font color=#006633></font size=5><br>Rue du Truc<br>00000 Cépala<br>Tél. : 00 00 00 00 00<br>Courriel : toto@.fr<br><br>Madame‚ Monsieur‚<br>Veuillez trouver ci-joint  le fichier N° & Num &<br> Celui-ci a été enregistré le & DateFichier &<br> Nous vous souhaitons bonne réception.<br><br>Monsieur DUPOND</body></html>"

    Mais cela ne fonctionne pas, le message affiche le texte avec les & Num & et & DateFichier &. Aucun appel à la valeur de ces variables.
    Je pense que cette écriture est une "énormité" en programmation ...

    Je reste donc bloqué par cette même question : Est-il possible de placer dans le corps du message (dans htmlbody), entre les balises html, des variables.

    Encore merci.

    Danad38

  4. #4
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Sauf que quand tu utilises des & il faut sortir de la chaine de caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    str = "La valeur est " & valeur & " !"
    'et non :
    str = "La valeur est & valeur & !"

  5. #5
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 44
    Par défaut
    Bonjour Zebreloup,

    Merci !
    J'avais déjà procédé de cette manière (comme dans les MsgBox) mais ta remarque m'a amené à rechercher pourquoi cela ne fonctionnait pas. J'ai trouvé mon erreur.
    A l'introduction de ma variable, je ne fermais pas mes balises Html !
    Mon code doit donc être :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    HTMLBody = "<font size=5><font color=#006633>Entreprise Toto.</font color=#006633></font size=5><br>Rue du Truc<br>00000 Cépala<br>Tél. : 00 00 00 00 00<br>Courriel : toto@.fr<br><br>Madame‚ Monsieur‚<br>Veuillez trouver ci-joint  le fichier N° </body></html>" & Num & <html><body><br> Celui-ci a été enregistré le </body></html> & DateFichier & </body></html><br> Nous vous souhaitons bonne réception.<br><br>Monsieur DUPOND</body></html>"

    Maintenant tout fonctionne correctement.
    Merci pour m'avoir obligé à vérifier plus profondement ce que j'avais fais.

    Danad38

  6. #6
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Ok. Mais quand tu copies du code qui ne marche pas, copie exactement ce que tu as, ce sera plus facile. Parce que par exemple tu dis que ça marche maintenant, mais le dernier code que tu as copié ne peut pas marcher, il manque des guillemets. On le voit tout de suite grâce à la coloration syntaxique.
    Bon courage pour la suite

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Récupérer des informations dans le corps d'un mail Outlook
    Par fragglerick dans le forum VBA Access
    Réponses: 9
    Dernier message: 07/03/2013, 23h19
  2. Réponses: 5
    Dernier message: 16/01/2013, 15h30
  3. affichage des images dans le corps d'un mail
    Par pigeon11 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 24/06/2008, 13h40
  4. Réponses: 4
    Dernier message: 19/04/2008, 12h10
  5. Réponses: 4
    Dernier message: 11/06/2004, 10h21

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