Recherche et sélection dans une colonne Excel

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.

________ 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

Bonjour.

Essaye de remplacer

myNum = Application.InputBox("Entrer le numero de ligne excel correspondant a la commande")

Par

dim MyminiNum as string
MyminiNum=Application.InputBox("Entrer le numero correspondant a la commande")
myNum= 1 
Do until Cells(myNum,1).Value = MyminiNum 'Si ta colonne numéro est A, si c'est B remplace 1 par 2, etc.
myNum = myNum + 1
Loop
 

Bonne journée.

Merci beaucoup, cela marche parfaitement !

Pendant que j'y suis, j'ai un soucis que je n'arrive pas à régler depuis plusieurs jours..

Imaginons que je lance le publipostage pour une commande, cela fonctionne niquel; puis je ferme mes fichiers sans enregistrer. Je veux ensuite recommencer l'opération pour une autre commande, et la macro ne fonctionne plus. Cela debogue au niveau de ChangeFileOpenDirectory, et ne trouve pas le fichier... Comme si cela avait crée un fichier temporaire la première fois qui n'existe donc plus lorsqu'on le ferme, pourtant mes chemins d'accès sont les liens vers les fichiers originaux, qui ne sont pas temporaires...

C'est assez problématique car si la personne dans l'entreprise ferme son fichier, ou se trompe de fichier la 1ère fois, la macro ne fonctionne plus..

Qu'en pensez-vous ?

Encore merci pour le code précédent!

Ça raconte quoi comme erreur ?

Erreur d'exécution 462 "le serveur distant n'existe pas ou n'est pas disponible "

Google m'indique

appWrd.ChangeFileOpenDirectory "S:\***"

A la place de

ChangeFileOpenDirectory "S:***"

Maintenant ça enchaîne sur erreur 424 "objet requis " :/

Rechercher des sujets similaires à "recherche selection colonne"