Insérer plages cellules corps mail Outlook collage spécial

Y compris Power BI, Power Query et toute autre question en lien avec Excel
v
vlko
Jeune membre
Jeune membre
Messages : 48
Inscrit le : 31 juillet 2017
Version d'Excel : 2010 FR

Message par vlko » 12 septembre 2017, 18:12

Hello :)

Merci ! J'ai mis ta proposition à la suite de mon code :
' Insertion texte premier tableau
            rng.InsertAfter vbNewLine & "Commentaires" & vbCrLf
            With rng.Font
                .Name = "Calibri"
                .Size = 11
                .ColorIndex = 6
                .Underline = xlUnderlineStyleSingle
            End With
            rng.InsertAfter vbNewLine
            rng.Move wdParagraph
Cela souligne mes commentaires mais aussi les tableaux qui sont dans le corps du mail.
Comment est-ce que je peux uniquement souligner une partie du texte qui sépare les tableaux sans aussi souligner les tableaux de données ?

Enfin j'ai une dernière question, il peut arriver qu'en générant le mail une signature automatique soit présente.
Ainsi lorsque je lance ma macro, les tableaux sont bien collés à la suite mais la signature générée se retrouve en plein milieu.
Comment gérer la signature automatique et la placer tout en bas du mail ?
Avatar du membre
thev
Membre impliqué
Membre impliqué
Messages : 2'476
Appréciations reçues : 208
Inscrit le : 13 juin 2016
Version d'Excel : 2019 FR 64 bits

Message par thev » 12 septembre 2017, 20:56

Bpnsoir,
vlko a écrit :Cela souligne mes commentaires mais aussi les tableaux qui sont dans le corps du mail.
Si vous collez des images, je ne vois pas comment vous pouvez avoir ce problème. En tout cas, dans ma version, le 2ème commentaire n'est pas souligné.

Pour ce qui concerne la signature automatique, essayer cette nouvelle version du code :
Sub envoi_mail()
    Dim olk As Object, email As Object, wdDoc As Object
    Dim erreur As Integer, nb_lignes As Integer, i As Integer
    Dim rng As Object
   
    On Error Resume Next    'désactivation routine d'erreur
     erreur = False
    
    'Assignation des applications Outlook ,de l'objet email et du body de l'email en tant que document Word
     Set olk = CreateObject("outlook.application")
    Set email = olk.CreateItem(olMailItem)
    Set wdDoc = email.GetInspector.WordEditor
       
    With email
        '....... remplissage sujet, objet, et adresse
         .To = "xxxxxxx@gmail.com"
        .CC = "yyyyyyy@gmail.com"
        .Subject = "test01"
        
        '....... corps du mail
         .Display
        With Sheets("Test")
            'premier tableau
             .Range("A1:F10").Copy
            nb_lignes = .Range("A1:F10").Rows.Count
            Set rng = wdDoc.Content
            For i = 1 To nb_lignes: rng.InsertParagraphBefore: Next i
            rng.Move wdParagraph, -nb_lignes
            rng.PasteSpecial , DataType:=wdPasteMetafilePicture
            rng.Move wdParagraph, nb_lignes
            
            ' Insertion texte premier tableau
             rng.InsertAfter vbNewLine & "Commentaires" & vbCrLf
            With rng.Font
                .Name = "Calibri"
                .Size = 11
                .ColorIndex = 6
                .Underline = xlUnderlineStyleSingle
            End With
            rng.InsertAfter vbNewLine
            rng.Move wdParagraph
            
            ' Deuxième tableau
             .Range("J1:N10").Copy
            nb_lignes = .Range("J1:N10").Rows.Count
            rng.PasteSpecial , DataType:=wdPasteMetafilePicture
            For i = 1 To nb_lignes: rng.InsertParagraphAfter: Next i
            
            ' Insertion texte deuxième tableau
             rng.InsertAfter "" & vbNewLine & "Commentaires 2" & vbCrLf
        End With
        
        '....... envoie le message
        .Send
        If Err.Number <> 0 Then erreur = True
    End With
    
    'Désassignation objets
      Set olk = Nothing
     Set email = Nothing
     Set wdDoc = Nothing
    
End Sub
v
vlko
Jeune membre
Jeune membre
Messages : 48
Inscrit le : 31 juillet 2017
Version d'Excel : 2010 FR

Message par vlko » 27 septembre 2017, 16:38

Hello :)

Désolé de répondre aussi tard, j'étais assez occupé. J'ai donc testé les deux versions de code, la tienne et la mienne.
Je rencontre encore quelques problèmes avec les deux versions de code :

- Dans ton code "envoi_mail_2", les tableaux s'affichent bien et sont bien séparés par les textes. La signature auto se retrouve bien à la fin du mail aussi. Mais comment adapter le code avec un troisième tableau ? En effet, j'aimerais insérer un 3ème tableau à la suite du texte du deuxième tableau.
Résultat de ta version de code
Résultat de ta version de code
- Dans ma version "envoi_mail", les tableaux s'affichent bien et sont bien séparer par les textes mais la signature auto se retrouve en plein milieu du mail, j'aimerais pouvoir placer la signature à la fin du mail avec ma version de code et gérer le soulignage.
Résultat de ma version de code
Résultat de ma version de code
Ci-joint un fichier excel d'exemple avec les 2 macros.
TestMail.xlsm
(25.25 Kio) Téléchargé 28 fois
Avatar du membre
thev
Membre impliqué
Membre impliqué
Messages : 2'476
Appréciations reçues : 208
Inscrit le : 13 juin 2016
Version d'Excel : 2019 FR 64 bits

Message par thev » 28 septembre 2017, 12:14

Bonjour,

Pas de souci pour ajouter le 3ème tableau avec mon code.
TestMail1.xlsm
(24.59 Kio) Téléchargé 46 fois
v
vlko
Jeune membre
Jeune membre
Messages : 48
Inscrit le : 31 juillet 2017
Version d'Excel : 2010 FR

Message par vlko » 28 septembre 2017, 14:41

Super ! merci ça marche nickel ! :)

J'ai repris ton code pour un autre fichier et sur d'autres tableaux mais j'observe que la taille des tableaux dans le mail est réduite et il y a trop d'espace entre les tableaux et les textes, est-ce que tu sais d'où peut venir le problème ?
Dans ce cas, est-ce que tu sais comment agrandir le tableau dans le mail avec la taille que je veux, dans le code ?

Est-ce que tu saurais aussi à partir de mon code "envoi_mail", comment est-ce je peux gérer la signature auto et la placer à la fin du mail ? Comme ce que tu as fais avec ton code en faite mais en adaptant à ma version...
Je continue à travailler mon code car avec celui-ci je n'ai pas de problème de taille ni d'espace mais juste le problème de signature.

Enfin dernier point, j'aimerais dans le texte du mail insérer des puces à la suite des commentaires avec le texte associé. J'ai cherché mais je ne trouve pas de solutions, est-ce que tu as une idée de comment faire ?

Merci :)
Avatar du membre
thev
Membre impliqué
Membre impliqué
Messages : 2'476
Appréciations reçues : 208
Inscrit le : 13 juin 2016
Version d'Excel : 2019 FR 64 bits

Message par thev » 28 septembre 2017, 17:51

ci-jointe nouvelle version en combinant les 2 codes (envoi_mail3)
TestMail2.xlsm
(24.3 Kio) Téléchargé 41 fois
v
vlko
Jeune membre
Jeune membre
Messages : 48
Inscrit le : 31 juillet 2017
Version d'Excel : 2010 FR

Message par vlko » 29 septembre 2017, 11:08

Salut !

Merci cette version marche très bien et c'est la plus aboutie jusqu'à présent :)

Dernier point, j'ai repris ce code sur un autre fichier et sur d'autres tableaux. (je ne peux malheureusement pas joindre ce fichier car c'est un fichier de travail)
Le code fonctionne c'est à dire que les tableaux s'affichent bien à la suite des autres et sont séparés par les textes et la signature se trouve à la fin du mail. Mon seul problème est que la taille des tableaux dans le mail est réduite.
Cependant si je remplace la ligne de copie dans ta version de code "rng.Paste" par celle de mon ancienne version de code
wDoc.Application.Selection.Paste
J'arrive à obtenir la bonne taille des tableaux, mais les tableaux ne s'affichent plus l'un en dessous de l'autre et séparés par les textes.
J'obtiens par exemple sur le fichier test avec le code "envoi_mail_4" :
Sans titre 3.png
Aurais-tu une idée afin d'adapter ton code en utilisant "wDoc.Application.Selection.Paste" pour la copie et en gardant la forme de mail que je souhaite ?

Merci :)
TestMail2.xlsm
(25.82 Kio) Téléchargé 47 fois
v
vlko
Jeune membre
Jeune membre
Messages : 48
Inscrit le : 31 juillet 2017
Version d'Excel : 2010 FR

Message par vlko » 2 octobre 2017, 10:15

Hello,

J'ai finalement réglé mon problème, j'arrive à obtenir la bonne taille pour mes tableaux qui sont bien séparés par les textes et avec la signature auto qui se trouve à la fin du mail :)
En cherchant de mon côté j'ai trouvé une autre solution et j'ai utilisé l'objet suivant dans mon code :
Set objSel = wDoc.Windows(1).Selection


En tout cas, je te remercie beaucoup pour ton aide ! :)
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message