Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Publipostage - Automation - Fusion - ...

5 réponses
Avatar
joyeux atchoum
S'lt à tous

J'ai une petite question pour reprendre le boulot tout doucement :=)

Est il possible de generer un document word à partir d'access dont une
partie uniquement de la fusion est de type publipostage ?

J'explicite un peu
j'aimerai editer un rapport pour lequel j'indique le nom du client,
adresse etc. puis différentes informations telles que le code article,
la description, ... qui peut etre au nombre de 0 à x.

Les docs de chacun (des sites internet) parlent des 2 aspects mais de
façon independantes.

Il est vrai qu'en cherchant un peu je devrais trouver pour faire mon
automation. ;) mais c'est le retour de vacances alors ... j'ai un peu
la flemme.

merci
ja;)
qui est de retour de vacances pour son plus grand malheur :=)

5 réponses

Avatar
Evaro
Bonjour Joyeux Atchoum,

"joyeux atchoum" a écrit dans le message de news:

S'lt à tous

J'ai une petite question pour reprendre le boulot tout doucement :=)

Est il possible de generer un document word à partir d'access dont une
partie uniquement de la fusion est de type publipostage ?



Le document Principal de fusion doit exister et être liée à une table ou
requête ACCESS.
Tous mes documents principaux sont dans un sous-dossier mailing, et
l'utilisateur en choisit un à l'aide d'une lste déroulante.

Public Sub LanceWord(ndc As String, strSource As String, intDirect As
Integer)
' Ouvre Word avec le document ndc dans le dossier mailing.
' réalise directement la fusion si intDirect vaut 1
' sinon permet de modifier le document principal.
Dim wApp As Word.Application
Dim D1 As Word.Document, xn As String
On Error GoTo PbWord
Set wApp = CreateObject("Word.Application")
wApp.Visible = True
Set D1 = wApp.Documents.Open(Application.CurrentProject.Path &
"Mailing" & ndc)
D1.MailMerge.OpenDataSource
Name:=Application.CurrentDb.Name,Connection:=strSource
If intDirect = 1 Then
D1.MailMerge.Destination = wdSendToNewDocument
D1.MailMerge.Execute
End If
Set wApp = Nothing
Sortie:
Exit Sub
PbWord:
If Err = 5631 Then
' Pas d'enregistrements.
Set D1 = wApp.ActiveDocument
If D1.MailMerge.DataSource.ConnectString <> strSource Then
' Erreur déclenchée par "Set D1 = ..."
' si strSource a été modifié depuis le dernier appel du sub.
Resume Next
Else
MsgBox ("Word n'a trouvé aucun enregistrement à fusionner")
wApp.Quit
Set wApp = Nothing
Resume Sortie
End If
End If
If Err = 5535 Then
MsgBox ("Interruption par l'utilisateur")
wApp.Quit
Set wApp = Nothing
Resume Sortie
End If
MsgBox ("Erreur" & Err & " : " & Error$(Err) & " en procédure
lanceWord")
Stop
Resume Sortie
' Stop
End Sub

Courage, plus que 4 jours avant le week-end !

--
@ +
Etienne
Charte du forum: http://users.skynet.be/mpfa/charte.htm

Avatar
Raymond
Bonsoir joyeux atchoum.

as-tu regardé ma page : http://access.seneque.free.fr/signets1.htm

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"joyeux atchoum" a écrit dans le message de
news:
S'lt etienne

merci pour ta reponse, instructive mais ... )
en fait je viens de realiser que je n'emploie pas la bonne
terminologie, arghh (mais où va le monde ?)

en fait ce n'est pas une fusion mais le contraire que j'effectue, c'est
depuis access que je remplis des signets presents dans le document
principal.

il est possible que je me trompe encore dans le vocabulaire mais bon je
progresse et puis la reprise doit etre tranquille, non ? ;=)

merci encore
ja:=)

qui aimerait refaire des grasse mat (c'est pas demain la veille)


Avatar
joyeux atchoum
S'lt Raymond

as-tu regardé ma page : http://access.seneque.free.fr/signets1.htm


oui avant les vacances ;=)
c'est comme ça que je procede pour remplir mes doc,
mais je n'avais pas encore tester avec une boucle pour remplir à
nouveau des signets
mais comme je viens de voir que cela ne semble pas poser de pb (selon
ton exemple publipostage.htm)

Je vais tenter et je reviens si je coince sur un truc


P.S. j'avais prevenu que mon demarrage serait difficile ;=)

ja;)
qui as deja un WE de 3 jours, (pas serieux tout ça ;=) )

Avatar
Raymond
Bonjour.

Pour atteindre le pied de page il faut lancer la fonction:
AppWord.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"joyeux atchoum" a écrit dans le message de
news:
S'lt

Finalement l'exemple sur
http://mypage.bluewin.ch/w.stucki/Integration.htm#ExporterWord repond
mon besoin
C'est pas du beau truc que j'ai fait mais cela semble marcher
maintenant il faut que j'ameliore le tout.

Finalement j'ai une derniere question comment fait on pour atteindre le
pied de page d'un document word
j'ai mis un signet mais celui ci n'est pas rempli, et je n'ai rien vu à
ce propos sur mes premiers sites de references.

voili

merci encore pour l'aide ;=)
ja;)


ja qui finalement aime bien la reprise ;=)


Avatar
joyeux atchoum
S'lt

voili la reponse que j'ai eu sur la faq word (voir plus bas)

il semblerait que lorsque on est dans le bas de page, la commande atteindre
supprime l'affichage du bas de page et de ce fait le signet ne peut être
atteint. il va falloir que tu poses la question sur le forum word, ils
doivent savoir.


effectivement ils savent ;=)

Pour ma part cela ne marche pas encore nickel chrome car je declare mon
serveur d'application comme un ... (je prefere taire le nom, faut mieux
pour nos oreilles) :=)
Donc je dois ameliorer ma creation de documents

Mais cela marche bien sisi

Il faut penser à rajouter la gestion d'erreur

donc si cela peux servir voili :
(oui voili la reponse)

Public Sub MajSignet(NomSignet As String, TexteSignet As String)
'Guy Moncomble - Août 2003 ©
'Modifie le texte d'un signet et rétablit ce signet (supprimé par la
mise à jour).

'Fonctionne dans :
' - document principal, y compris les tableaux,
' - en-têtes et pieds de page,
' - cadres et zones de texte,
' - notes de bas de page et notes de fin.

Dim MyRange As Range, Debut As Long, TypAff As WdViewType, FenAff As
WdSeekView

'Si le signet existe
If ActiveDocument.Bookmarks.Exists(NomSignet) Then
'Où sommes nous au moment de l'appel ? quel est le type d'affichage
?
FenAff = ActiveDocument.ActiveWindow.View.SeekView
TypAff = ActiveDocument.ActiveWindow.View.Type
'Sélection du signet
ActiveDocument.Bookmarks(NomSignet).Select
'Où sommes-nous maintenant ?
If Selection.Information(wdInHeaderFooter) Then
'Il faut revenir en mode page, en-tête ou pied de page ouvert,
sinon marche pas
ActiveWindow.View.Type = wdPrintView
'On resélectionne
ActiveDocument.Bookmarks(NomSignet).Select
End If
Set MyRange = Selection.Range
Debut = MyRange.Start
Selection.Bookmarks(NomSignet).Range.Text = TexteSignet
MyRange.SetRange Debut, Debut + Len(TexteSignet)
Selection.Bookmarks.Add NomSignet, MyRange
'On rétablit la vue initiale
ActiveWindow.ActivePane.View.SeekView = FenAff
ActiveWindow.View.Type = TypAff
End If
End Sub

Youpi
ja;)

qui remercie les MVP de tout bord