Excel vers word - garder les styles d'écriture

Bonsoir à vous tous et toutes bien entendu,

C'est après quelques recherches peu fructueuses sur notre ami google que je me tourne vers vous, ô grands maitres d'excel (faut bien flatter un peu l'ego non?).

Pour rentrer dans le vif du sujet, voici un petit topo:

J'essaie tant bien que mal d'exporter des données d'excel vers word (2016 pour les 2), en passant par des tableaux (mais pas très beau) ou par des signets (pourquoi pas) voire même par des contrôles (pas très gratifiant).

Pour le coup, après plusieurs essais, j'ai l'impression qu'il est préférable de passer par des signets. Peut-être que votre avis diffère et n'hésitez pas à m'expliquer pourquoi. Ceci dit, mon test avec un seul signet semble fonctionner.

Mais voici le hic : le format du texte n'est pas conservé! (exemple: sur excel "Vous ne passerez pas!" devient sur word "Vous ne passerez pas!" et comprenez que tout perd son charme).

Alors petites questions:

1) est-il possible de conserver le format du texte lors de l'exportation?

2) les signets c'est bien mais faudrait-il passer par autre chose?

3) préférez-vous des références sur un autre film?

Si ça peut vous être utile, voici le code loin d'être finalisé utilisé (si on veut):.

Sub export()

sPath = ThisWorkbook.Path & "\"

Set WordApp = CreateObject("word.application")
WordApp.Visible = True 'mettre False pour garder Word masqué
Set WordDoc = WordApp.Documents.Open(sPath & "monDocument.docx")

WordDoc.Bookmarks("copieexcel").Range.Text = Range("E1")

WordApp.Visible = True 'affiche le document Word
'wordDoc.PrintOut 'imprimer

'wordDoc.Close True 'ferme le document word en sauvegardant les données
'WordApp.Quit 'ferme la session Word

End Sub

Pour terminer, il n'y a pour le moment pas de fichier créé, je teste d'abord les codes pour ensuite les adapter avec le fichier final. En fait il s'agit d'abord de savoir ce qu'il est possible de faire.

Un très grand merci pour tout ce que vous pourrez faire ou ne serait-ce que pour votre lecture.

PS : effectivement certains sujets sur le forum traitent un peu ma requête mais pas en ce qui concerne le format. Sauf erreur.

Bonjour,

Ici, inutile de passer de la pommade ...

Maintenant, je suggère la lecture du code proposé ici =>

https://forum.excel-pratique.com/excel/vba-excel-vers-word-signet-et-format-157758#p976582

Et particulièrement la procédure Sub Vers_signet(Sgnt As String, Source As Range)

Pierre

Bonjour Pierre,

Merci pour ton code qui fonctionne presque parfaitement. Grâce à toi, le format est bien copié vers word.

Mais il reste un petit soucis : si la cellule contient du texte mis sous plusieurs formats (en gros, dans une même cellule, sur ce texte une partie serait "normale" et une autre soit en gras, soit en italique voire les deux) alors la copie ne reprend pas cette accumulation de formats. En tout cas pas sur tes fichiers démo (derniers fichiers du post et pourtant tu semblais avoir résolu le problème).

Le fait que dans une cellule le texte ait plusieurs formats est une des contraintes du fichier que je tente de mettre en place.

Après il n'y a peut-être pas de solutions et il va sûrement falloir contourner ces problèmes d'une autre manière moins acceptable.

En tout cas je garde ton code si tu l'acceptes et m'y penche pour mieux le comprendre.

Re,

Des solutions il y en a, en l’occurrence il suffit de décomposer le contenu de la cellule.

Voir fichier démo

Pierre

Function T_Multi(Source As Range) As Variant
Dim T As Variant, i As Integer

    ReDim T(1 To Len(Source.Value), 1 To 7)
    For i = 1 To Len(Source.Value)
        T(i, 1) = Mid(Source.Value, i, 1)
        With Source.Characters(Start:=i, Length:=1)
            T(i, 2) = .Font.Name
            T(i, 3) = .Font.Size
            T(i, 4) = .Font.Bold
            T(i, 5) = .Font.Italic
            T(i, 6) = .Font.Color
            T(i, 7) = .Font.Underline
        End With
    Next i
    T_Multi = T
End Function

Et bien ma foi, même si les flatteries n'apportent rien, je tiens à te remercier. Ton code fonctionne très bien.

Il me reste simplement à l'étudier pour le comprendre.

Merci encore

Bonjour,

Bon sang, je ne suis pas passé pour rien !

Merci Pierre

Rechercher des sujets similaires à "word garder styles ecriture"