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

Macro fusion

3 réponses
Avatar
lemg
Bonjour,
j'ai créé un macro en excel qui ouvre un fichier word et fusionne les données de excel vers word. La fusion fonctionne bien, mais une fois terminé, je voudrais que le nouveau document word soit enregistré sous un nouveau nom pour qu'il puisse ainsi être reouvert, consulté ou imprimé au besoin. Voici mon code, est-ce que quelqu'un pourrait m'aider ou me donner une piste à explorer? Merci!

Sheets("Fusion").Visible = True
Sheets("Fusion").Select
sourcefusion = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

With WdDoc
'AfficheWord

' Créé la liaison à la base de données
.MailMerge.OpenDataSource Name:=sourcefusion, ConfirmConversions:=True, ReadOnly:=False, LinkToSource:=True, SQLStatement:="SELECT * FROM `Fusion$`"

' Lancer la fusion du 1er et seul enreg vers un nouveau doc
With .MailMerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:=False
End With

' Affiche Word
.Application.Visible = True

End With

3 réponses

Avatar
MichD
Bonjour,

Je suppose que dans ton code "With WdDoc" est ton document. Si tel est le cas, tu dois simplement ajouter une ligne de code à
la fin.
Tu peux utiliser l'enregistreur macro pour obtenir le code.

With WdDoc
'AfficheWord

' Créé la liaison à la base de données
.MailMerge.OpenDataSource Name:=sourcefusion, ConfirmConversions:=True,
ReadOnly:úlse, LinkToSource:=True, SQLStatement:="SELECT * FROM `Fusion$`"

' Lancer la fusion du 1er et seul enreg vers un nouveau doc
With .MailMerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:úlse
End With

' Affiche Word
.Application.Visible = True

'*********'*********ligne ajoutée*******************
.SaveAs Filename:="lecheminNomduFichier.docm",FileFormat:=....
'*************************************************
End With

MichD
------------------------------------------
"lemg" a écrit dans le message de groupe de discussion :

Bonjour,
j'ai créé un macro en excel qui ouvre un fichier word et fusionne les données
de excel vers word. La fusion fonctionne bien, mais une fois terminé, je
voudrais que le nouveau document word soit enregistré sous un nouveau nom pour
qu'il puisse ainsi être reouvert, consulté ou imprimé au besoin. Voici mon code,
est-ce que quelqu'un pourrait m'aider ou me donner une piste à explorer?
Merci!

Sheets("Fusion").Visible = True
Sheets("Fusion").Select
sourcefusion = ActiveWorkbook.Path & "" & ActiveWorkbook.Name

With WdDoc
'AfficheWord

' Créé la liaison à la base de données
.MailMerge.OpenDataSource Name:=sourcefusion, ConfirmConversions:=True,
ReadOnly:úlse, LinkToSource:=True, SQLStatement:="SELECT * FROM `Fusion$`"

' Lancer la fusion du 1er et seul enreg vers un nouveau doc
With .MailMerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:úlse
End With

' Affiche Word
.Application.Visible = True

End With
Avatar
lemg
MichD a écrit le 12/10/2011 à 23h33 :
Bonjour,

Je suppose que dans ton code "With WdDoc" est ton document. Si tel
est le cas, tu dois simplement ajouter une ligne de code à
la fin.
Tu peux utiliser l'enregistreur macro pour obtenir le code.

With WdDoc
'AfficheWord

' Créé la liaison à la base de données
.MailMerge.OpenDataSource Name:=sourcefusion, ConfirmConversions:=True,
ReadOnly:úlse, LinkToSource:=True, SQLStatement:="SELECT * FROM
`Fusion$`"

' Lancer la fusion du 1er et seul enreg vers un nouveau doc
With .MailMerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:úlse
End With

' Affiche Word
.Application.Visible = True

'*********'*********ligne ajoutée*******************
.SaveAs Filename:="lecheminNomduFichier.docm",FileFormat:=....
'*************************************************
End With

MichD
------------------------------------------
"lemg" a écrit dans le message de groupe de discussion :


Bonjour,
j'ai créé un macro en excel qui ouvre un fichier word et fusionne
les données
de excel vers word. La fusion fonctionne bien, mais une fois terminé,
je
voudrais que le nouveau document word soit enregistré sous un nouveau
nom pour
qu'il puisse ainsi être reouvert, consulté ou imprimé au
besoin. Voici mon code,
est-ce que quelqu'un pourrait m'aider ou me donner une piste à explorer?
Merci!

Sheets("Fusion").Visible = True
Sheets("Fusion").Select
sourcefusion = ActiveWorkbook.Path & "" &
ActiveWorkbook.Name

With WdDoc
'AfficheWord

' Créé la liaison à la base de données
.MailMerge.OpenDataSource Name:=sourcefusion, ConfirmConversions:=True,
ReadOnly:úlse, LinkToSource:=True, SQLStatement:="SELECT * FROM
`Fusion$`"

' Lancer la fusion du 1er et seul enreg vers un nouveau doc
With .MailMerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:úlse
End With

' Affiche Word
.Application.Visible = True

End With


Bonjour,

Merci pour votre réponse, effectivement si j'ajoute le code que vous m'avez recommandé, le document word initialement ouvert est enregistré sous le nom désiré, toutefois, je voudrais que le document enregistré sous soit la lettre type créé par la fusion. Auriez-vous des pistes de solution à me proposer?

Merci!
Avatar
MichD
| je voudrais que le document enregistré sous soit la lettre
| type créé par la fusion. Auriez-vous des pistes de solution à me proposer?

Autrement dit, tu voudrais enregistrer le fichier dans le même répertoire
où est situé le document WdDoc. Ai-je bien compris ?

Si oui,

'----------------------------------
With WdDoc

'Le code
.SaveAs Filename:= .Path & "" & "NomduFichier.docm"
End With
'----------------------------------



MichD
------------------------------------------