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 :

XL 2010 - Scinder une chaine de caractère afin de l'afficher sous forme de liste avec puces dans mail Outlook [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2015
    Messages : 12
    Points : 8
    Points
    8
    Par défaut XL 2010 - Scinder une chaine de caractère afin de l'afficher sous forme de liste avec puces dans mail Outlook
    Bonjour à tous,

    Avant de poster, j'ai évidemment essayer trouver une solution à mon problème au travers des forums, FAQ...
    Je tiens à préciser que je suis débutant en dev VBA .

    Voici mon problème : depuis un fichier EXCEL, je dois récupérer une chaine de caractères (qui contient des références - qui commencent toutes par PKE - dans une seule cellule) sans espace.
    J'ai besoin de récupérer cette chaine de caractères afin de l'afficher proprement dans un mail OUTLOOK.
    A l'heure actuelle, les références s'affichent toujours en une seule phrase dans mon mail...

    Exemple du contenu de ma cellule Excel.
    PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16

    J'arrive éventuellement à insérer une virgule au mieux, mais ca ne fait pas propre dans mon mail (j'ouvre un modèle de mail dans lequel sont contenues des variables, dont celle qui nous intéresse nommée NewListPKE).
    J'aurai besoin d'un rendu de ce genre dans le mail généré :

    • PKEXXXXXXXXXXX1
    • PKEXXXXXXXXXXX2
    • PKEXXXXXXXXXXX3
    • PKEXXXXXXXXXXX4
    • PKEXXXXXXXXXXX5
    • PKEXXXXXXXXXXX6
    • PKEXXXXXXXXXXX7
    • PKEXXXXXXXXXXX8
    • PKEXXXXXXXXXXX9
    • PKEXXXXXXXXXX10
    • PKEXXXXXXXXXX11
    • PKEXXXXXXXXXX12
    • PKEXXXXXXXXXX13
    • PKEXXXXXXXXXX14
    • PKEXXXXXXXXXX15
    • PKEXXXXXXXXXX16




    Voici mon code (enfin la partie qui nous intéresse) :


    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
     
    Sub CréationMail()
     
    Dim objOutlook As Outlook.Application
    Dim MonMessage As Outlook.MailItem
    Dim TypeRelance As String
    Dim Mois As String
    Dim GS As String
    Dim TypePKE As String
    Dim DateButoire As Date
    Dim ListPKE As String
    Dim Insert As String
    Dim TextMail As String
    Dim NewListPKE As String
    Dim L As Integer
    Dim i As Integer
    Dim Tableau() As String
    Dim NewListPKE1 As String
    Dim NewListPKE2 As String
     
    PathTemplate = "c:\Desktop\"
     
    ModeleMail1 = "Modele_Mail_Relance_PKE_DC_Echue.oft"
    PathModeleMail1 = PathTemplate & ModeleMail1
     
    ModeleMail2 = "Modele_Mail_Relance_PKE_Retard_Planif.oft"
    PathModeleMail2 = PathTemplate & ModeleMail2
     
    'Champs Feuille Formulaire
    ChampMois = Sheets("Formulaire").Range("F5")
    ChampTypeRelance = Sheets("Formulaire").Range("F10")
    ChampTypePKE = Sheets("Formulaire").Range("F15")
    ChampGS = Sheets("Formulaire").Range("F20")
    ChampListPKE = Sheets("Formulaire").Range("F30")
     
    'Champs Feuille Temp
    TypeRelance = Sheets("Temp").Range("B1")
    Mois = Sheets("Temp").Range("B2")
    GS = Sheets("Temp").Range("B3")
    TypePKE = Sheets("Temp").Range("B4")
    DateButoire = Sheets("Temp").Range("B5")
    ListPKE = Sheets("Temp").Range("B6")
    GSMail = Sheets("Temp").Range("B7")
     
    NewListPKE = ""
    L = Len(ListPKE) ' Nombre de caractère dans la chaine ListPKE
     
     
        For i = 1 To L Step 17 'On fait l'insertion d'un saut de ligne tous les 17 caractères, longueur d'une PKE
     
            'NewListPKE = NewListPKE & Mid(ListPKE, i, 17) & "," & vbCrLf ' NewListPKE devient alors la liste des PKE avec virgules
            NewListPKE = NewListPKE & Mid(ListPKE, i, 17) & vbCrLf & vbCrLf & vbCrLf
     
        Next
     
    MsgBox NewListPKE
     
     
    If ChampMois = "" Or ChampTypeRelance = "" Or ChampTypePKE = "" Or ChampGS = "" Or ChampListPKE = "" Then
     
        Alerte = MsgBox("!!! Tous les champs sont obligatoires !!!" & Chr(10) & Chr(10) & "Merci de tous les renseigner avant de lancer la génération du mail de relance.", vbExclamation, "Champ(s) Non Renseigné(s)")
        Exit Sub
    Else
     
        Set objOutlook = New Outlook.Application
     
            If TypePKE = "PKE Date Cible Echue" Then
     
                Set MonMessage = CreateItemFromTemplate(PathModeleMail1)
     
            Else
     
                Set MonMessage = CreateItemFromTemplate(PathModeleMail2)
     
            End If
     
        'Objet du mail
        ObjetMail = MonMessage.Subject
        ObjetMail = Replace(ObjetMail, "TypeRelance", TypeRelance, , , vbTextCompare)
        ObjetMail = Replace(ObjetMail, "Mois", Mois, , , vbTextCompare)
        ObjetMail = Replace(ObjetMail, "GS", GS, , , vbTextCompare)
        ObjetMail = Replace(ObjetMail, "TypePKE", TypePKE & vbCrLf, , , vbTextCompare)
     
        'corps du mail
        CorpsMail = MonMessage.HTMLBody
        CorpsMail = Replace(CorpsMail, "DateButoire", DateButoire, , , vbTextCompare)
        CorpsMail = Replace(CorpsMail, "GSMail", GSMail, , , vbTextCompare)
        CorpsMail = Replace(CorpsMail, "GS", GS, , , vbTextCompare)
        CorpsMail = Replace(CorpsMail, "NewListPKE", NewListPKE, , , vbTextCompare)
        'CorpsMail = Replace(CorpsMail, "ListPKE", ListPKE, , , vbTextCompare)
        'CorpsMail = Replace(CorpsMail, "TextMail", TextMail, , , vbTextCompare)
     
     
        With MonMessage
               .SentOnBehalfOfName = "QUALITE.PROBLEME@ca-ts.fr"
               '.To = Sheets("formulaire").Range("G11").Value & " ; " & Sheets("formulaire").Range("G13").Value  ' le destinataire
               .To = Sheets("formulaire").Range("G21").Value & " ; " & Sheets("formulaire").Range("G13").Value
               '.CC = Sheets("Formulaire").Range("G15").Value
               '.BCC = Sheets("Formulaire").Range("G16").Value
               .Subject = MonMessage
               '.Body = CorpsMail
               .HTMLBody = "<HTML><HEAD></HEAD><BODY>" & CorpsMail & "<br></BODY></HTML>"  ' Mise en forme du mail
               '.Attachments.Add PathPJ
               '.Display  '   Ici on peut supprimer pour l'envoyer sans vérification
               '.Send
               .Display
     
        End With
     
        Call Logs
     
     
        Info = MsgBox("Mail généré et alimentation du fichier log effectuée", vbInformation, "Génération du mail et Alimentation des Logs")
     
    End If
     
    End Sub
    Avez-vous une idée, SVP ?

    En vous remerciant par avance du coup de main .

    Xico

  2. #2
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour ...

    Citation Envoyé par xico8 Voir le message
    ...
    Avez-vous une idée, SVP ?
    ..
    et en remplaçant tes vbCrlf par des "<cr>" ?

  3. #3
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour xico8, bbil,

    @bbil : les "<cr>" vont permettre de faire des retours chariots en HTML. C'est bien, mais il me semble que la demande concerne les puces.
    Ainsi, je te présente un body qui permet d'établir des puces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .HTMLBody = "<UL><LI>item n°1<LI>item n°2<LI>item n°3</UL>"
    Tu n'as plus qu'à adapter !

    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    bonjour
    rien de plus simple
    tu a la fonction split en vba qui fait le boulot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim chaine As String, liste As Variant, deb As String
    chaine = "PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16"
    liste = Split(chaine, "PK")
    For i = 0 To UBound(liste)
    If i > 0 Then deb = "PK"
    texte = texte & deb & liste(i) & vbCrLf
    Next
    Debug.Print texte 'appercu dans la fentere debug
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Pour reprendre ce que Patrick a fait :
    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
    Sub test()
    Dim chaine As String, liste As Variant, deb As String
    Dim objOutlook As Outlook.Application
    Dim objEmail As Outlook.MailItem
     
    chaine = "PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16"
    liste = Split(chaine, "PK")
     
    texte = "<UL>"
    For i = 0 To UBound(liste)
        If i > 0 Then deb = "<LI>PK"
        texte = texte & deb & liste(i) & vbCrLf
    Next
     
    texte = texte & "</UL>"
     
    Set objOutlook = CreateObject("Outlook.application")
    Set objEmail = objOutlook.CreateItem(olMailItem)
     
    With objEmail
        .To = "monadresse@mondomaine.fr"
        .CC = ""
        .Subject = "Test"
        .BodyFormat = olFormatHTML
        .HTMLBody = texte
        .Send
    End With
     
    End Sub
    Voila !
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oui effectivement la balise "li" fait tres bien l'affaire mais attention de bien refermer les balises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
    Dim chaine As String, liste As Variant, deb As String
    chaine = "PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16"
    liste = Split(chaine, "PK")
    texte = "<ul>"
    For i = 0 To UBound(liste)
    If i > 0 Then deb = "PK"
    texte = texte & "<li>" & deb & liste(i) & "</li>" & vbCrLf
    Next
    texte = texte & "</ul>"
    Debug.Print texte 'appercu dans la fentere debug
    End Sub
    selon le navigateur installé donc ses librairies l'interpretention de l'affichage peut jouer des tours de cochons si les balises ne sont pas bien fermées
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    En fait...
    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
    Sub test()
    Dim chaine As String, texte As String
    Dim objOutlook As Outlook.Application
    Dim objEmail As Outlook.MailItem
     
    chaine = "PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16"
     
    texte = Replace(chaine, "PK", "<LI>PK")
    texte = "<UL>" & texte & "</UL>"
     
    Set objOutlook = CreateObject("Outlook.application")
    Set objEmail = objOutlook.CreateItem(olMailItem)
     
    With objEmail
        .To = "address"
        .CC = ""
        .Subject = "Test"
        .BodyFormat = olFormatHTML
        .HTMLBody = texte
        .Send
    End With
     
    End Sub


    Citation Envoyé par patricktoulon Voir le message
    selon le navigateur installé donc ses librairies l'interpretention de l'affichage peut jouer des tours de cochons si les balises ne sont pas bien fermées
    Oui... pas pensé ! Faire attention à cela et adapter en conséquence pour le coup ! Bref, je crois que notre ami a toutes les informations !
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    avec la fonction replace pour fermer les balises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test2()
    chaine = "PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16"
    texte = Replace(chaine, "PK", "</lI><lI>PK")
    texte = "<UL>" & vbCrLf & Right(texte, Len(texte) - 5) & "</LI>" & vbCrLf & "</UL>"
    Debug.Print texte 'appercu dans la fentere debug
    End Sub
    j'aurais bien montré comment indenter le code html obtenu mais bon

    bonjour au fait KYMI j'avais pas vu que c'etait toi

    bon allez je montre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test2()
    chaine = "PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16"
    texte = Replace(chaine, "PK", "</lI><lI>PK")
    texte = Replace("<UL>" & vbCrLf & "   " & Right(texte, Len(texte) - 5) & "</LI>" & vbCrLf & "</UL>", "><", ">" & vbCrLf & "   <")
    Debug.Print texte 'appercu dans la fentere debug
    End Sub
    je me regale avec ca moi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    txt="PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16"
    txtHtml= "<UL>" & replace(txt,"PKE","<LI> PKE") &  "</UL>"
    Bonjour Patrick,
    et oui j'ai mis 1 minute pour écrire!

  10. #10
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Salut Patrick !

    Aucun, soucis, le but est de se compléter !
    Allez un tout petit dernier détail : les vbCrLf, ne servent qu'à la présentation Excel (dans la MsgBox) mais aucunement dans le corps du mail.
    Donc ils ne sont pas nécessaire.

    J'espère qu'avec tout ça xico8 aura de quoi clôturer le sujet !

    Cordialement,
    Kimy

    Citation Envoyé par rdurupt Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    txt="PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16"
    txtHtml= "<UL>" & replace(txt,"PKE","<LI> PKE") &  "</UL>"
    Ca ne va plus finir !
    Ce qu'on disait, Robert, c'est le fait que si l'on ne ferme pas les balises <LI>, certaines boites mails risquent de mal interpréter le code HTML.

    Bref, voir le dernier message de Patrick !
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    re
    oui mais comme je fonctionne comme quand je redige un doc html j'indente et avec les vbcrlf aussi

    sinon imagine sur un code de 5000 caracteres comment s'y retrouver sans indentation c'est pire qu'en vba
    sachant que je code avec notpad pas de couleur syntaxique etc.... donc j'applique ca me permet meme par la suite de pouvoir introduire du code dans du code meme pour outlook ou CDO
    en utilisant toutes les fonction dsponible en vba ' split instr,like, etc.....

    surtout que finalement les vbcrlf ne mangent pas de pain
    a mediter
    allez qui dit mieux mieux hein!!

    bonjour rdurupt
    a tu recu mon MP au fait au sujet du code de wiwiwig editor

    @rdurupt
    Bonjour Patrick,
    et oui j'ai mis 1 minute pour écrire!
    tu a les deux mains dans le platre et 1 litre de wyski dans les veines
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    @rdurupt


    tu a les deux mains dans le platre et 1 litre de wyski dans les veines
    ce matin je me suis rasé avec un rabot!

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2015
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Kimy_Ire Voir le message
    Salut Patrick !

    Aucun, soucis, le but est de se compléter !
    Allez un tout petit dernier détail : les vbCrLf, ne servent qu'à la présentation Excel (dans la MsgBox) mais aucunement dans le corps du mail.
    Donc ils ne sont pas nécessaire.

    J'espère qu'avec tout ça xico8 aura de quoi clôturer le sujet !

    Cordialement,
    Kimy
    Merci beaucoup pour le coup de main, ca fonctionne.
    Il ne me reste plus qu'un petit souci de taille de police HTML (qui n'est pas prise en compte) à régler et c'est OK.
    Bonne fin de journée à tous et merci encore.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Html="<style>.Rd{font-style: italic;font-weight: bold;font-size: 30px;font-family: arial, sans-serif;}</Style>" &vbcrlf
    Html=html & "<li class='Rd'>toto</li>"
    Si non plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Html="<style>Li{font-style: italic;font-weight: bold;font-size: 30px;font-family: arial, sans-serif;}</Style>" &vbcrlf
    Html=html & "<li>toto</li>"
    http://formation.upyupy.fr/style-css/proprietes-bloc/

    TopStyle est un logiciel gratuit, je t'invite à le télécharger!
    Dernière modification par Invité ; 14/09/2015 à 18h41.

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    heu rdurupt
    ????????????.????
    c'est qui quoi toto
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Invité
    Invité(e)
    Par défaut
    Toto c'est mon frère, je n'allais pas redire ce qui a été dit plus haut!

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    sinon direct online en hinnerit sur le ul pour les li
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test2()
    chaine = "PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16"
    texte = Replace(chaine, "PK", "</lI><lI>PK")
    texte = Replace("<UL style="" font-weight:bold;font-style: oblique;font-family:Arial"">" & vbCrLf & "   " & Right(texte, Len(texte) - 5) & "</LI>" & vbCrLf & "</UL>", "><", ">" & vbCrLf & "   <")
    Debug.Print texte 'appercu dans la fentere debug
    End Sub
    sinon allo wisiwig!!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test3()
    chaine = "PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16"
    texte = Replace(chaine, "PK", "</em></strong></lI> <lI><strong><em>PK")
    texte = Replace("<UL>" & vbCrLf & "   " & Right(texte, Len(texte) - 5) & "</em></strong></LI>" & vbCrLf & "</UL>", "> <", ">" & vbCrLf & "   <")
    Debug.Print texte 'appercu dans la fentere debug
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #18
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    oup's cela marche pas dés mon premier code PK :

    PKE124PKXXPKX1

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re bill
    alors tu a un soucis ailleurs
    chez moi
    Nom : Capture.JPG
Affichages : 378
Taille : 138,8 Ko

    bill pour etre plus precis et enlever le superflu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test3()
    chaine = "PKEXXXXXXXXXXX1PKEXXXXXXXXXXX2PKEXXXXXXXXXXX3PKEXXXXXXXXXXX4PKEXXXXXXXXXXX5PKEXXXXXXXXXXX6PKEXXXXXXXXXXX7PKEXXXXXXXXXXX8PKEXXXXXXXXXXX9PKEXXXXXXXXXX10PKEXXXXXXXXXX11PKEXXXXXXXXXX12PKEXXXXXXXXXX13PKEXXXXXXXXXX14PKEXXXXXXXXXX15PKEXXXXXXXXXX16"
    chaine = "PKE124PKXXPKX1"
    texte = Replace(chaine, "PK", "</em></strong></lI> <lI><strong><em>PK")
    texte = Replace("<UL>" & vbCrLf & "   " & Right(texte, Len(texte) - 20) & "</em></strong></LI>" & vbCrLf & "</UL>", "> <", ">" & vbCrLf & "   <")
    Debug.Print texte 'appercu dans la fentere debug
    End Sub
    résultat
    <UL>
    <lI><strong><em>PKE124</em></strong></lI>
    <lI><strong><em>PKXX</em></strong></lI>
    <lI><strong><em>PKX1</em></strong></LI>
    </UL>
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. enlever le = d'une formule afin d'obtenir une chaine de caractères
    Par lionhigh dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/07/2008, 15h05
  3. Purger une chaine de caractère des balises de mises en forme
    Par mr_neness dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/03/2006, 19h13
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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