Mettre une condition dans une macro
Bonjour le forum,
J'ai récupéré une macro pour automatiser un publipostage mais mon problème c'est que celà imprime toutes mes adresses !
Alors que dans ma base de données, je mets dans la colonne A (à partir de A2) O-N pour imprimer ou non la ligne où il y a un O.
Serait-il possible d'ajouter cette condition dans la macro ci-dessous ?
D'avance merci pour votre aide
Private Sub Label4_Click()
Dim docWord As Word.Document
Dim appWord As Word.Application
Dim NomBase As String
NomBase = "F:\Publipostage Enveloppes\Adresses Frs.xls"
Application.ScreenUpdating = False
Set appWord = New Word.Application
appWord.Visible = True
'Ouverture du document principal Word
Set docWord = appWord.Documents.Open("F:\Publipostage Enveloppes\Gabarit Env 110 par 220.doc")
'fonctionnalité de publipostage pour le document spécifié
With docWord.mailMerge
'Ouvre la base de données
.OpenDataSource Name:=NomBase, _
Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & NomBase & "; ReadOnly=True;", _
SQLStatement:="SELECT * FROM [Feuil1$]"
'Spécifie la fusion vers l'imprimante
.Destination = wdSendToPrinter
.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
Application.ScreenUpdating = True
'Fermeture du document Word
docWord.Close False
appWord.Quit
End SubBonjour,
Rajoute une clause WHERE dans ta chaîne SQL du style (pas testé !) :
SQLStatement:="SELECT * FROM [Feuil1$] WHERE Imprimer ='O'"Ici, "Imprimer" est le nom du champ, à adapter.
Hervé.
Bonjour theze, le forum,
je te remercie pour ta réponse, mais celà ne fonctionne pas. En effet, quand je lance l'automatisation il ouvre Word (avec le bon doc) me demande de confirmer la source des données (je réponds par via un DDE) et là l'ordi travaille et au bout de deux trois minutes me met qu'il n'a pas pu ouvrir la bdd !!!
A noter que quand je lance l'automatisation originelle il ne me demande rien.