création automatique lien hypertexte

zoubir15

XLDnaute Junior
Bonjour,

Merci d'avance,

Comment je puisse créer un lien hypertexte rapidement dans ma liste de document. Remarque par exemple mes documents sont placés dan le D:.

Merci
 

Pièces jointes

  • Classeur1.xlsx
    11.4 KB · Affichages: 49
  • Classeur1.xlsx
    11.4 KB · Affichages: 45

ralph45

XLDnaute Impliqué
Re : création automatique lien hypertexte

Re,

Dans une autre discussion, alors...

Celle-ci n'attire peut-être de par le titre que les "formulistes" de XLD.
Et des "VBistes" compétents (plus compétents que moi), il y en a un paquet, ici !!

@peluche !
 

ralph45

XLDnaute Impliqué
Re : création automatique lien hypertexte

Bonjour et Re job75, ;)

"Argument rejeté, votre honneur !"
:D
--> N'est-ce pas l'une des propositions faites en PJ dans le post #14 ?

Je crois que la dernière demande allait dans le sens où lorsque l'on saisit une référence dans une cellule, celle-ci se mette automatiquement en lien hyper-texte dès validation, avec le bon chemin déclaré en amont (Marcel).

@peluche !
 

job75

XLDnaute Barbatruc
Re : création automatique lien hypertexte

Re,

Alors en VBA, dans le code de la feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim chemin$, ext$, r As Range, t$
chemin = "L:\" 'à adapter
ext = ".pdf" 'à adapter
Set r = Intersect(Target, Me.UsedRange)
On Error Resume Next
For Each r In r 'si entrées/effacements multiples
  r.Hyperlinks(1).Delete
  t = chemin & r & ext
  If Dir(t) <> "" Then Me.Hyperlinks.Add r, t, , r.Text
Next
End Sub
Edit : si l'on veut voir le chemin écrire seulement If Dir(t) <> "" Then Me.Hyperlinks.Add r, t

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : création automatique lien hypertexte

Re,

La macro est à placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code).

Le lien est créé quand on valide ou modifie la cellule et si le fichier .pdf existe.

A+
 

job75

XLDnaute Barbatruc
Re : création automatique lien hypertexte

Bonjour zoubir15, le forum,

Bah le fichier doit bien sûr être enregistré en .xlsm.

Pour tester téléchargez les 3 fichiers joints sur le bureau (même répertoire).

J'ai juste adapté le chemin pour ceux qui n'ont pas de lecteur "L" :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim chemin$, ext$, r As Range, t$
chemin = ThisWorkbook.Path & "\" '"L:\" 'à adapter
ext = ".pdf" 'à adapter
Set r = Intersect(Target, Me.UsedRange)
On Error Resume Next
For Each r In r 'si entrées/effacements multiples
  r.Hyperlinks(1).Delete
  t = chemin & r & ext
  If Dir(t) <> "" Then Me.Hyperlinks.Add r, t
Next
End Sub
Bonne journée.
 

Pièces jointes

  • Test_Zoubir15(1).xlsm
    15.3 KB · Affichages: 31
  • LAC-000-CIV-495.pdf
    10.9 KB · Affichages: 29
  • LAC-000-CIV-496.pdf
    84 KB · Affichages: 28

ralph45

XLDnaute Impliqué
Re : création automatique lien hypertexte

Bonjour zoubir15, job75 & le Forum.

@job75

J'ai testé ton code depuis hier qui fonctionne parfaitement, mais j'aurai une petite suggestion :

--> Il serait préférable qu'une seule colonne soit concernée par celui-ci (dans le cas de le zoubir75, c'est la colonne B), car il affecte des liens hyper-texte quelles que soient les cellules, y compris là où il ne faudrait pas !

@peluche !
 

job75

XLDnaute Barbatruc
Re : création automatique lien hypertexte

Re,

--> Il serait préférable qu'une seule colonne soit concernée par celui-ci (dans le cas de le zoubir75, c'est la colonne B), car il affecte des liens hyper-texte quelles que soient les cellules, y compris là où il ne faudrait pas !

Si l'on veut que seule la colonne B soit concernée il suffit de le préciser en complétant comme ceci :

Code:
Set r = Intersect(Target, [B:B], Me.UsedRange)
Mais a priori ce n'est pas indispensable car il y a peu de chance qu'un texte quelconque corresponde au nom d'un fichier existant dans le répertoire.

donc il faut les mettre dans le même répertoire.

Bah faites ce que vous voulez cher ami, utilisez le chemin d'accès que vous voulez...

A+
 

Discussions similaires

Réponses
7
Affichages
486
Réponses
5
Affichages
220

Membres actuellement en ligne

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 611
dernier inscrit
sebboes