VBA publipostage avec conditions

MaTThi9u

XLDnaute Nouveau
Bonjour,

je viens à vous car je suis bloqué pour une des étapes de mon publipostage ...

le code suivant fonctionne très bien, je veux juste l'améliorer afin de m'éviter la suppression de feuilles après le publipostage effectué.

le texte en gras est celui que je dois modifier.

il ne faudrait pas que tous les enregistrements soient pris en compte, mais seulement ceux répondant à une condition.

malgré mes recherches, je ne trouve pas mon bonheur.

'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
'Fonction publipostage
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
Sub publipostage()
'Remplissage des variables
remplir_variables
test_publi_coche
NomModele = modele & Extension
NomDocPubli = modele & ExtensionPubli
NomPubli = Format(Now(), "yyyymmdd") & "_NP_" & CodeAttest & "_" & NomDocPubli
NDFPubli = rep & NomPubli
Application.ScreenUpdating = False
Set appWord = New Word.Application
appWord.Visible = True
'Ouverture du document principal Word
Set docWord = appWord.Documents.Open(RepModeles & "\" & NomModele)

'fonctionnalité de publipostage pour le document spécifié
With docWord.mailMerge
'Ouvre la base de données
.OpenDataSource Name:=NomBase, _
LinkToSource:=True, _
Format:=wdOpenFormatAuto, _
SQLStatement:="SELECT * FROM `" & FeuilleDonnees & "$`"
'Spécifie la fusion vers le fichier
'ne fonctionne qu'à pertir d'office 2013
'.suppressBlankLines = True
.Destination = wdSendToNewDocument
'Prend en compte l'ensemble des enregistrements
With .DataSource
.firstRecord = wdDefaultFirstRecord
.lastRecord = derligne
End With

'Exécute l'opération de publipostage
.Execute Pause:=False
End With

'enregistre le document avec le nom prédéfini
docWord.Application.ActiveDocument.SaveAs NDFPubli

Application.ScreenUpdating = True

'Fermeture du document Word
docWord.Close False
appWord.Quit
Set docWord = Nothing
Set appWord = Nothing

'appel l'userform
UserFormPubli.Show
End Sub
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
'Fin Fonction publipostage
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------

merci d'avance.
 

Modeste

XLDnaute Barbatruc
Re : VBA publipostage avec conditions

Bonjour MaTThi9u,

Et donc toi, malgré tes recherches, tu n'as pas trouvé ton bonheur, mais nous, sur base de tes lignes de code, sans connaître les fichiers, les champs concernés, ni les conditions de filtre, nous devrions pouvoir répondre :eek: C'est nous faire trop d'honneur :rolleyes:

Pour ce qui me concerne (mais je ne saurais, ni ne voudrais, me prononcer au nom de mes petits camarades) j'aurais plutôt supputé que c'était au niveau du SQLStatement:="SELECT * ... qu'il faudrait préciser la requête à exécuter.
Ceci dit, je n'y mettrais pas ma tête à couper ... pas même une oreille! (et tout compte fait, même ces petits lobes délicieusement galbés, je me les garde ... je parle toujours des oreilles: pas du foie, ni du cerveau!)
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 336
Membres
111 104
dernier inscrit
JEMADA