3xceln4ute
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 (wwddoc.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
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 (wwddoc.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