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 :

Mise en forme données de Range ou cells dans HTML BODY [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Octobre 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 63
    Points : 51
    Points
    51
    Par défaut Mise en forme données de Range ou cells dans HTML BODY
    Bonjour à tous,

    Je me permets de vous solliciter à nouveau car nous avons une petite interrogation mon collègue et moi sur une macro de publipostage que nous avons récupéré et adapté à notre besoin.

    En effet, nous souhaitons automatiser le corps du courriel envoyé. Celui ci doit varier en fonction du destinataire.
    Le véritable problème est que nous ne parvenons pas à gérer la mise en forme final du corps du courriel dans Outlook lorsque la donnée provient d'une cellule. Cf la partie "HTMLBody" .

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        With Message
            .Subject = suj
            .BodyFormat = olFormatHTML
            .HTMLBody = ThisWorkbook.Worksheets(1).TextBox5.Text & Chr(10) & Chr(10) & "<HTML><body><b> &ThisWorkbook.Worksheets(1).Cells(1, 1).Text & <b></body><HTML>"
            .Recipients.Add (email)
            .Cc = emaila
            .Send
        End With
    Avec l'exemple suivant : ThisWorkbook.Worksheets(1).Cells(1, 1).Text sera en gras et non pas le contenue de la celulle... Ce qui est embêtant.

    Nous vous remercions pour le coup de main que vous pourrez nous apporter.

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    sauf erreur, il faut sortir ton .Text du String qui envoie les balises HTML ?

    je ne peux pas tester là, mon Outlook est occupé en automation pour plusieurs heures

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .HTMLBody = ThisWorkbook.Worksheets(1).TextBox5.Text & Chr(10) & Chr(10) & "<HTML><body><b>" & ThisWorkbook.Worksheets(1).Cells(1, 1).Text & "<b></body><HTML>"

  3. #3
    Membre du Club
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Octobre 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Merci.

    Effectivement ça marche très bien... j'ai un autre problème.

    Peut être aurez vous également la réponse. Je ne parviens pas à sauter mes lignes lors de la création de ma signature.
    Dans mon fichier j'ai créé des zones de texte avoir la diverses informations qui s'appelle ici " zt_...". Tout fonctionne bien sauf que les lignes ne sont pas sautées... avez vous une idée à ce sujet ?


    Mon bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            .HTMLBody = "<HTML><body><b>" & Cells(i, 1) & " " & Cells(i, 2) & " ," & Chr(10) & Chr(10) & "<b></body><HTML>" & ThisWorkbook.Worksheets(1).TextBox5.Text _
            & Chr(10) & Chr(10) ThisWorkbook.Worksheets(1).zt_nomprenom.Text & Chr(10) & Chr(10) & ThisWorkbook.Worksheets(1).zt_mission.Text _
            & Chr(10) & Chr(10) & ThisWorkbook.Worksheets(1).zt_structure.Text & Chr(10) & Chr(10) & ThisWorkbook.Worksheets(1).zt_unite.Text & Chr(10) & Chr(10) & ThisWorkbook.Worksheets(1).zt_tel.Text _
            & Chr(10) & Chr(10) & ThisWorkbook.Worksheets(1).zt_adresse.Text
    Mon résultat :

    Mme x , (cells i,1) et cells (i,2)
    Test : Pouvez vous me dire quels sont les fichiers reçus ? (le nom des fichiers) Et, si vous êtes le destinataire principal du courriel ou secondaire ? (contenue box5) Nom Prénom (contenu zt_prenom) Chargé de mission Région x Unité x / Service x Tél. xx xx

    D'avance je vous remercie.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            .HTMLBody = "<HTML><body><b>" & Cells(i, 1) & " " & Cells(i, 2) & " ,<br><br><b></body><HTML>" & ThisWorkbook.Worksheets(1).TextBox5.Text _
            &  "<br><br>" & ThisWorkbook.Worksheets(1).zt_nomprenom.Text & "<br><br>" & ThisWorkbook.Worksheets(1).zt_mission.Text _
            &  "<br><br>" & ThisWorkbook.Worksheets(1).zt_structure.Text & "<br><br>" & ThisWorkbook.Worksheets(1).zt_unite.Text & Chr(10) & "<br>" & ThisWorkbook.Worksheets(1).zt_tel.Text _
            & "<br><br>" & ThisWorkbook.Worksheets(1).zt_adresse.Text

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu peux utiliser les balises html <br></br> pour revenir à la ligne

  6. #6
    Membre du Club
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Octobre 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Yes super.

    J'arrive quasiment à ce que je veux et ceci grace à votre aide. Un grand merci à vous pour votre coup de pouce.

    Dernière question. Comment puis je faire pour mettre en rouge cette partie ?

    Je pense qu'avec ça, ça devrait aller :

    <font color="red">

    Est ce le cas, si oui ou dois je le placer ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Si tu place de double cote ["] dans ton code tu vas vers les ennuis! Alors qu'HTML accepte le simple quote.

    Rare sont les balise ouvrantes qui ne dispose pa de balise fermante, <br>,étant une rare exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <font color='red'>toto</font>

  8. #8
    Membre du Club
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Octobre 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Effectivement, j'avais trouvé une solution quasi identique :

    "<span style=""color:red""><b>" & ThisWorkbook.Worksheets(1).zt_adresse.Text & "<b></span>"

    Plus j'avance, plus je peine à comprendre l'HTML.

    En effet, j'ai bien essayé d'enfermer une partie pour essayer d'obtenir du gras seulement dans l'écriture sur une partie du texte mais au final tout est gras...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
             .HTMLBody = "<HTML><body><b>" & Cells(i, 1) & " " & Cells(i, 2) & " ,<br><b></body><HTML>" & ThisWorkbook.Worksheets(1).TextBox5.Text _
            & "<br>" & ThisWorkbook.Worksheets(1).zt_nomprenom.Text & "<br>" & "<b>" & ThisWorkbook.Worksheets(1).zt_mission.Text & "<b>" _
            & "<br>" & ThisWorkbook.Worksheets(1).zt_structure.Text & "<br>" & ThisWorkbook.Worksheets(1).zt_unite.Text & Chr(10) & "<br>" & ThisWorkbook.Worksheets(1).zt_tel.Text _
            & "<br>" & "<span style=""color:red""><b>" & ThisWorkbook.Worksheets(1).zt_adresse.Text & "<b></span>"
            .Recipients.Add (email)
    Ici tout devient gras à partir du zt structure et je perds même les biens fait de la balise rouge et du gras pour mon zt_adresse.

    D’où vient mon erreur car au final je pense avoir bien entouré ma valeur ThisWorkbook.Worksheets(1).zt_mission.Text ?

    Merci d'avance de votre aide.

  9. #9
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Tu n'aurais pas un <br> en trop ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
             .HTMLBody = "<HTML><body><b>" & Cells(i, 1) & " " & Cells(i, 2) & " ,<br><b></body><HTML>" & ThisWorkbook.Worksheets(1).TextBox5.Text _
            & "<br>" & ThisWorkbook.Worksheets(1).zt_nomprenom.Text & "<br>" & "<b>" & ThisWorkbook.Worksheets(1).zt_mission.Text & "<b>" _
            & "<br>" & ThisWorkbook.Worksheets(1).zt_structure.Text & "<br>" & ThisWorkbook.Worksheets(1).zt_unite.Text & Chr(10) & "<br>" & ThisWorkbook.Worksheets(1).zt_tel.Text _
            & "<br>" & "<span style=""color:red""><b>" & ThisWorkbook.Worksheets(1).zt_adresse.Text & "<b></span>"
            .Recipients.Add (email)

    Pour ne pas me mélanger les pinceaux (je suis pire qu'un débutant en la matière), j'ai toujours pris l'habitude d'utiliser le </br> fermant avec le Slash

    c'est plus lisible en relecture

    Quand c'est vraiment une mise en forme complexe, tu peux également découper ton corps en plusieurs sous-variable String, que tu injectes ensuite dans ton HTMLBody

  10. #10
    Invité
    Invité(e)
    Par défaut
    Cette balise là n'existe pas </br> celle là oui <br/> c'est juste l'HTML5 qui veut ça!

    Des l'instant ou tu utilise style, <b> n'a plus de raison d'être
    http://formation.upyupy.fr/style-css/proprietes-bloc/


    "<span style='color:red; font-weight : Bold;'>Pour information tout le texte doit être implémenter entre les balises body.

    Vue que tu t'intéresse au feuilles de style tu pourrais utiliser les balises paragraphe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <body style='{}'>
    <style>
    .Rd {color:red; font-weight : Bold;}
    </style>
     
    <p style='{}'>toto</p>
    <p style='{}'>titi</p>
    <p style='{}'>tutu</p>
    <p class ='rd'>Rdurupt</p>
     
    </body>
    La balise paragraphe fait le retour à a la ligne et vue que style gère les interlignes, tu fais la mise en page que tu veux!
    Dernière modification par Invité ; 04/09/2015 à 09h06.

  11. #11
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Pourtant j'ai un code avec des </br> qui fonctionne bien ?

    il me semblait que les deux étaient possibles ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour Joe,
    Moi je me contente de <br>, Drimwever te le dirait!

    Pour la mise en page tu peux télécharger topstyle et recopier sa mise en forme comme dans l'exemple class rd!
    Nom : Sans titre.png
Affichages : 1035
Taille : 55,5 Ko
    Dernière modification par Invité ; 04/09/2015 à 11h07.

  13. #13
    Membre du Club
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Octobre 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Merci à tous les deux pour votre aide.

    De cette manière je suis parvenu à faire ce que je souhaitais !

    Bonne journée à vous.

  14. #14
    Invité
    Invité(e)
    Par défaut
    explique comment pour les internautes qui auraient le même problème et intéressés par ta solution!

    que les déboires des un servent aux autres!
    Dernière modification par AlainTech ; 10/09/2015 à 08h16. Motif: Suppression de la citation inutile

  15. #15
    Membre du Club
    Homme Profil pro
    Chargé d'études statistiques
    Inscrit en
    Octobre 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 63
    Points : 51
    Points
    51
    Par défaut
    Re bonjour,

    Alors voici une première solution que nous avons trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        .GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
    Comme ma mise en forme était pour insérer la signature, nous avons utilisé cette commande.

    La deuxième méthode était bien d'utiliser ce que vous m'aviez transmis hier et de faire attention à bien placer mon "</span>" pour conclure ma mise en forme sur la phrase que je souhaitais mettre en forme.

    Mon collègue s'est également rendu compte d'un problème auquel nous n'avions pas été confronté avant d'utiliser le HTML. En effet, au sein de la textbox nous avons une mise en forme très simple (des lignes sautées). Lors de l'envoi du courriel, les lignes sautées disparaissent et nous avons au final un contenu d'un seul block assez moche..

    **** Voici le format que nous avons dans notre texte présent dans la textbox ***

    Test :

    Pouvez vous me dire quels sont les fichiers reçus ? (le nom des fichiers)
    Et, si vous êtes le destinataire principal du courriel ou secondaire ?

    *** Voici ce que nous recevons par email ****

    Test : Pouvez vous me dire quels sont les fichiers reçus ? (le nom des fichiers) Et, si vous êtes le destinataire principal du courriel ou secondaire ?

    Comment faire pour au final que la mise en forme de cette textbox soit conservée dans l'envoi de mon mail ? Y a-t-il une option spéciale à rajouter ?

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

Discussions similaires

  1. [XL-2003] Template mise en forme données
    Par ninikkhuet dans le forum Excel
    Réponses: 4
    Dernier message: 18/09/2012, 20h40
  2. Mise en forme données axe graphique
    Par Juliette76 dans le forum IHM
    Réponses: 0
    Dernier message: 13/04/2012, 11h08
  3. Mise en forme données sous rtf
    Par marlene2110 dans le forum ODS et reporting
    Réponses: 4
    Dernier message: 06/03/2012, 17h30
  4. [2.3.2] Mise en forme données à partir de xml
    Par dodane dans le forum BIRT
    Réponses: 1
    Dernier message: 02/04/2009, 18h15
  5. Mise en forme conditionnelle selectionner rangée
    Par jcaspar dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/01/2007, 20h06

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