Lien hypertexte qui envoie directement dans un dossier

Résolu/Fermé
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
- 16 sept. 2015 à 10:15
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
- 17 sept. 2015 à 14:12
Bonjour,

Ayant un fichier excel partagé, je ne peux pas utiliser la fonction hypertexte, j'ai pourtant besoin de renvoyer chaque ligne à un PDF.

J'ai donc utilisé le code suivant :

Sub LIENHYPERTEXTE()
Fichier = Application.GetOpenFilename
If Fichier = 0 Then Exit Sub
nom = Application.InputBox("Entrez le nom qui sera affiché", "DONNER UN NOM AU LIEN")
If nom = "" Or nom = 0 Then
MsgBox "Vous devez saisir un nom pour le lien", vbCritical + vbOKOnly
Exit Sub
End If
ActiveCell.Formula = "=HYPERLINK(""" & Fichier & """,""" & nom & """)"
End Sub


Problème : Lorsque je clique sur ma macro, j'arrive dans "Documents". Je souhaiterais spécifier le dossier où j'arrive directement pour gagner du temps. Tous les PDF à mettre en lien hypertexte s'y trouvent.

Merci d'avance pour votre aide.

Cordialement.

3 réponses

cs_Le Pivert
Messages postés
7745
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 mai 2022
709
17 sept. 2015 à 11:30
comme ceci:

Sub RechercheFichier()
    Dim fd As FileDialog
    Dim NomFichier As String
    Dim nom As String
     Dim tmpStr
 Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .Filters.Add "Pdf", "*.pdf"
        .Title = "Recherche de fichier"
        .InitialFileName = "K:\ATTESTATION PERMANENTES LG FRET EUROPE"
    End With
    If fd.Show = -1 Then NomFichier = fd.SelectedItems(1)
  'si tu veux  récupérer le nom du fichier :
     tmpStr = Split(NomFichier, "\")
   tmpStr = tmpStr(UBound(tmpStr))
   tmpStr = Replace(tmpStr, ".pdf", "")
 nom = tmpStr
ActiveCell.Formula = "=HYPERLINK(""" & NomFichier & """,""" & nom & """)"
 Set fd = Nothing
End Sub

1
cs_Le Pivert
Messages postés
7745
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 mai 2022
709
16 sept. 2015 à 11:36
Bonjour,

A adapter:

Sub RechercheFichier()
    Dim fd As FileDialog
    Dim NomFichier As String
 Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .Filters.Add "Pdf", "*.pdf"
        .Title = "Recherche de fichier"
        .InitialFileName = "C:\Users\.....\Documents\My eBooks"'a adapter
    End With
    If fd.Show = -1 Then NomFichier = fd.SelectedItems(1)
    MsgBox NomFichier
 Set fd = Nothing
End Sub

0
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
55
17 sept. 2015 à 10:50
Bonjour cs_Le Pivert.

Merci pour cette réponse.

Simplement le fait d'avoir une MsgBox est inutile pour moi. Il faudrait qu'un lien hypertexte soit inséré, le lien amenant vers le fichier choisi.

J'avais pris le code initial sur un forum, en fait ce lien permettait d'insérer un lien en fichier partagé. Sinon c'est impossible.

Cordialement,
0
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
55
17 sept. 2015 à 10:55
Ok j'ai trouvé :

Sub RechercheFichier()
    Dim fd As FileDialog
    Dim NomFichier As String
 Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .Filters.Add "Pdf", "*.pdf"
        .Title = "Recherche de fichier"
        .InitialFileName = "K:\ATTESTATION PERMANENTES LG FRET EUROPE"
    End With
    If fd.Show = -1 Then NomFichier = fd.SelectedItems(1)
    nom = Application.InputBox("Entrez le nom qui sera affiché", "DONNER UN NOM AU LIEN")
If nom = "" Or nom = 0 Then
MsgBox "Vous devez saisir un nom pour le lien", vbCritical + vbOKOnly
Exit Sub
End If
ActiveCell.Formula = "=HYPERLINK(""" & NomFichier & """,""" & nom & """)"
 Set fd = Nothing
End Sub


Par contre, y aurait-il moyen, à la place d'entrer le nom du lien hypertexte, de prendre directement le nom du fichier en lui-même?
0
cs_Le Pivert
Messages postés
7745
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 mai 2022
709
17 sept. 2015 à 12:05
Petite correction, si l'utilisateur clique sur annuler dans la boite de dialogue:

Sub RechercheFichier()
    Dim fd As FileDialog
    Dim NomFichier As String
    Dim nom As String
    Dim tmpStr
 Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .Filters.Add "Fichier Pdf", "*.pdf"
        .Title = "Recherche de fichier"
        .InitialFileName = "K:\ATTESTATION PERMANENTES LG FRET EUROPE"
    End With
    If fd.Show = -1 Then NomFichier = fd.SelectedItems(1)
 If NomFichier <> "" Then
'si tu veux  récupérer le nom du fichier :
     tmpStr = Split(NomFichier, "\")
   tmpStr = tmpStr(UBound(tmpStr))
   tmpStr = Replace(tmpStr, ".pdf", "")
 nom = tmpStr
ActiveCell.Formula = "=HYPERLINK(""" & NomFichier & """,""" & nom & """)"
 End If
 Set fd = Nothing
End Sub

0
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
55
17 sept. 2015 à 14:12
Parfait. Merci beaucoup pour le coup de pouce.
0