Recherchev en VBA

Bonjour le forum,

voila, la feuille principale, j'ai une recherche par une liste de villes qui donne le résultat des départs ou arrivées de lignes

une deuxième liste "départ" ou "arrivée"

qui me colorie le fond des résultats

j'ai 4 colonnes qui me permets de faire une recherche de fichiers PDF

la recherche ce fait par la liste deroulante

soit "départ" ou "arrivée"

les formules de recherche sont:

la colonne B est la ville de départ

=SIERREUR(@INDEX(RT!$1:$1048576;EQUIV(LIGNE()-7;Listeville;0);COLONNE());"")

la colonne C est la ville d arrivée

SIERREUR(@INDEX(RT!$1:$1048576;EQUIV(LIGNE()-7;Listeville;0);COLONNE());"")

la colonne D est le numéro de fichier

SIERREUR(@INDEX(RT!$1:$1048576;EQUIV(LIGNE()-7;Listeville;0);COLONNE());"")

la colonne E ne donne le lien dans un SharePoint afin de pouvoir consulter le document pdf

SIERREUR(LIEN_HYPERTEXTE(@INDEX(RT!$1:$1048576;EQUIV(LIGNE()-7;Listeville;0);COLONNE()));"")

j'aimerais pouvoir la transposer en vba afin de pourvoir afficher le résultat de la recherche dans un userform avec un lecteur pdf intégré dans un userform

je vous demande si c'est réalisable

j'ai trouvé un fichier avec un userform avec PDF intégré donc cette partie est possible mais ce type de recherche en vba c 'est réalisable

le fichier

merci d'avance

Bonjour Pelerin65

Pour transformer les formules intégrant INDEX et EQUIV en VBA, la solution est d'utiliser la méthode Find

Pour utiliser un lecteur PDF comme celui que tu as, il faut synchroniser le dossier sharepoint en local

Cdlt

bonjour scraper

Bonjour Pelerin65

Pour transformer les formules intégrant INDEX et EQUIV en VBA, la solution est d'utiliser la méthode Find

Pour utiliser un lecteur PDF comme celui que tu as, il faut synchroniser le dossier sharepoint en local

Cdlt

tu pourrais me faire la première formule après j'essayerai de reproduire et adapter pour l'ensemble du fichier

cordialement

Pelerin65

Le pb est que je ne traduirais pas une formule : la feuille RECHERCHE_RT est pour moi un mystère.

Il faut comme tu le suggérais penser le design d'une formulaire en VBA (que tu avais commencé) ou l'on choisit une gare de départ dans un combo (tu y est arrivé), puis ajouter un deuxième combo pour la gare d'arrivée (en fonction de la colonne C), et récupérer la colonne D (le numero de RT qui apparemment permet de fabriquer le nom du fichier PDF dans lequel if faudra ajouter le dossier local de synchronisation).

Le lien sharepoint est inexploitable à ma connaissance.

Bonjour Pelerin65

Puis-je t'aider un peu plus? y a t'il quelque chose que tu ne comprends pas?

Scraper

Bonsoir scraper,

mon idée serait de pourvoir utiliser cette recherche dans un webbroser PDF dans le fichier Excel

7pdf-rt.xlsb (98.98 Ko)

comme dans le fichier au lieu d'aller chercher la liste de pdf faire une recherche dans un dossier du pc

je n arrive pas a trouver le fil pour avancer dans ce projet (la tristesse du débutant)

j'ai réussi a aliment la combobox mais là je sèche

Bonjour Pelerin65

En effet, tu n'avances pas : à quoi sert cette listview. le code n'est pas terminé et ne peux pas être dans un événement ItemClick mais dans une fonction d'init appelée dans UserForm_Initialize : je ne vois pas où tu veux en venir

As tu écouté ce que je t'ai dit sur la synchro entre sharepoint et un disque local ?

bonjour scraper

oui, j'ai bien compris le problème avec SharePoint,

mais ce SharePoint peux être mis dans un dossier le disque dur C:\

la seule chose que je voudrais c'est de pouvoir filtre avec la C5 nom des départs ou arrivées villes

que le résultat du filtrage se mets dans la listview ou listebox et de pouvoir cliquer sur une ligne qui n'ouvre le pdf

et pour cause je n'arrive pas à remplir la listview ou listebox

Jean-Luc, tu peux passer par les mails privés. Je pourrais te proposer quelque chose de plus efficace.

Pour charger les gares de départ dans une collection

Set c = ReadRangeRowsToCollection(Sheets("RT").Range("Départ"))

par exemple dans la procédure UserForm_Initialize

Function ReadRangeRowsToCollection(r As Range) As Collection
    Dim iRow As Long
    Dim iCol As Long
    Dim rangeArr As Variant
    Dim rowArr As Variant
    Dim c As Collection

    'Read range content to Variant array
    rangeArr = r.Value

    'Now transfer shit to collection
    Set c = New Collection
    For iRow = 1 To r.Rows.Count
        ReDim rowArr(1 To r.Columns.Count)
        For iCol = 1 To r.Columns.Count
            rowArr(iCol) = rangeArr(iRow, iCol)
        Next iCol
        c.Add rowArr, CStr(iRow)
    Next iRow

    Set ReadRangeRowsToCollection = c
End Function

pour remplir une listbox avec les elements de la collection

    Dim elt
    For Each elt In c
      ListBox1.AddItem elt
    Next

désolé, mais la je comprends rien à ton code,

Dois-je garder le code qui est dans le fichier

Avec ton code, il va chercher la liste et les fichiers il n'y a pas de chemin vers c:\

mon chemin est C:\Loc Ng 23\04-Livrets de Lignes

je suis juste un bidouilleur en vba

Desolé encore

Un conseil : Le Userform Form_PDF était bien sur la première version, tu ferais bien de le restaurer

Rechercher des sujets similaires à "recherchev vba"