Lister pdf dans un sous répertoire + Hyperlinks

Byfranck

XLDnaute Occasionnel
Bonjour à tous les amis du Forum,

Un nouvel objectif dans ma base de donnée ... lister dans le listview d'un Usf (sous forme de lien) tous des fichiers pdf se raportants à un chaine de caractères se trouvant en Texbox1.

Je m'explique:
J'ai une base de clients dans une feuille Excel.
Je la consulte au travers d'un listview dans un Usf.
pour ouvrir une fiche => DblClick
Une fois la fiche ouverte j'ai toutes les infos dont j'ai besoin dans un Usf Résultat (248 textbox ou comboBox).
Il me manque une chose: un lien vers les pdf se raportants à ce client.
L'idéee est de placer tous les pdf dans 1 sous-répertoire, et d'avoir dans l'userform "Résultat" un listview, un listbox ou un combobox qui m'affiche le nom des pdf correspondants à ce client.
Tous les pdf du sous répertoire ont le nom du client dans leur propre nom.
Le nec plus ultra serait que le listview ou listbox affiche des liens type hyperlink qui me permette d'ouvrir le fichier cliqué.

j'espère que mon idée est compréhensible, j'ai mis une pièce jointe version simplifiée et non confidencielle, j'imagine que là c'est un big challenge et qu'on aproche des limites d'Excel :(

Si quelqu'un sait faire ou à une idée il est le super bien venu :)

Cordialement
Franck
 

Pièces jointes

  • Offres.zip
    48.6 KB · Affichages: 47
  • Offres.zip
    48.6 KB · Affichages: 47
  • Offres.zip
    48.6 KB · Affichages: 45

Byfranck

XLDnaute Occasionnel
Re : Lister pdf dans un sous répertoire + Hyperlinks

Bonjour Kiki29 ,

Merci pour ton exemple, mais c'est à la fois trop complet comme possibilités et ... au vu de mon niveau trop complexe pour moi pour réussir à faire les modif! :eek:
En tout cas ça m'encourage dans le sens où mon idée doit probablement être réalisable sous Excel :)


En fait mon cas sera plus simple, pour éviter d'avoir à créer un sous repertoire par client et donc les risque d'erreur de destination quand on archive les pdf (il y en a des centaines: la base contient à ce jour 6617 fiches clients): ils seront tous et toujours regroupés dans le même sous répertoire Lambda ("Propositions" ou offres par exemple), donc il ne faut pas que les utilisateurs puissent se balader dans d'autres répertoires.

C'est pour cela que l'idée serait que dans un listview de l'Usf apparaissent seulement les pdf qui contiennent dans leur nom ce qu'il y a dans le TextBox1.

En tous cas merci déjà grandement pour ce fichier j'ai déjà en tête comment l'utiliser directement pour autre chose.

Cordialement
Franck
 

Byfranck

XLDnaute Occasionnel
Re : Lister pdf dans un sous répertoire + Hyperlinks

Rebonjour à tous,

Je continue à chercher et j'ai trouvé sur le forum un fichier créé par bqtr qui semble assez proche de mon besoin (voir fichier joint)
malheureusement ce fichier va chercher des pdf dans un chemin qui lui est imposé. Dans mon cas je ne peux pas connaitre le chemin des autres utilisateurs de la base, la seule chose queje vais imposer c'est que les documents pdf à lister se trouvent dans un sous-répertoire de celui ou se trouve la base de donnée.
j'essai d'adapter le code en faisant ce qui me parait le plus logique, mais si je change les 2 lignes:
Code:
Chemin = "C:\Documents and Settings\5909540t\Mes documents"
et
Code:
  Set Rep = Fso.GetFolder("C:\Documents and Settings\Pom\Bureau")
par
Code:
   répertoire = ThisWorkbook.Path
Chemin = "répertoire\offres"

et par
Code:
 répertoire = ThisWorkbook.Path
Set Rep = Fso.GetFolder("répertoire\offres")

idem en mettant un \ devant répertoire
rien à faire ça plante


Quelqu'un sait faire ou a une idée?

Merci d'avance
Franck
 

Pièces jointes

  • Ouvre PDF.zip
    18.1 KB · Affichages: 40
  • Ouvre PDF.zip
    18.1 KB · Affichages: 44
  • Ouvre PDF.zip
    18.1 KB · Affichages: 45
Dernière édition:

bqtr

XLDnaute Accro
Re : Lister pdf dans un sous répertoire + Hyperlinks

Bonjour,


Si tu connais le chemin du répertoire de la base et du sous-répertoire pour les PDF en modifiant la variable Chemin de l'USF Résultat cela devrait marcher.

Attention Sous Excel 2007 cela ne fonctionnera pas.

A+
 

Pièces jointes

  • ByFranck _Offres_V2.zip
    40.8 KB · Affichages: 58
Dernière édition:

Byfranck

XLDnaute Occasionnel
Re : Lister pdf dans un sous répertoire + Hyperlinks

Bien le bonjour bqtr,

Si tu connais le chemin du répertoire de la base et du sous-répertoire pour les PDF en modifiant la variable Chemin de l'USF Résultat cela devrait marcher.

Ben justement ... je ne connait pas le chemin ... l'idée est de lire dans le sous répertoire "Offres" par exemple qui se trouvera toujours être un sous répertoire de celui dans lequel la base Excel se trouvera.

Pour ça j'essai d'adapter un bout de code que j'ai eu il y qq temps par Patrick Morange mais sans succès:
le code que j'ai va ouvrir tous les sous répertoires contenu dans le répertoire ou je me trouve:

Code:
Sub MiseAjour()
' Ecrit par PMO

   Application.ScreenUpdating = False

   répertoire = ThisWorkbook.Path
   ClasseurMaitre = ThisWorkbook.Name
   Set fs = CreateObject("Scripting.FileSystemObject")
   Set dossier = fs.GetFolder(répertoire)
   For Each d In dossier.SubFolders
     sousRépertoire = d.Name
     nf = Dir(répertoire & "\" & sousRépertoire & "\*.xls")    ' premier fichier
     Do While nf <> ""
       Workbooks.Open Filename:=répertoire & "\" & sousRépertoire & "\" & nf
'activation de la feuille
'       ActiveSheet.Visible = True
'/// modif pmo ///
Sheets("Extraction").Activate

..... etc

J'ai mis:

Code:
Private Sub UserForm_Initialize()

Dim Chemin As String, i As Long, m As Long, fs
Dim répertoire As String

With ListView1
  With .ColumnHeaders
     .Clear
     .Add , , "Client", 100
     .Add , , "PDF", 250, lvwColumnCenter
  End With
 .View = lvwReport
 .FullRowSelect = True
 .Gridlines = True
End With

ActiveCell.EntireRow.Select
TextBox1.Value = ActiveCell.Value
TextBox2.Value = ActiveCell.Offset(0, 1).Value
TextBox3.Value = ActiveCell.Offset(0, 10).Value

m = 1

   Application.ScreenUpdating = False

   répertoire = ThisWorkbook.Path
'   ClasseurMaitre = ThisWorkbook.Name
   Set fs = CreateObject("Scripting.FileSystemObject")
   Set Dossier = fs.GetFolder(répertoire)
   For Each d In Dossier.SubFolders
'     sousRépertoire = d.Name
    Chemin = Dir(répertoire & "\Offres\")
'Chemin = "S:\Téléchargement\Offres" 'Chemin du répertoire à traiter, à modifier
Set fs = Application.FileSearch
      With fs
        .LookIn = Chemin
        .Filename = "*.pdf" 'filtre uniquement les fichiers pdf
           If .Execute > 0 Then
              For i = 1 To .FoundFiles.Count
                 If InStr(1, Dir(.FoundFiles(i)), TextBox1.Value) <> 0 Then
                    ListView1.ListItems.Add , , Dir(.FoundFiles(i)) 'nom du fichier dans la première colonne
                    ListView1.ListItems(m).SubItems(1) = .FoundFiles(i)  'chemin complet du fichier
                     m = m + 1
                 End If
              Next
           End If
      End With
Set fs = Nothing
End Sub

m'énerve ... ça veut pas marcher !!! :mad:
 

Byfranck

XLDnaute Occasionnel
Re : Lister pdf dans un sous répertoire + Hyperlinks

Résolu!

Parfois il ne faut pas chercher midi à 14h .... :D

Code:
Chemin = ThisWorkbook.Path & "\" & "Offres" & "\"

tout simplement et ça marche !

Merci à kiki29 et bqtr pour votre aide ;)
 
Dernière édition:

bqtr

XLDnaute Accro
Re : Lister pdf dans un sous répertoire + Hyperlinks

Re,

Peut-être comme ceci :
Code:
Private Sub ListView1_Click()
 If ListView1.ListItems.Count > 0 Then ThisWorkbook.FollowHyperlink ListView1.ListItems(ListView1.SelectedItem.Index).ListSubItems(1).Text
End Sub

Tu n'auras plus d"erreur 91 si tu click sur la listview et qu'elle est vide.


A+
 

Discussions similaires

Réponses
11
Affichages
249

Statistiques des forums

Discussions
312 305
Messages
2 087 088
Membres
103 461
dernier inscrit
dams94