OVH Cloud OVH Cloud

Insertion tableau Excel par Macro

3 réponses
Avatar
circaete
Je cherche à insérer un tableau Excel, sous forme de tableau Word.

Ma macro insère le tableau Excel, sous forme OLE:

Selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", FileName:= _
"C:\Program files\DTA\tableau1.xls", LinkToFile:=False,
DisplayAsIcon:=False

Cela fonctionne bien, mais lorsque mon tableau dépasse une page il n'est
plus affiché en totalité.

La solution consiste à transformer le tableau OLE Excel en tableau Word.

Manuellement cela fonctionne, mais je voudrais le faire dans une macro.

Quelqu'un peut-t-il m'indiquer le code pour que mon tableau Excel s'insère
directement sous forme de taleau Word, ou comment transformer un OLE Excel en
tableau Word

Merci

-

3 réponses

Avatar
Anacoluthe
Bonjour !

'circaete' nous a écrit ...
Je cherche à insérer un tableau Excel, sous forme de tableau Word.
Ma macro insère le tableau Excel, sous forme OLE:
Selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", FileName:= _
"C:Program filesDTAtableau1.xls", LinkToFile:úlse,
DisplayAsIcon:úlse
Cela fonctionne bien, mais lorsque mon tableau dépasse une page il n'est
plus affiché en totalité.
La solution consiste à transformer le tableau OLE Excel en tableau Word.
Manuellement cela fonctionne, mais je voudrais le faire dans une macro.


Placez un champ Lien de tableau excel formaté texte :

'-----------
MonTableau = """C:Program filesDTAtableau1.xls"" _
""Feuil1!L1C1:L50C6"""
Commutateurs = " f 4 r"

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldLink, _
Text:=" Excel.Sheet.8 " & MonTableau & Commutateurs, _
PreserveFormatting:=True
'-----------

notez la redondance des "" et pour " et dans le texte du champ!

Anacoluthe
« Des liens subtils faits de fluides et d'étincelles
Composaient le tissu d'une âme universelle »
- Émile VERHAEREN

Avatar
circaete
Merci Anacoluthe, mais cela ne résoud pas mon problème que je n'avais peut
être pas suffisamment expliqué.

Je travaille depuis une base Access qui me sert à créer des rapports, un
pour chaque affaire.
A partir d'Access, je crée un document Word avec signets dans lequel
j'insère mes données Access et cela fonctionne bien.

Le problème est que je dois aussi insérer un tableau avec de nombreuses
colonnes et une mise en page précise

Peut être que je pourrais insérer directement depuis Access des lignes dans
un tableau word correctement formaté, mais je ne connais pas la procédure.

Aussi j'ai créé un fichier Excel que je met à jour depuis Access.
Ce tableau change à chaque affaire et son nombre de lignes varie.

Ensuite, je lance depuis Access une macro Word qui insère mon tableau Excel
sous forme d'OLE sans liaison

Tout cela fonctionne, quel que soit le nombre de lignes, mon seul problème
est que lorsque le tableau est trop long pour rentrer dans une page, il ne
s'affiche pas en totalité.

La solution que vous me proposez suppose un nombre de lignes fixe et
maintient la liaison avec le fichier Excel qui doit être rompue.




Bonjour !

'circaete' nous a écrit ...
Je cherche à insérer un tableau Excel, sous forme de tableau Word.
Ma macro insère le tableau Excel, sous forme OLE:
Selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", FileName:= _
"C:Program filesDTAtableau1.xls", LinkToFile:úlse,
DisplayAsIcon:úlse
Cela fonctionne bien, mais lorsque mon tableau dépasse une page il n'est
plus affiché en totalité.
La solution consiste à transformer le tableau OLE Excel en tableau Word.
Manuellement cela fonctionne, mais je voudrais le faire dans une macro.


Placez un champ Lien de tableau excel formaté texte :

'-----------
MonTableau = """C:Program filesDTAtableau1.xls"" _
""Feuil1!L1C1:L50C6"""
Commutateurs = " f 4 r"

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldLink, _
Text:=" Excel.Sheet.8 " & MonTableau & Commutateurs, _
PreserveFormatting:=True
'-----------

notez la redondance des "" et pour " et dans le texte du champ!

Anacoluthe
« Des liens subtils faits de fluides et d'étincelles
Composaient le tissu d'une âme universelle »
- Émile VERHAEREN




Avatar
Anacoluthe
Bonjour et joyeux Noël !

'circaete' nous a écrit ...
Peut être que je pourrais insérer directement depuis Access des lignes dans
un tableau word correctement formaté, mais je ne connais pas la procédure.


Barre d'outils 'Base de données' : Insérer une base de données

Aussi j'ai créé un fichier Excel que je met à jour depuis Access.
Ce tableau change à chaque affaire et son nombre de lignes varie.
Ensuite, je lance depuis Access une macro Word qui insère mon tableau Excel
sous forme d'OLE sans liaison
Tout cela fonctionne, quel que soit le nombre de lignes, mon seul problème
est que lorsque le tableau est trop long pour rentrer dans une page, il ne
s'affiche pas en totalité.


Word n'accepte pas d'objets OLE de plus d'une page. Les données
doivent être formatées en texte ou tableau Word.

La solution que vous me proposez suppose un nombre de lignes fixe et
maintient la liaison avec le fichier Excel qui doit être rompue.


Rien n'interdit le code que j'ai donné en exemple d'être variable !
Utilisez une plage nommée de XL par exemple.
Ceci dit il me semble que vous vous compliquez passablement la vie
dans la mesure où un simple copier-coller suffirait sans doute...

Anacoluthe
« Le plus compliqué c’est de faire simple. »
- Léonard de VINCI