Envoi tableau Excel dans Words à un endroit spécifique

GuillaumA

XLDnaute Occasionnel
Bonjour à tous,
Petit soucis avec un transfert de tableau... En effet je possède la macro VBA pour envoyer un tableau directement sur Word et cela marche très bien.

Cependant je voudrais que le tableau se place dans une zone spécifique de ma feuille Word et tout cela sachant que la feuille doit être en mode "landscape".

Si certains d'entre vous ont déja rencontrés le problème et savent comment le résoudre je suis ouvert à toutes vos idées!

Merci de votre considération.

Cordialement,
Guillaume A.

Macro actuel:

Sub ToWords()

Dim docWord As Object

Dim appWord As Object
Set appWord = CreateObject("Word.Application")
appWord.Visible = True
Set docWord = appWord.Documents.Add
Range("A1:C76").Copy
appWord.Selection.Paste
docWord.Tables(1).autoFitBehavior 2
Application.CutCopyMode = False

End Sub
 

youky(BJ)

XLDnaute Barbatruc
Re : Envoi tableau Excel dans Words à un endroit spécifique

Bonjour GuillaumA,
Peut être. . .
Sur le doc word insèrer un signet à l'endroit ou doit être copié le tableau.
ici un exemple tiré d'un fichier qui utilise ce principe avec pour nom signet=livraison et Intro l'userform
remplace ThisDocument.TextBox6.Text & Chr$(13) & Chr$(10) par ton range(...
Bruno
Code:
ActiveDocument.Bookmarks("livraison").Select
Selection.MoveEnd unit:=wdParagraph, Count:=1
saisie = Len(Selection)
If Intro.livraison = False Then
If saisie > 2 Then
ActiveDocument.Bookmarks("livraison").Select
Selection.MoveEnd unit:=wdCharacter, Count:=saisie
Selection.MoveStart unit:=wdCharacter, Count:=0
Selection.Delete
End If
Else
If saisie < 2 Then
Selection.TypeText Text:=ThisDocument.TextBox6.Text & Chr$(13) & Chr$(10)
End If
End If
 

GuillaumA

XLDnaute Occasionnel
Re : Envoi tableau Excel dans Words à un endroit spécifique

Bonjour,
Je voudrais bien tester la macro mais je ne comprend pas comment l'appliquer dans mon cas ...
Quelqu'un pourrait-il me dire comment la modifier sachant que:

- Signet : TABLEAU
- Range: Range("A1:C76")
- Et je ne comprend pas ce qui est Intro.livraison .

Voici le code que j'ai réalisé:
Sub ToWords()
Dim docWord As Object
Dim appWord As Object
Set appWord = CreateObject("Word.Application")
appWord.Visible = True
Set docWord = appWord.Documents.Add
Range("A1:C76").Copy
appWord.Selection.Paste
docWord.Tables(1).autoFitBehavior 2
Application.CutCopyMode = False

ActiveDocument.Bookmarks("TABLEAU").Select
Selection.MoveEnd unit:=wdParagraph, Count:=1
saisie = Len(Selection)
If Intro.TABLEAU = False Then
If saisie > 2 Then
ActiveDocument.Bookmarks("TABLEAU").Select
Selection.MoveEnd unit:=wdCharacter, Count:=saisie
Selection.MoveStart unit:=wdCharacter, Count:=0
Selection.Delete
End If
Else
If saisie < 2 Then
Selection.TypeText Text:=Range("A1:C76")
End If
End If

Suis-je totalement dans le faux ?


Cordialement,
Guillaume A.
 

youky(BJ)

XLDnaute Barbatruc
Re : Envoi tableau Excel dans Words à un endroit spécifique

re,
Je suis en congé avec une clé 3G limitée alors je fait vite.
Spprime ce qui est en rouge.
Je ne peux tester
Bruno
Code:
Sub ToWords()
Dim docWord As Object
Dim appWord As Object
Set appWord = CreateObject("Word.Application")
appWord.Visible = True
Set docWord = appWord.Documents.Add
Range("A1:C76").Copy
appWord.Selection.Paste
docWord.Tables(1).autoFitBehavior 2
Application.CutCopyMode = False

ActiveDocument.Bookmarks("TABLEAU").Select
Selection.MoveEnd unit:=wdParagraph, Count:=1
saisie = Len(Selection)
[COLOR="Red"]If Intro.TABLEAU = False Then[/COLOR]
If saisie > 2 Then
ActiveDocument.Bookmarks("TABLEAU").Select
Selection.MoveEnd unit:=wdCharacter, Count:=saisie
Selection.MoveStart unit:=wdCharacter, Count:=0
Selection.Delete
End If
Else
If saisie < 2 Then
Selection.TypeText Text:=Range("A1:C76")
End If
[COLOR="red"]End If[/COLOR]
 

GuillaumA

XLDnaute Occasionnel
Re : Envoi tableau Excel dans Words à un endroit spécifique

Pour youky:

Une erreur apparaît:

Erreur de compilation:
Else sans If

Point surligné:
End If
Else
If saisie < 2 Then
Selection.TypeText Text:=Range("A1:C76")
End If

Vois tu une erreur?

Pour kjin:
En effet j'ai déjà créé ma feuille word. Je me suis mal exprimé et je suis désolé pour la confusion engendrée.
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Envoi tableau Excel dans Words à un endroit spécifique

Re,
Sans doute vas tu finir par nous expliquer que le tableau existes déjà aussi ! :rolleyes:
2 solutions avec un document "modèle.doc situé dans le répertoire courant, contenant un signet nommé "Tableau" que tu auras pris soin de positionner ou bon te semble et dans lequel on rajoute un tableau

Copier/Coller
Code:
Sub ToWords()
Dim appWord As Word.Application
Dim docWord As Word.Document
Set tablo = Range("A1:C76")
Set appWord = CreateObject("Word.Application")
appWord.Visible = False
Set docWord = appWord.Documents.Open(ActiveWorkbook.Path & "\Modele.doc") 'tu adapteras !
    With docWord
        tablo.Copy
        .Bookmarks("Tableau").Range.Paste
        .Tables(1).AutoFitBehavior 2
        Application.CutCopyMode = False
        .SaveAs ActiveWorkbook.Path & "\Essai1.doc"
        .Close
    End With
appWord.Quit
End Sub
Export des données une à une
Code:
Sub ToWords()
Dim appWord As Word.Application
Dim docWord As Word.Document
tablo = Range("A1:C76").Value
Set appWord = CreateObject("Word.Application")
appWord.Visible = False
Set docWord = appWord.Documents.Open(ActiveWorkbook.Path & "\Modele.doc")
    With docWord
        .Tables.Add .Bookmarks("Tableau").Range, UBound(tablo, 1), UBound(tablo, 2)
        For i = 1 To UBound(tablo, 1)
            For j = 1 To UBound(tablo, 2)
                .Tables(1).Cell(i, j).Range.Text = tablo(i, j)
            Next
        Next
        .Tables(1).AutoFitBehavior 2
        .SaveAs ActiveWorkbook.Path & "\Essai2.doc"
        .Close
    End With
appWord.Quit
End Sub
A+
kjin
 

GuillaumA

XLDnaute Occasionnel
Re : Envoi tableau Excel dans Words à un endroit spécifique

Alors, la première formule marche parfaitement. Juste... je l'ai modifié un peu pour ne pas avoir de problème de bibliothèque....

Sub ToWords()
Dim docWord As Object
Dim appWord As Object
Set tablo = Range("A1:C76")
Set appWord = CreateObject("Word.Application")
appWord.Visible = False
Set docWord = appWord.Documents.Open(ActiveWorkbook.Path & "\FDS.doc") 'tu adapteras !
With docWord
tablo.Copy
.Bookmarks("TABLEAU").Range.Paste
.Tables(1).AutoFitBehavior 2
Application.CutCopyMode = False
.SaveAs ActiveWorkbook.Path & "\FDS-1.doc"
.Close
End With
appWord.Quit
End Sub

La deuxième méthode est bien mais m'affiche le tableau entier même les parties masquées. Une solution ?

De plus ma charte graphique doit être suivie. Et si je créai un tableau Word dans lequel on rentrerai des données de mon excel...

Merci pour votre patience.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 040
Messages
2 104 930
Membres
109 207
dernier inscrit
Fayssane