VBA Publipostage avec conditions
bonjour,
je travaille sur un fichier qui me sert a générer des documents mais je ne fusionne pas toutes les lignes de ma base.
j'ai crée un userform pour remplir ma base qui comporte ~30 valeurs par ligne et pour sélectionner des groupes de lignes correspondants aux n°lot.
voici ma base en schématisant :
colonne A = n°lot (1 à 60)
colonne B = référence (1 à 5 pour chaque n°lot)
colonne I = a fusionner (vrai/faux)
colonne C à AT = diverses valeurs reprise dans ma fusion
actuellement j'utilise le code suivant mais qui ne répond pas à mon besoin décrit ci-après :
Private Sub CommandButton5_Click()
'EDITION LETTRE SEULE
Set appWrd = CreateObject("Word.Application")
appWrd.Visible = True
Set docWord = appWrd.Documents.Add(Template:="chemin_réseau...\LETTRE.docx", NewTemplate:=False, DocumentType:=0)
With docWord.MailMerge
'Ouvre la base de données
.OpenDataSource Name:="chemin_réseau...\bd.xlsm", _
Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & NomBase & "; ReadOnly=True;", _
SQLStatement:="SELECT * FROM [Feuil1$] WHERE Faire_fusion = 'vrai' "
'Fusion
With docWord.MailMerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = wdDefaultFirstRecord
End With
.Execute Pause = True
End With
'Fermeture du document Word
docWord.Close False
End With
End Sub
mon besoin :
sélectionner : pour chaque n°lot,
la 1ère référence dont la valeur à fusionner est "vrai"
sans prendre en compte les autres "vrai"
jusqu'au n°lot suivant.
mes connaissances en vba sont insuffisantes pour gérer ce problème. je suppose qu'il me faut passer par des variables, des boucles et des conditions mais ça me dépasse.
un coups de main serait le bien venu, merci d'avance