Bonjour,
J'ai fouillé sur le net et trouver une bonne méthode pour trouver des codes qu'on ne connait pas : faire des macros sur word et regarder le code.
Sur access, l'utilisateur remplit un formulaire, puis clique sur un bouton de commande qui ouvre un fichier word de publipostage.
Je désirais alors trois choses :
- que le publipostage soit en mode donnée (le petit icône abc), en macro :
1 2
| 'mettre en mode donnée
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle |
Cela fonctionne. Mais pour les deux autres, ça ne fonctionne pas :
- aller au dernier enregistrement (c'est à dire celui qui vient d'être saisi)
1 2
| 'aller au dernier enregistrement
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord |
- que le fichier soit automatiquement enregistré sous un nom particulier. Là j'ai mise "nom_prenom_cv.doc" mais en réalité je voudrais que ce soit ce qui vient d'être saisi, donc quelque chose comme " " & nom.value & "_ (etc) ; je ne suis pas sûr que ça fonctionne. De toute façon, pour le moment, le fichier ne s'enregistre pas du tout :
1 2 3 4 5 6
| 'enregistrer sous
ActiveDocument.SaveAs FileName:="nom_prenom_cv.doc", FileFormat:= _
wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False |
J'ai aussi essayé ce qui suit, que j'ai trouvé dans la FAQ :
'objWord.ActiveDocument.SaveAs "R:\05 - BIBLIOTHEQUE CANDI & OFFRES\02 - Références\test00000005.doc"
Bon bien sur j'ai adapté le code et remplacé ActiveDocument par objWord.
Pour plus de clarté sur l'ensemble de la démarche :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
Private Sub ordre66_Click()
On Error GoTo Err_ordre66_Click
Dim objWord As Object
Set objWord = GetObject("R:\05 - BIBLIOTHEQUE CANDI & OFFRES\02 - Références\modèle_cv.doc", "Word.Document")
' Rend Word visible important puisque la fusion se fait à l'écran.
objWord.Application.Visible = True
' Sélectionne la base de données Références.mdb comme source de données pour la fusion
With objWord.MailMerge
.OpenDataSource Name:="R:\05 - BIBLIOTHEQUE CANDI & OFFRES\02 - Références\Références.mdb", _
LinkToSource:=True, _
Connection:="TABLE cv", _
SQLStatement:="SELECT * FROM [cv]"
'mettre en mode donnée
objWord.MailMerge.ViewMailMergeFieldCodes = wdToggle
End With
' Exécution de la fusion.
objWord.mailMerge.Execute
Set objWord = Nothing
Exit_ordre66_Click:
Exit Sub
Err_ordre66_Click:
MsgBox Err.Description
Resume Exit_ordre66_Click
End Sub |
Merci pour ceux/celui/celle qui auront/aura le temps et la patience de me filer un coup de pince.
Bonne journée !
Partager