Bonjour le Forum,
Je cherche le moyen de personnaliser un code pour un publipostage....
Dans le code ci-dessous, à l'exécution, j'ai une fenêtre "sélectionner table" y a t'il un moyen de ne pas avoir cette fenêtre? à chaque fois il faut que je coche tables systeme en plus de tables déjà coché......dans option
Une autre chose que je n'arrive pas à obtenir c'est une connexion en feuille de calcul excel via DDE
Par avance merci
Bonne journée à tous
Manu
Je cherche le moyen de personnaliser un code pour un publipostage....
Dans le code ci-dessous, à l'exécution, j'ai une fenêtre "sélectionner table" y a t'il un moyen de ne pas avoir cette fenêtre? à chaque fois il faut que je coche tables systeme en plus de tables déjà coché......dans option
Une autre chose que je n'arrive pas à obtenir c'est une connexion en feuille de calcul excel via DDE
Code:
Sub Publipostage()
Dim CheminModele$
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Chemin = ActiveWorkbook.Path
CheminModele = "c:\XXXXX\CDD\"
' ***** INFOS IMPORTANTES ***************************************************
' Export des données dans un classeur temporaire pour éviter d'avoir
' une instance Excel qui reste dans la Liste des Tâches
' C'est ce document temporaire qui sera utilisé par Word lors de la fusion et
' évitera les inconvénients cités plus haut.
' ---------------------------------------------------------------------------
Sheets(Array("Feuil1")).Select
Sheets(Array("Feuil1")).Copy
ActiveWorkbook.SaveAs Chemin & "\Temp.xls"
ActiveWorkbook.Close savechanges:=False
' ***************************************************************************
'Vérifier si il y a des croix présentes pour procéder au mailing
Sheets("Feuil1").Activate
Range([AB2], [AB65536].End(xlUp)).Select
NbreX = Application.CountIf(Selection, "x")
Exit Sub
'Ouverture de Word
Dim AppWord As Word.Application
Set AppWord = New Word.Application
Application.ScreenUpdating = False
Set DocWord = AppWord.Documents.Open(CheminModele & "Modele Contrat CDD.docm")
NomBase = Chemin & "\Temp.xls"
' Ouverture de la base de données, passage des paramètres
' pour la requête et lancement du Publipostage
With DocWord.MailMerge
.OpenDataSource Name:=NomBase, _
Connection:="Driver={Microsoft Excel Driver (*.xls)};" & "DBQ=" & _
NomBase & "; ReadOnly=True;", SQLStatement:="SELECT * FROM [Feuil1$] WHERE [Modele Contrat CDD] like 'x' OR [Modele Contrat CDD] like 'X'"
'Spécifie la fusion vers un nouveau document (wdSendToPrinter= Vers l'imprimante)
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
'Prend en compte l'ensemble des enregistrements
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
'Exécute l'opération de publipostage
.Execute Pause:=False
End With
' Activation du doucment principal de Publipostage et fermeture
DocWord.Activate
DocWord.Close savechanges:=False
' Affichage l'application Word
AppWord.Visible = True
Set DocWord = Nothing
Set AppWord = Nothing
' Activation de l'onglet
Sheets("feuil1").Activate
' Effacement du fichier temporaire crée spécialement pour la fusion
Kill Chemin & "\temp.xls"
Par avance merci
Bonne journée à tous
Manu