Code VBA pour lien hyperlink

Bonjour à tous,

Avec le code ci-dessous je souhaite créer un lien hyperlink avec le contenu de la cellule active.
(La cellule contient l'adresse complete du fichier pdf, sur OneDrive)
Quand je sélectionne à la souris le contenu de la cellule, le copie et lance la macro, ça fonctionne. Mais quand, seule la cellule est sélectionnée et que je copie et lance la macro ça plante à la ligne ou j'ai noté: ICI
J'ai observé que le contenu de l'hyperlien n'est pas le même selon la méthode de copie employée. Dans le second cas elle commence par: \\fs1a\ au lieu de T:\,

T\Comptabilite\2022\janvier2022.pdf (Fonctionne)
\\fs1a\
T\Comptabilite\2022\janvier2022.pdf (plante)
- Est-ce que quelqu'un aurait la solution, ou l'explication qui pourrait me mettre sur la voie ?

Sub Clipboard_Pdf()
Set Clipboard = New MSForms.DataObject
Clipboard.GetFromClipboard
strContents = Clipboard.GetText
If strContents <> "" Then
strContents = Replace(strContents, Chr(34), "")
If Selection.Hyperlinks.Count > 0 Then Selection.Hyperlinks.Delete
ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, Address:=strContents ' ICI
With Selection
.HorizontalAlignment = xlLeft
.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End With
Else
MsgBox "Aucun fichier dans le clipboard", vbInformation + vbOKCancel, "Opération annulée."
End If
End Sub

Merci d'avance pour votre aide, très bonne journée à tous.

Emile

-----------------------------------------------------------------------------

Bonsoir Emile apprenti,

Apparemment le 2ième lien ne semble pas un lien vers OneDrive.

Il faudrait aller chercher le chemin complet OneDrive (Dossier et Sous-dossier, fichier avec son extension) en ouvrant le fichier souhaité. Puis ensuite.

Vous pouvez ouvrir un dossier dans OneDrive en ligne (via un navigateur ou un clic droit sur le dossier dans l'explorateur de fichiers puis en sélectionnant "afficher en ligne") et cliquer sur "obtenir le lien" en haut. Il suffit de couper et coller

Une fois obtenu le lien complet il suffit de l'enregistrer dans une cellule de la feuille. Ces liens sont similaires aux barres d'adresse de ton navigateur.

Bonjour X Celus,

Les liens que j'ai mis en exemple ne sont pas les réels pour des raison de sécurité.
Je sais bien copier / coller les chemins complets, et si je les colle dans le presse-papier par exemple, ils sont corrects.

C'est lorsque l'hyperlien est créé par Excel (voir ligne ICI) que le chemin se retrouve modifié, XL (qui doit sans doute le reconnaitre) remplace le début de la chaine qui représente le chemin de mon réseau (qui pointe sur OneDrive), qui dans mon explorateur est nommé comme disque : T:\

Le substitue donc par : \\fs1a\ XXXXX

Et du coup lorsque je clic sur le lien ainsi créee, il ne fonctionne pas, par-contre, si je substitue manuellement le : \\fs1a\XXX par le T:\XXXX, le lien fonctionne parfaitement.

Je me demandais si en changeant l'affectation de la variable : strContents en string ou autre, ça pouvait empêcher Excel de transformer cette donnée, mais je n'y arrive pas!

Encore merci pour ton suivi, je te souhaite une bonne journée.

Bonjour Emile apprenti,

Est ce un lien partagé ? C'est à dire que le fichier peut être utilisé, annoté etc par plusieurs utilisateurs ?

Sinon le XXXX... est la bonne cible. Alors faire une correction du texte \\fs1a par T:

Donc une substitution après collage. Ce qui amène à corriger une partie du lien.

Donc copie (plus par macro) du presse-papier puis modification du lien toujours par macro.

Voir ici Lien OneDrive

Bonjour X Cellus,

Merci pour ton aide et conseil
La solution était bien là : ActiveCell = Replace(ActiveCell, "\\fs1a\xxxx\", "T:\")

Rechercher des sujets similaires à "code vba lien hyperlink"