Bonjour,
j'ai crée une macro excel pour effectuer un publipostage avec word
actuellement, il y a une boite de dialogue qui s'ouvre et qui demande à l'utilisateur le numero de la ligne excel où se trouvent les données pour faire le publipostage
Je m'explique, j'ai un tableau excel qui me sert de base de données, avec pleins de colonnes; chaque ligne correspond à une commande.
N° ________ Dates ________ ....
P12 ________ 07/07 ________ ....
P13 ________ 25/12 ________ ....
M06 _______ 13/04 ________ ....
L28 ________ 12/08 ________ ....
J'entre le numéro de ligne de la commande désirée pour faire le publipostage. J'aimerai trouver un code qui lorsque je rentre cette fois-ci le N° (exemple : P13), défile uniquement sur la colonne N° jusqu'à ce qu'il trouve ce que j'ai entré. Je dois surement faire une boucle while.. ?
Mais après je n'arrive pas à faire en sorte que le publipostage se fasse avec les données de la ligne trouvée.
Quelqu'un a une idée ?
myNum = Application.InputBox("Entrer le numero de ligne excel correspondant a la commande")
ChangeFileOpenDirectory "S:***"
Documents.Open Filename:= _
"S:***.docx" _
, ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
wdOpenFormatAuto, XMLTransform:=""
ActiveDocument.MailMerge.OpenDataSource Name:= _
"S:***.xlsm" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=S:***.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path=" _
, SQLStatement:="SELECT * FROM `'2016$'`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = myNum - 2
.LastRecord = myNum - 2
End With
.Execute Pause:=False
End With
End Sub