Mettre en forme word à partir d'excel

FOZAORANA Messages postés 5 Date d'inscription dimanche 25 octobre 2009 Statut Membre Dernière intervention 16 mai 2010 - 16 mai 2010 à 04:04
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 16 mai 2010 à 11:22
Bonjour à tous,
C'est la première fois que je poste et j'espère que vous considéreriez mon problème:
Comment faire une mise en forme de texte sur word à partir d'excel?
En d'autres termes, j'envoie deux variables pris dans excel sur word et le premier je le fais en gras et le deuxième en italique et en trois colonnes car il sera un peu long.
Merci déjà de considérer ce cas et de le résoudre le plutôt.
a+++
PS : je suis sur win 7 avec off 07.

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
16 mai 2010 à 11:22
Bonjour,

Voici un code en partant du fait que le texte est dans 3 cellules: A1, B1 et C1, à vous de l'adapter suivant vos besoins:

'cochez la référence Microsoft Word 11.0 Object Library
 Sub text_word()
    
    Dim oWord As Word.Application
    'Créer une instance de word
   Set oWord = CreateObject("Word.Application")
    oWord.Documents.Open "Chemin fichier.doc"
    oWord.ShowMe
    'rendre le document word visible
    oWord.Visible = True
'code pour les différentes opérations
   oWord.Selection.TypeText Text:=[A1] & ", "
    oWord.Selection.Font.Bold = wdToggle
     oWord.Selection.Font.BoldBi = wdToggle
     oWord.Selection.TypeText Text:=[B1] & ", "
     oWord.Selection.Font.Italic = wdToggle
     oWord.Selection.Font.ItalicBi = wdToggle
    oWord.Selection.TypeText Text:=[C1]
    If oWord.ActiveWindow.View.SplitSpecial <> wdPaneNone Then
         oWord.ActiveWindow.Panes(2).Close
    End If
    If oWord.ActiveWindow.ActivePane.View.Type <> wdPrintView Then
         oWord.ActiveWindow.ActivePane.View.Type = wdPrintView
    End If
    With oWord.Selection.PageSetup.TextColumns
        .SetCount NumColumns:=3
        .EvenlySpaced = True
        .LineBetween = False
        .Width = CentimetersToPoints(4.5)
        .Spacing = CentimetersToPoints(1.25)
        .FlowDirection = wdFlowLtr
    End With
End Sub


Mode d'emploi pour arriver à cela:
Vous allez dans Word , vous enregistrez une macro des opérations a effectuées et ensuite vous copier/coller dans Excel à partir de:
'code pour les différentes opérations en mettant devant chaques lignes:
oWord.

N'oubliez pas de cocher la référence dans Excel
@+
0
Rejoignez-nous