Inserer lien hypertext

Bonjour à tous

Je suis a la recherche d'une petite macro qui me permettrai d'importer un fichier pdf dans une cellule de ma feuille.

Mais ne mettre dans la cellule que le nom du fichier pdf et quand je clique sur ce lien il m'ouvre mon fichier pdf.

Merci d'avance

Bonjour,

Voici un essai : Il faut saisir ce code dans le module de la feuille en question. Ensuite, la macro se déclenche au double-clic sur une cellule de la colonne 1 :

private sub worksheet_beforedoubleclick(byval target as range, cancel as boolean)

Dim chemin$, nom$

if target.column <> 1 then exit sub 'évènement porte sur colonne 1, sinon sortie
cancel = true 'annule effet double-clic

with application.filedialog(msoFileDialogFilePicker) 'avec boite de dialogue(sélection fichiers)
    .title = "Sélectionner le fichier à pointer dans la cellule active" 'titre
    .show 'affiche
    if .selecteditems.count > 0 then 'si élément(s) séelctionné(s)
        chemin = .selecteditems(1) 'prend le chemin du premier
        nom = split(chemin, "\")(ubound(split(chemin, "\"))) 'prend le nom du fichier (dernière partie précédée d'un "\")
    end if
end with

if chemin = "" then exit sub 'si chemin vide, sortie
application.enableevents = false 'désactive évènements
Me.hyperlinks.add anchor:=target, address:=chemin, screentip:="Fichier : " & nom, texttodisplay:=replace(nom, ".pdf", "") 'ajoute lien sur target
application.enableevents = true 'réactive

end sub

Cdlt,

Bonjour @3GB

Merci

En fait je voudrai le faire avec un bouton qui me permet de choisir le fichier avant de mettre le nom dans une cellule

Bonne journée

Est-ce que vous avez essayé déjà ? Faites un essai (pour au moins voir si ça marche car je n'ai pas testé) et après on verra ce qui ne va pas.

Mais là, le double clic ouvre une boite de dialogue permettant de sélectionner un fichier, alors "hypertexté" sur la cellule cliquée.

Bonne journée à vous aussi,

J'ai une erreur sur cette ligne

chemin = .seleteditems(1) 'prend le chemin du premier (erreur de compilation)

Désolé, c'est du oneshot donc il peut y avoir des petites coquilles/fautes de frappe :

chemin = .selecteditems(1)

Edit : D'ailleurs, à la ligne juste après, il manque une parenthèse fermante à la toute fin !

Edit2 : Une fois ces 2 problèmes réglés, le code est fonctionnel (testé à l'instant)

Oui maintenant cela fonctionne

Mais comme dit plus bas j'aimerais le faire avec un bouton sur une ligne sélectionnée et pas par double clic

Et pour le petit bonus, avec sélection multiple : on double clic sur A1, on sélectionne 5 fichiers, on obtient les 5 hypertextes en A1:A5 :

private sub worksheet_beforedoubleclick(byval target as range, cancel as boolean)

Dim chemin$, nom$, i%

if target.column <> 1 then exit sub 'évènement porte sur colonne 1, sinon sortie
cancel = true 'annule effet double-clic

With Application.FileDialog(msoFileDialogFilePicker) 'avec boite de dialogue(sélection fichiers)
    .Title = "Sélectionner le fichier à pointer dans la cellule active" 'titre
    .Show 'affiche
    If .SelectedItems.Count > 0 Then 'si élément(s) séelctionné(s)
        For i = 1 To .SelectedItems.Count
            chemin = .SelectedItems(i) 'prend le chemin du premier
            nom = Split(chemin, "\")(UBound(Split(chemin, "\")))
            Application.EnableEvents = False 'désactive évènements
            Me.Hyperlinks.Add anchor:=Target.offset(i - 1, 0), Address:=chemin, _
            ScreenTip:="Fichier : " & nom, TextToDisplay:=Replace(nom, ".pdf", "") 'ajoute lien sur target
            Application.EnableEvents = True 'réactive
        Next i
    End If
End With

end sub

Cdlt,

Oui, avec un bouton, c'est possible mais comment définir la cellule accueillant le lien ? Il faudrait ajouter un bouton à côté de chaque ligne concernée ? Envoyez moi un fichier exemple que je comprenne dans ce cas.

pour la sélection de cellule , insérer se fait sur la cellule par exemple 3 de la ligne sélectionnée

Rechercher des sujets similaires à "inserer lien hypertext"