Piloter Word

S

sylsyl

Guest
Bonyour tout le monde,

Ahhh, dernier jour de boulot et apres je rentre en France definitivement !!

Juste pour le fun, j'essai de piloter Word avec Excel.

J'ai cherche dans l'aide VBA Excel mais celle-ci me renvoie sur l'aide VBA Word. Aucune aide ne parle de "lien".

Pour l'instant j'aimerai juste inserer un tableau Xl, qq lignes vierges puis un autre tableau.

Pour l'instant j'ai trouve ca:

Sub Insere_tableau()

Dim Wrd As Object
Set Wrd = CreateObject("Word.Application")
Dim AppWrd As Object
Set AppWrd = Wrd.Documents.Add
Wrd.Visible = True

Sheets(1).UsedRange.Copy
Wrd.Selection.InlineShapes.AddOLEObject("Excel.Sheet.8") _
.OLEFormat.Object.Sheets(1).Paste
End sub

Mais j'aimerai pouvoir dimensionner ce tableau

J'ai aussi essayer
appwrd.documents.insertafter (vbcrlf)
pour inserer des lignes vierges mais ca marche pas...

Quelqu'un pourrait-il me donner un lien (autre que xlbysteph ou le disciplinus), une rapide explication ou qq chose qui pourrait m'aider au moins pour ces 2 pbs.

Merci beaucoup.

A++, Sylsyl.
 
M

michel

Guest
bonsoir sylsyl

je n'ai pas l'info pour dimensionner les tableaux , par contre pour ajouter des lignes vides tu peux utiliser
Wrd.Selection.TypeParagraph
j'ai utilisé ta procedure comme exemple : la feuille 1 du classeur Excel est copiée vers word , insertion de 5 lignes vides , puis copie de la feuille 2

j'espere que lela pourra t'aider

Sub Insere_tableau()
Dim Wrd As Object
Set Wrd = CreateObject("Word.Application")
Dim AppWrd As Object
Dim i As Byte
On Error Resume Next

Set AppWrd = Wrd.Documents.Add
Wrd.Visible = True

Application.ScreenUpdating = False
Sheets(1).UsedRange.Copy
Wrd.Selection.InlineShapes.AddOLEObject("Excel.Sheet.8").OLEFormat.Object.Sheets(1).Paste

For i = 1 To 5 ' insertion lignes vides avant de copier le 2eme tableau
Wrd.Selection.TypeParagraph
Next i

Sheets(2).UsedRange.Copy
Wrd.Selection.InlineShapes.AddOLEObject("Excel.Sheet.8").OLEFormat.Object.Sheets(1).Paste

Application.ScreenUpdating = True
Application.CutCopyMode = False

End Sub

je te souhaites une bonne soirée , de bonnes fetes et bon retour en france
michel
lapin4.gif
 
M

michel

Guest
rebonsoir

oouuppss...excuse moi j'ai été un peu vite
une autre version simplifiée pour le collage desdonnées dans Word

Sub Insere_tableauV02()
Dim Wrd As Object
Set Wrd = CreateObject("Word.Application")
Dim AppWrd As Object
Dim i As Byte
On Error Resume Next

Set AppWrd = Wrd.Documents.Add
Wrd.Visible = True

Application.ScreenUpdating = False
Sheets("feuil1").UsedRange.Copy
Wrd.Selection.Paste

For i = 1 To 5
Wrd.Selection.TypeParagraph
Next i

Sheets("feuil2").UsedRange.Copy
Wrd.Selection.Paste

Application.ScreenUpdating = True
Application.CutCopyMode = False

End Sub


bonne soirée
michel
lapin4.gif
 
M

michel

Guest
rebonsoir sylsyl

après quelques essais j'ai trouvé cette méthode pour redimensionner un tableau dans word
With Wrd.Selection
.Tables(1).Columns(j).Width = 30
End With

j'espere que cela pourra t'aider


Sub Insere_tableauV03()
Dim Wrd As Object
Set Wrd = CreateObject("Word.Application")
Dim AppWrd As Object
Dim i As Byte, j As Byte
On Error Resume Next

Set AppWrd = Wrd.Documents.Add
Wrd.Visible = True

Application.ScreenUpdating = False
Sheets("feuil1").UsedRange.Copy
Wrd.Selection.Paste

For j = 1 To 6 ' redimensionner le 1er tableau copié dans word
With Wrd.Selection
.Tables(1).Columns(j).Width = 30
End With
Next j

For i = 1 To 5 ' inserer 5 lignes vides
Wrd.Selection.TypeParagraph
Next i

Sheets("feuil2").UsedRange.Copy ' copier le tableau de la 2eme feuille
Wrd.Selection.Paste

Application.ScreenUpdating = True
Application.CutCopyMode = False

End Sub


bonne soirée
michel
lapin4.gif
 

Statistiques des forums

Discussions
312 196
Messages
2 086 088
Membres
103 116
dernier inscrit
kutobi87