Autres Lancer des PDFs à partir d'une liste déroulante

reptooyep

XLDnaute Nouveau
Bonjour,
Pour un petit projet, j'ai besoin de lancer un pdf à partir d'une liste de 27 fichiers.
Pour simplifier le partage de fichier, j'ai intégré ces fichiers dans la 2eme feuille (cartes) colonne C. La colonne A contient les noms à afficher dans la liste et la B, les mêmes noms avec un lien hypertexte vers ces fichiers.
J'ai nomé cette page en tant que liste avec comme attribut =DECALER(cartes!$A$1;;;NBVAL(cartes!$A:$A);) et nom = liste.
Dans la feuille 1, j'ai créé en A4 une liste déroulante liée à "=liste" et un lien en C4 qui est censé se mettre à jour en fonction du choix avec =LIEN_HYPERTEXTE(RECHERCHEV(A4;cartes!$A:$B;1;FAUX);"CLICK")
La case est censée afficher "CLICK", au lieu de ça, elle m'affiche la formule entière comme si il y avait une erreurs. Je ne comprends pas, j'ai fait un copier/coller d'un fichier fonctionnel qui affiche bien le nom.
Bref, je n'y comprend rien.
Je pense que je vais me tourner vers les macros, ce sera bcp plus facile. Si quelqu'un à des exemples à me proposer, je suis preneur.
Merci bcp
 

job75

XLDnaute Barbatruc
Bonjour Dadi147,

Voyez les fichiers joints et le code du fichier .xlsm :
VB:
Private Sub CommandButton1_Click() 'bouton PDF
Dim dossier As FileDialog, chemin$, fichier$, F As Worksheet, n%
ChDir ThisWorkbook.Path & "\"
Set dossier = Application.FileDialog(msoFileDialogFolderPicker)
If dossier.Show = False Then Exit Sub 'Annuler
chemin = dossier.SelectedItems(1) & "\"
fichier = Dir(chemin & "*.pdf")
Set F = Sheets("Liste")
F.[A:B].ClearContents 'RAZ
While fichier <> ""
    n = n + 1
    F.Cells(n, 1) = fichier
    F.Cells(n, 2) = chemin & fichier
    fichier = Dir
Wend
With [C3]
    .Validation.Delete 'RAZ
    .ClearContents 'RAZ
    If n Then .Validation.Add xlValidateList, Formula1:="=" & F.[A1].Resize(n).Address(External:=True)
End With
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
With [C3]
    If Intersect(Target, .Cells) Is Nothing Then Exit Sub
    If .Value = "" Then .Offset(, 1).Clear: Exit Sub
    CreateObject("wscript.shell").SendKeys "{TAB}~" 'évite le message
    ThisWorkbook.FollowHyperlink Application.VLookup(.Value, Sheets("Liste").[A:B], 2, 0)
End With
End Sub
Le bouton permet de choisir le dossier où se trouvent les fichiers PDF.

A+
 

Pièces jointes

  • PDF1.pdf
    25.6 KB · Affichages: 5
  • PDF2.pdf
    26 KB · Affichages: 3
  • PDF3.pdf
    26.5 KB · Affichages: 3
  • Liste PDF VBA(1).xlsm
    26.2 KB · Affichages: 9

Discussions similaires