[Résolu / herve62] Copier tableau excel vers Word

subirubi

XLDnaute Occasionnel
Bonjour,

Je suis néophyte en macros VBA depuis seulement quelques semaines. Or, voici ma problématique.
J'ai un tableau dans une feuille de tableur Excel 2003, lequel je voudrais exporter avec les données, vers un document Word existant. Le document Word en question contient environ 7 pages de texte . À le première page il contient un tableau vide de forme identique au tableau Excel.

Mon souhait c'est que la macro exporte le tableau Excel avec les données à la première page de mon document Word - autrement dit qu'il remplace le tableau déjà présent - tout en conservant le reste des 6 pages de texte. Mais ce n'est pas ce qui se passe.

Dans ma macro ci-après le code (w
wddoc.Range.Pasteddoc.Activate) insère le tableau Excel efface le reste réduisant ainsi le document à un page.

Alors que le code (wddoc.Range.Paste Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False) ne fait qu'ouvrir le document Word et s'arrête là.


Merci


VB:
Option Explicit

Sub AP_Prise_Besoins_N_1()

Worksheets("FPS PriseBesoins").Range("D4:E23").Copy      'Copie la partie du tableau à exporter vers Word 

Dim wdapp As Object, wddoc As Object             ' Déclare les variables objets variables pour l'application Word et le fichier ou le document
Dim FichierWord As String                                ' Déclare une variable chaîne de texte pour le nom du chemin et du fichier
'Dim Doc As Word.document                             ' Déclare une variable chaîne de texte pour le nom du chemin et du fichier
On Error Resume Next                                      ' Gestion des erreurs très important pour arrimer Excel avec Word

Set wdapp = GetObject(, "Word.Application")     

Autofit Table so it fits inside Word Document
   Set WordTable = FichierWord.Tables(1)
    'WordTable.AutoFitBehavior (wdAutoFitWindow)

Application.CutCopyMode = False 'Désactive la sélection du tableau dans la feuille FP Prise Besoins
GetObject     'deux paramètres dont le premier est facultatif
If Err.Number = 429 Then
    Err.Clear
Set wdapp = CreateObject("Word.Application")    'Nouvelle instance de MS Word
End If

    wdapp.Visible = True                                     'Le document Word sera visible
FichierWord = "D:\Prise_Besoin_PRO1_2017.doc"

If Dir(FichierWord) = "" Then
    MsgBox “The file ” & strdocname & vbCrLf & “was not found ” & vbCrLf & “C:\our-inventory\.”, vbExclamation, “The document does not exist.”
    MsgBox "Le fichier " & FichierWord & vbCrLf & "n'a pas été trouvé" & vbCrLf & ", vbExclamation, Ce fichier n'existe pas"
    'message si fichier non trouvé à l'emplacement spécifié

End If
Exit Sub

wdapp.Activate                                            'activer une nouvelle instance de Word
Set wddoc = wdapp.Documents(FichierWord)
If wddoc Is Nothing Then Set wddoc = wdapp.Documents.Open(FichierWord) 'Ouvrir fichier MS Word si pas encore ouvert

wddoc.Activate
[COLOR=#0000ff]wddoc.Range.Paste[/COLOR]

[COLOR=#0000ff]'wddoc.Range.Paste Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False[/COLOR]

End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Je suis néophyte en macros VBA depuis seulement quelques semaines.
Depuis le 16 septembre 2010 (date de ton inscription), ton éditeur VBE (accessible dans Excel par ALT+F11) a vu passer au moins 364 semaines ;)
Tu ne peux donc point être néophyte. ;)

Pour ta question: tu as consulté les archives du forum?
 
Dernière édition:

herve62

XLDnaute Barbatruc
Bonsoir
Ayant déjà été confronté à une manip VBA excel /Word , j'ai examiné ton Pb
J'ai dû rechercher un peu sur le web ( ce que tu aurai pu faire aussi )
le VBA est assez complexe , j'ai fait une mixture de 2 macros
le fichier proposé n'est pas de moi , seulement trituré , je l'ai testé en insérant le tableau dans une de
mes lettres WOrd : le tableau se met ou j'ai défini l'endroit (signet) pour cela il faut s'assurer de :
- déclarer un SIGNET dans ton .doc ( exemple dans ma lettre il s'appelle PlaceIci , je le rappelle depuis VBA)
-Avoir coché dans Vba > outils réferences : le word object library
Je joins un fichier bidon word : tu le mets dans le répertoire , dans Excel indique son chemin et tu lances la macro
 

Fichiers joints

Discussions similaires


Haut Bas