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 :

Mettre en gras une partie du texte dans un code VBA - [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2013
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 220
    Par défaut Mettre en gras une partie du texte dans un code VBA -
    Bonjour tout le monde,

    J'ai un peu honte... J'ai fait des recherches sur le forum et j'ai trouvé des questions similaires à la mienne mais comme je n'ai pas une compréhension parfaite, ni même avancée, du code VBA je n'arrive pas à adapter les solutions proposées à mon cas.

    Voilà : j'envoie un mail directement depuis Excel, avec le corps du message inscrit dans le code VBA (que j'ai recopié d'un site internet et qui fonctionne très bien). Le hic, c'est que je dois mettre en gras certains groupes de mots placés entre " ". J'ai essayé les balises (?) <B> de chaque côté de mon groupe de mots mais lesdites balises apparaissent dans le mail et rien n'est en gras... Ça fait pas très beau comme résultat !

    Voici mon code :

    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
    Sub SendEMailHypo()
        Dim Email As String, Subj As String
        Dim Msg As String, URL As String
        Email = Cells(ActiveCell.Row, 25)
     
        Subj = "Votre Lorem ipsum"
     
        Msg = ""
        Msg = Msg & "Bonjour " & Cells(ActiveCell.Row, 4) & "," & vbCrLf & vbCrLf _
        & "Déjà 5 ans et voilà que Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. " _
        & vbCrLf & vbCrLf _
        & "Vous désirez obtenir Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat." _
        & vbCrLf & vbCrLf _
        & "Dans l'attente blablablabla" _
        & vbCrLf & vbCrLf _
     
        'Replace spaces with %20 (hex)
        Subj = Application.WorksheetFunction.Substitute(Subj, " ", "%20")
        Msg = Application.WorksheetFunction.Substitute(Msg, " ", "%20")
     
        'Replace carriage returns with %0D%0A (hex)
        Msg = Application.WorksheetFunction.Substitute(Msg, vbCrLf, "%0D%0A")
     
        'Create the URL
        URL = "mailto:" & Email & "?subject=" & Subj & "&body=" & Msg
     
        'Execute the URL (start the email client)
        ShellExecute 0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus
     
        'Wait two seconds before sending keystrokes
        'Application.Wait (Now + TimeValue("0:00:02"))
        'Application.SendKeys "%s"
    End Sub
    Je voudrais mettre en gras, par exemple, "sed diam nonummy nibh euismod tincidunt" dans le premier paragraphe, et "Ut wisi enim ad minim veniam" dans le deuxième.

    Que dois-je faire ? Est-ce qu'il faut couper les phrases là où on veut formater en gras et les reprendre ensuite avec des & et je ne sais quel autre signe magique ou mystérieuse "balise" ?

    J'ai vu aussi qu'il y a une question de format HTML... Mais encore là je nage : dans mon code, je ne vois rien qui indique ce format ou un autre ?

    Merci à l'avance de votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut mettre en gras
    Bonsoir,

    Et si tu écrivais ton message sous word avec la mise en forme souhaitée pour :

    - Soit le copier dans le corps de ton VBA comme actuellement (ce qui n'est pas très heureux selon moi)
    - Soit le mettre en pièce jointe

    cordialement,

  3. #3
    Membre éclairé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2013
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 220
    Par défaut
    Bonjour Nibledispo,

    Merci tout d'abord de m'avoir consacré un peu de votre temps.

    Malheureusement, les deux solutions que vous proposez ne sont pas satisfaisantes : la première ne fonctionne pas et la seconde n'est pas envisageable.
    Je sais pour avoir parcouru le forum que ce que je demande est possible, mais je ne sais tout simplement pas adapter les pistes que j'ai trouvées à mon cas...

  4. #4
    Membre éclairé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2013
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 220
    Par défaut Autre code... Autre problème...
    Re-bonjour à tous,

    J'ai fini par trouver un autre code qui me permet d'utiliser les balises pour mettre mon texte en gras. Yé !

    Cependant, au lieu d'utiliser le Times New Roman 11 qui est la police par défaut de mes messages Outlook, il utilise Calibri 10... ??? Je ne vois pourtant nulle part dans ce code une déclaration de Font... ?

    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
    Sub EnvoiMail()
    ' Working in Office 2000-2013
        Dim OutApp As Object
        Dim OutMail As Object
        Dim strbody As String
     
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
     
        strbody = "Bonjour," & _
                  "<br><br>Blalalala ldjf slfjslfj slfjs;alfjs;aldsa;ldasldfjas;d.<br>" & _
                  "<br>Blablalbalblablalala <b>en gras en gras en gras</b> blablalbalblalalalalala." & _
                  "<br><br>blablablablablabla" & _
                  "<br><br><b>PS. Blalalalalalalalalalalala</b>."
     
     
        On Error Resume Next
     
        With OutMail
            .Display
            .To = Cells(ActiveCell.Row, 25)
            '.CC = ""
            '.BCC = ""
            .Subject = "Test mail"
            .HTMLBody = strbody & "<br>" & .HTMLBody
            .Display
        End With
     
        On Error GoTo 0
        Set OutMail = Nothing
        Set OutApp = Nothing
    End Sub
    Auriez-vous une solution ? Merci à l'avance !

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Quelque chose comme ce qui suit (à tester)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      strbody = "<FONT face=" & chr(34) & "Times New Roman" & chr(34) & "size=" & chr(34) & "3" & chr(34) & ">" & _
                  "Bonjour," & _
                  "<br><br>Blalalala ldjf slfjslfj slfjs;alfjs;aldsa;ldasldfjas;d.<br>" & _
                  "<br>Blablalbalblablalala <b>en gras en gras en gras</b> blablalbalblalalalalala." & _
                  "<br><br>blablablablablabla" & _
                  "<br><br><b>PS. Blalalalalalalalalalalala</b>." & _
                  "</FONT>"

  6. #6
    Membre éclairé
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2013
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 220
    Par défaut
    Bonsoir PMO2017,

    Hélas !

    Avant de coller votre code, mon "Bonjour" est en Times New Roman, mais c'est le reste qui est en Calibri 10... Avec votre code, c'est tout le message qui est formaté en Calibri 10...

    Je suis allée vérifier les options d'Outlook, et j'ai bien du TNR 11 par défaut pour les trois options : composition, transfert, réponse... Même dans la rédaction en texte brut.

    C'est étrange n'est-ce pas ?

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

Discussions similaires

  1. Mettre en gras une partie d'un mail généré via vba excel
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/01/2013, 17h08
  2. Mettre en gras une partie de texte
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/01/2012, 17h09
  3. Réponses: 4
    Dernier message: 20/06/2008, 16h19
  4. Réponses: 8
    Dernier message: 04/05/2007, 12h41
  5. [VBA-E] Mettre en gras une partie du texte d'une cellule
    Par clochardevobsy dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/05/2006, 17h25

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