Publipostage en gardant les checkbox actives ???

brice59

XLDnaute Occasionnel
Bonjour,

J'utilise une macro pour fusionner un document word selon une source.
Mais après fusion, les macros qui été affectés aux boutons disparaissent.

Comment faire pour conserver les macros ??

Merci
 
Dernière édition:

brice59

XLDnaute Occasionnel
Re : Comment conserver les macros après avoir fusionné un document.

VOICI LA macro que j'utilise.




Dim W_NomDoc As String
Private Sub Document_Open()
Fusion
End Sub

Sub Fusion()
'
' Fusion Macro


' Ouverture de la source de données qui à le même nom que le fichier
'Dim W_NomDoc As String

W_NomDoc = Mid(ActiveDocument.Name, 1, Len(ActiveDocument.Name) - 4)
ActiveDocument.MailMerge.OpenDataSource Name:= _
ThisDocument.Path & "\" & W_NomDoc & ".txt", ConfirmConversions:=False, ReadOnly _
:=False, LinkToSource:=True, AddToRecentFiles:=False, PasswordDocument:= _
"", PasswordTemplate:="", WritePasswordDocument:="", _
WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
Connection:="", SQLStatement:="", SQLStatement1:=""

'Exécution de la fusion word
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = True
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=True
End With

Call Macro2

End Sub


Sub Macro2()

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "|"
.Replacement.Text = "^l"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
ActiveDocument.Protect (wdAllowOnlyFormFields)



End Sub



et ma 2ème macro qui est sur un bouton.


Function RepertoireExiste(Chemin As String) As Boolean
On Error Resume Next
RepertoireExiste = GetAttr(Chemin) And vbDirectory
End Function

Private Sub CommandButton1_Click()


W_NomDoc = Mid(ActiveDocument.Name, 1, Len(ActiveDocument.Name) - 4)
ActiveDocument.MailMerge.OpenDataSource Name:= _
ThisDocument.Path & "\" & W_NomDoc & ".txt", ConfirmConversions:=False, ReadOnly _
:=False, LinkToSource:=True, AddToRecentFiles:=False, PasswordDocument:= _
"", PasswordTemplate:="", WritePasswordDocument:="", _
WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
Connection:="", SQLStatement:="", SQLStatement1:=""



Dim Chemin As String, NomRep As String, NomDossier As String, Code As String, Nom As String, Prénom As String
Chemin = "J:\Documents de suivi\test\NomDossier"
NomRep = Dir(Chemin, vbDirectory)
Code = ActiveDocument.MailMerge.DataSource.DataFields(1).Value
Nom = ActiveDocument.MailMerge.DataSource.DataFields(2).Value
Prénom = ActiveDocument.MailMerge.DataSource.DataFields(3).Value
NomDossier = ActiveDocument.MailMerge.DataSource.DataFields(2).Value & " " & ActiveDocument.MailMerge.DataSource.DataFields(3).Value & " " & ActiveDocument.MailMerge.DataSource.DataFields(1).Value

If RepertoireExiste("J:\Documents de suivi\test\" & NomDossier) Then
Call ChangeFileOpenDirectory("J:\Documents de suivi\test\" & NomDossier)
Else
MkDir "J:\Documents de suivi\test\" & NomDossier
MsgBox "le dossier est créé"
End If
Call ChangeFileOpenDirectory("J:\Documents de suivi\test\" & NomDossier)
ActiveDocument.SaveAs FileName:="nom du document" & " " & Nom & " " & Prénom & " " & Code & " " & Format(Now, "dd mmmm yyyy") & " " & Format(n + 1, "000") & ".doc"

End Sub


la macro fonctionne correctement lorsque je la lance du document d'origine, mais lorsque la fusion est faite, les macros ne sont pas dupliquées sur le document fusionné donc le bouton est bien présent, mais ne fonctionne pas
 
Dernière édition:

chris

XLDnaute Barbatruc
Re : Comment conserver les macros après avoir fusionné un document.

Bonjour
Bise à TotoTiti

C'est normal le document de fusion ne contient que du texte obtenu par la fusion de celui du document type et de celui des variables. Ce n'est pas un duplicata complet du document type.

Si veux y insérer des macros il faut les copier : dans 2003 tu accèdes à cela dans Outils, Modèles et compléments, Organiser, Onglet Macros. Reste à automatiser ensuite dans ton code.
 

chris

XLDnaute Barbatruc
Re : Comment conserver les macros après avoir fusionné un document.

Bonjour

A priori l'enregistreur fonctionne quand on coche l'option "faire confiance au projet visual basic" dans les options de sécurité.

Ce code marche en cochant la même option
Code:
    Application.OrganizerCopy Source:="chemin\nomFicher.extension",  _
        Destination:="chemin\nomFicher.extension", Name:="NomModule", _
        Object:=wdOrganizerObjectProjectItems
Un cas ne semble pas fonctionner : copie d'un module issu du modèle Normal.
 

brice59

XLDnaute Occasionnel
Re : Comment conserver les macros après avoir fusionné un document.

Rien à faire ça fonctionne pas du tout.

Je me demande si il ne serait pas plus simple de faire autrement .....

Est-il possible de stoker cette foutue macro sur le C:/
et d'utiliser ensuite une macro pour l’insérer dans le document ...
 

brice59

XLDnaute Occasionnel
Re : Comment conserver les macros après avoir fusionné un document.

j'ai la version 2007.

J'ai réussi 1 fois à copier une macro, mais alors je sais pas du tout comment j'ai fait, et impossible de le refaire.
Mais en tout cas c'est possible
 

brice59

XLDnaute Occasionnel
Re : Publipostage en gardant les checkbox actives ???

voilà plusieurs jours/ semaines que je suis là dessus, mais pas moment de trouver.

Je vais reposer ma question autrement.

Comment faire pour conserver les checkbox, et autres champs active après fusion ????
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 330
Membres
103 519
dernier inscrit
Thomas_grc11