Excel ====> Word ???

J

JPM

Guest
Excel ====> Word ???

Bonjour à tous et bien sur bonne année
Mon souci du jour est de completer un fichier word avec des données Excel. Le fichier Word est déjà créé. Arriver aux **** ça bug avec comme message "Propriété ou méthode non gérée par cet objet" Si quelqu'un avait une solution(et je pense qu'il y en a une) je suis preneur car je pédale depuis ce matin.


Dim Wrd As Object
Dim AppWord As Object
Set Wrd = CreateObject("Word.Application")
Wrd.Visible = True
Set AppWord = Wrd.Documents.Open("I:\Annexes\A21-DOSSIER.doc")
****With AppWord.Selection
.HomeKey Unit:=wdStory
.MoveDown Unit:=wdLine, Count:=3
.TypeText Text:=DTE
.MoveRight Unit:=wdCell
.MoveRight Unit:=wdCell
.MoveRight Unit:=wdCell
.TypeText Text:=Code
.MoveDown Unit:=wdLine, Count:=2
.MoveLeft Unit:=wdCell
.MoveLeft Unit:=wdCell
.MoveDown Unit:=wdLine, Count:=1
.TypeText Text:=Ville
.MoveDown Unit:=wdLine, Count:=1
.TypeText Text:=Ets
.MoveDown Unit:=wdLine, Count:=1
End With
AppWord.Save
AppWord.Quit

Merci d'avance

A+ JPM
 
A

Arsene

Guest
Re: Excel ====> Word ???

Je suis loin d'être un maitre en la matière, et plutôt un poseur de questions sur ce forum, mais je propose un truc( on sait jamais ça peut t'aider ).

Objet.Selection marche sans doute pas, car il me semble que ça devrait plutôt être un truc du genre Objet.Select et pas selection.

Selection, tu l'utilises apres avoir sélectionné avec Objet.select.
Par exemple
Range("A1B2").Select,
et apres tu fais un truc du genre
With Selection.fontcolor= red
Selection.X=Y

Donc je dirais que ton probleme vient du fait que tu mets un "Selection" au lieu d'un "Select".
M'enfin moi ce que j'en dis hein... suis qu'un newbie hein!

J'espere que ça t'aide, et si ça n'est pas le cas, j'en suis désolé... faut m'excuser suis pas un pro hein...
 
C

chris

Guest
Re: Excel ====> Word ???

Bonjour
Tu ne fais pas de sélection dans le document.
Les lignes de commandes destinées à Word doivent inclure le préfixe Wrd :
Ça doit donner quleque chose comme
With Wrd.la suite
...
Wrd.AppWord.Save : ce n'est probablement pas la bonne commande


Le + simple est dans Wors d'utiliser l'enregistreur macro puis de copier le code obtenu dans ton vb Excel entre Wrd.Visible = True et Wrd.Quit puis
de préfixer ces lignes.
Chris
 
M

michel

Guest
Re: Excel ====> Word ???

Bonsoir JPM , Arsene et Chris

je ne suis pas trop sur de mon coup ( nottament pour l'utilisation de MoveRight et MoveLeft ) , mais tu peux tester la procedure modifiée ci dessous

Dim Wrd As Object
Dim AppWord As Object
Set Wrd = CreateObject("Word.Application")
Wrd.Visible = True
Set AppWord = Wrd.Documents.Open("I:\Annexes\A21-DOSSIER.doc")

With Wrd.Selection
.MoveDown Count:=3
.TypeText Text:=DTE
.MoveRight Count:=3
.TypeText Text:=Code
.MoveDown Count:=2
.MoveLeft Count:=2
.MoveDown Count:=1
.TypeText Text:=Ville
.MoveDown Count:=1
.TypeText Text:=Ets
.MoveDown Count:=1
End With

AppWord.Save
AppWord.Quit

bonne soirée
michel
lapin4.gif
 
M

Michel_M

Guest
Re: Excel ====> Word ???

Bonsoir Michel, chris, arsene, jpm

Ci dessous procédure-brouillon d'étude de pilotage de Word depuis une macro Excel


Sub piloter_Word()
' avec excel 2000
'Nécessite d'activer Microsoft Word 9.0 object library
'et Microsoft Visual Basic For Applications Extensibility 5.3"."

Dim Cible As Object
Dim chemin, fichier As String
Dim insert1, insert2

'données excel à transfèrer
' voir + bas typetext
insert1 = Range("A1").Text
insert2 = Range("A3")


' a mettre avant le passage en Word (workbook n'existe pas en Word)
' variable "chemin" pour portabilité (chg lecteur ou dossier)
chemin = ActiveWorkbook.Path
fichier = "xlw.doc"

CE QUI EST DIFFERENT DE JPM APARTIR DE LA
' lancement de Word
' gestion de l'erreur "activeX" d'après archives MPFE Laurent Longre
On Error Resume Next
Set Cible = CreateObject(class:="Word.Application")
On Error GoTo 0
If Cible Is Nothing Then
Set Cible = New Word.Application
End If

'On est maintenant dans Word
With Cible
.Documents.Open Filename:=chemin & "\" & fichier
' si la ligne ci-dessous est activée, on voit le boulot en cours (ralentissement)
.Visible = True

JUSQU' A LA LIGNE CI DESSUS


' Syntaxe Word "macro-souris" à partir de cette ligne
' typetext à éviter: ne prend que du texte => la variable doit être forcée en texte
'selection: emplacement du curseur
.Selection.TypeText (insert1)



' formfields à privilégier: accepte du texte ou des nombres
' on peut(?) mettre selection au lieu de activedocument devant formfields
.ActiveDocument.FormFields("texte1").Result = (insert2)



.ActiveDocument.Save
.ActiveDocument.Close

' Quit est considéré comme script dangereux par MacAfee; option choisie: toujours accepter
.Quit


End With

Set Cible = Nothing


ActiveWorkbook.Application.Visible = True

End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 389
Messages
2 087 933
Membres
103 678
dernier inscrit
bibitm