Probleme de passage de Word a Excel

xaeris Messages postés 109 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 22 mai 2009 - 5 août 2008 à 17:12
xaeris Messages postés 109 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 22 mai 2009 - 7 août 2008 à 11:09
Bonjour tout le monde !

J'ai un soucis avec une macro vba que je suis en train d'écrire et qui doit permettre de tranférer tous les onglets d'un fichier Excel sous Word.

Voici ma macro :

Sub ExcelToWord(chemin_fichier_word As String, chemin_fichier_excel As String)

Dim DocWord As Word.Document
Dim AppWord As Word.Application
Dim MyWorkSheet As Worksheet
Set AppWord = New Word.Application

Application.DisplayAlerts = True
AppWord.ShowMe
AppWord.Visible = True

'ouvre le document word
Set DocWord = AppWord.Documents.Open(chemin_fichier_word, readonly:=False)

'copie les données excel et les colle dans word
activer_workbook (chemin_fichier_excel)
For Each MyWorkSheet In ActiveWorkbook.Worksheets

MyWorkSheet.Activate
ActiveSheet.UsedRange.Copy
DocWord.Range.PasteExcelTable False, False, False
DocWord.Select
Selection.InsertBreak Type:=wdPageBreak
Application.CutCopyMode = False

Next

DocWord.Application.ActiveDocument.Save
AppWord.Application.Quit

End Sub

Le problème que je rencontre c'est qu'au lieu de créer une nouvele feuille word pour chaque onglet, il se contente d'écrire par dessus, toujours sur la meme page.
Ce que j'extrait du word semble etre une image.Et ces images se collent les unes au dessus des autres.
Je ne m'y connais pas vraiment en VBA -Word ( plus en Excel) donc si quelqu'un pouvait me montrer comment éviter cette erreur...

En attendant je vais continuer a chercher!

Merci d'avance.
-xaeris-

2 réponses

alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 1
6 août 2008 à 18:58
Bonjour,
le probleme est ici
'ouvre le document word

Set DocWord = AppWord.Documents.Open(chemin_fichier_word, readonly:=False)

tu n'ouvre qu'un document word au lieu de l'ouvrir dans ta boucle

For Each MyWorkSheet In ActiveWorkbook.Worksheets

Set DocWord = AppWord.Documents.Open(chemin_fichier_word, readonly:=False)

bien sur il faut mettre un nom different de chemin_fichier_word pour chaque retour de boucle et fermer ton word avant le next sinon cela va mal se passer.
Voilà la piste à suivre.
Bon courage
0
xaeris Messages postés 109 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 22 mai 2009
7 août 2008 à 11:09
bonjour! merci de ta réponse! mais elle ne répond pas tout a fait a ce que je recherche.
En fait j'aimerais que chaque onglet excel que je vais importer s'importe dans le meme fichier word, mais avec un saut de page afin que chaque onglet soit disposé sur une seule page.

J'ai utilisé la piste que tu m'a donnée, mais cela me fait la meme chose, a savoir que ca colle tout dans la premier page, les uns au dessus des autres...

En fait je ne comprend pas pourquoi je dois changer le nom de chemin_fichier_word...

Ma procédure récupère le nom du Word dans lequel je veux importer le excel, ce nom ne change donc pas pour chaque passage de boucle...

je pense qu'il me manque la ligne de code qui me dit, aprés avoir coller le premier élément, tu sélection la premiere ligne vide au dessous, et tu fais un saut de page.

je vais la chercher!
0
Rejoignez-nous