Excel - Importer tableaux à partir de Word!

Résolu
Anth0ny -  
 Anth0ny -
Bonjour à tous,

J'ai comme qui dirait un petit problème. En fait, j'aimerais importer des tableaux Excel à partir de mon document Word via une macro. Je suis déjà apte à ouvrir mon fichier Excel et à sélectionner la feuille auquelle je dois faire référence. Mes signets, les emplacements dans mon document Word où je dois y placer les tableaux, sont aussi déjà créés. J'ai donc 2 problèmes.

Dans un premier temps, je suis incapable de re-sélectionner ma feuille Word après avoir pris ma plage de données dans Excel (c'est pourtant si simple sous VBA Excel...). Rappelons que je dois re-sélectionner mon document Word déjà ouvert puisqu'il est déjà pratiquement complet, et non en réouvrir un autre!

De plus, il m'affiche une erreur du type "Erreur d'exécution 4218" quand vient le temps de choisir ma plage de données dans ma feuille Excel. Il prend pourtant en considération le fait que je sélectionne ma feuille, mais pas les cellules dont j'ai besoin?

Si vous pouviez éclairer ma lanterne, ce serait grandement apprécié! Alors, voici donc mon code :

Sub Transfert_Tableau_Excel()
'Transfert des tableaux créés en Excel via des signets disposés à des emplacements précis

Dim App As Excel.Application
Dim Wb As Excel.Workbook

Set App = CreateObject("Excel.Application")
App.Visible = True
Set Wb = App.Workbooks.Open("C:\Documents and Settings\FichierWord.xls")
Sheets("Feuille5").Select
-->Range("A6:G51").Select (Affiche une erreur)
Selection.Copy
-->Il manque le 'comment' resélectionner mon doc Word
Selection.GoTo What:=wdGoToBookmark, Name:="Emplacement1"
With ActiveDocument.Bookmarks
.DefaultSorting = wdSortByLocation
.ShowHidden = False
End With
Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement _
:=wdInLine, DisplayAsIcon:=False

End Sub

Merci d'avance de votre aide!

Au plaisir,

Anth0ny.

1 réponse

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Attention, tu dois faire référence à ton classeur...

        Wb.Sheets("Feuille5").Select 

    Ou bien
        With Wb.Sheets("Feuille5")

    ou encore
    Dim Wsh As WorkSheets
        set Wsh =  Wb.Sheets("Feuille5")


    A+
    L'expérience instruit plus sûrement que le conseil. (André Gide)
    Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    0
    1. Anth0ny
       
      Ahh, c'est vrai que je pourrais faire cela. L'erreur d'exécution 4218 ne m'apparaît plus. Et j'ai réglé un autre problème :

      Wb.Sheets("Feuille5").Select
      Range("A6:G51").Copy

      Merci bien!

      Et pour réafficher ma page Word, il comprenait déjà que j'y étais, donc j'ai simplement mis mon signet et il se plaçait automatiquement!
      0