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
|