1 membre
Connectés : ( personne )
- La Charte du Forum - Forum
- Questions générale
Sujet n° 778 |
Ouvrir un document Word basé sur un modéle et y copier un texte |
le 06/12/2016 : 19:33 par possible924

visiteur |
Bonjour à tous, Je souhaiterais à partir d'un bouton ouvrir un document Word basé sur un modèle, atteindre un signet dans ce document et y coller une valeur. J'ai écrit cela, mais ça ne suffit pas ! Dim oApp As Object Set oApp = CreateObject("Word.Application") oApp.Visible = True With oApp .Documents.Open FileName:="Z:\Alliance\Modèles\LettreInvitation.dot" '.Goto Adresse '.Paste DestinataireCourrier & vbCrLf & AdresseCourrier End With Pouvez vous me dire ce qui ne va pas ? Merci par avance pour votre aide Pierre |
|
|
Réponse n° 1 -------- le 07/12/2016 : 01:46 par 3Stone

Administrateur
|
Bonjour,
Pour utiliser l'automation, ici de Word, il y a une méthode qui apporte une bonne aide.
Il faut ouvrir Word et créer une nouvelle macro.
Tu démarre l'enregistrement et tu effectue les actions que tu souhaites réaliser.
Le mieux est de ne pas faire trop de "pas" en une fois. Par exemple, rejoindre un signet.
On termine la macro et on va regarder le code...
Pour rejoindre un signet, on trouvera par exemple :
Code :
Selection.GoTo What:=wdGoToBookmark, Name:="MonSignet"
En découpant les actions, la recupération et adaptation du code sera simplifié.
Cordialement,
Pierre (3Stone)
|
|
 |
Réponse n° 2 -------- le 07/12/2016 : 08:19 par possible924

visiteur |
Bonjour, Merci pour le bon conseil que j'ai suivi. J'ai donc fait une macro dans Word et récupéré des éléments de code et ça marche assez bien :
Private Sub Courrier_Click() If DSum("Corresp_Destinataire", "T_Correspondants", "Corresp_Clé_Paroisse =" & Me.CléP_Paroisse) = 0 Then If MsgBox("Vous devez sélectionner un correspondant !", vbExclamation, CurrentDb.Properties("AppTitle") & " - " & Version) = 1 Then Exit Sub End If Dim DestinataireCourrier As Variant DestinataireCourrier = DLookup("Correspondant", "R_Correspondants_Destinataires", "Corresp_Clé_Paroisse =" & Me.CléP_Paroisse) Dim AdresseCourrier As String AdresseCourrier = Me.P_Nom_Adresse & vbCrLf & Me.P_Ad1 & IIf(IsNull(Me.P_Ad1) Or IsNull(Me.P_Ad2), "", vbCrLf) & Me.P_Ad2 & vbCrLf & Me.P_CP & " " & Me.P_Ville Dim Selection As Variant Selection = DestinataireCourrier & vbCrLf & AdresseCourrier
Dim appWD As Object Set appWD = CreateObject("Word.Application") With appWD .Visible = True .Documents.Add Template:="Z:\Alliance\Modèles\LettreBureauDesMariages.dot", NewTemplate:=False, DocumentType:=0 .Activate .activedocument.Bookmarks("Adresse").Select Selection.Paste End With
End Sub
Ce que je n'arrive pas à faire, c'est coller au signet Adresse le contenu se la variable Selection A bientôt Pierre |
|
 |
Réponse n° 3 -------- le 08/12/2016 : 03:59 par 3Stone

Administrateur
|
Bonjour,
Essaie : Code :.activedocument.Bookmarks("Adresse").Range.Text = AdresseCourrier
Cordialement, Pierre (3Stone) |
|
 |
Réponse n° 4 -------- le 08/12/2016 : 09:01 par possible924

visiteur |
ça marche parfaitement ! Merci pour tout et très bonne journée Pierre |
|
 |
 sujet actif
 sujet clos
 Important!
 Nouveau message -
 Rectifier message
 Clôturer sujet
 Remonter
|