Excel - Importer tableaux à partir de Word!

Résolu/Fermé
Anth0ny - 1 juin 2010 à 19:15
 Anth0ny - 1 juin 2010 à 20:23
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.



A voir également:

1 réponse

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 1/06/2010 à 19:27
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
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