Lien hypertexte et récupération de l'adresse

yvesb

XLDnaute Nouveau
Lors de la création d'un lien hypertexte dont le chemin d'accès est :

C:\CAC\DOSSIER\MODELE\PiecesJointesDP\dpbd.xls

lorsque je récupère ce chemin dans VBA par la commande address, il affiche :

\PiecesJointesDP\dpbd.xls

Je voudrais l'adresse complète pour la traite dans mon programme

Quelqu'un a t-il une réponse ?

Merci d'avance
 

Pierrot93

XLDnaute Barbatruc
Re : Lien hypertexte et récupération de l'adresse

Bonjour Yves,

quel code utilises tu ?

regarde le code ci dessous, chez moi renvoie bien l'adresse complète d'un lien en B1 :

Code:
Dim x As String
x = Range("B1").Hyperlinks(1).Address

bon dimanche.
@+
 

yvesb

XLDnaute Nouveau
Re : Lien hypertexte et récupération de l'adresse

Désolé pour la réponse tardive mais je m'était absenté cet après midi (beau temps oblige !!!)

J'utilise EXCEL 2000 avec le VBA correspondant. Le code est le suivant :

Sub EcrirRensCBIm()
Dim Rens(5, 19) ' ligne,colonne
On Error GoTo GestiErre 'gestion des anciennes versions
Dim ren As String
Repertoire
ChDir RepSociete ' Change de répertoire
' Ecrit Fichier de donnée
If FileLen("RensCbIM.txt") <> 0 Then Kill "RensCbIM.txt" ' Destruction fichier texte s'il existe
Open "RensCbIM.txt" For Append As #1
For ii = 0 To 5 ' ligne PArcours la feuille en ligne
For jj = 0 To 19 ' Parcours la feuille en colonne
If Range("k2").Offset(ii, jj) = "" Then ren = "" Else ren = Range("k2").Offset(ii, jj)
If jj = 19 Then ' La dernière colonne contient le lien hypertexte
If Range(ren).Hyperlinks.Count = 0 Then '' Si ce n'est pas un lien on enregistre un vide
ren = ""
Else
For Each h In Range(ren).Hyperlinks
ren = h.Address ' Récupère le lien
MsgBox ren ' Affiche le chemin du lien
Next
End If
Write #1, ren ' ecrit le lien
Else
Write #1, ren; ' ecrit les autres données
End If
Next
Next
Close #1
On Error GoTo 0
Exit Sub
' Si le fichier répertoire n'existe pas évite => le message érreur
GestiErre:
Resume Next

exit sub

Merci pour vos réponses

Yves
 

yvesb

XLDnaute Nouveau
Re : Lien hypertexte et récupération de l'adresse

Petite précision :

Lorsque je me positionne sur la case qui contient le lien, et que je consulte le lien hypertexte par Insertion/lien hypertexte, le chemin inscrit dans tapez le nom du fichier contient uniquement ce que récupère VBA. En revanche, si je me positionne avec la souris sur le lien, le chemin complet apparaît.

Yves
 

Pierrot93

XLDnaute Barbatruc
Re : Lien hypertexte et récupération de l'adresse

Bonjour Yves, Catrice

Es tu sur que ta variable "ren" soit bien initialisée ? je verrais plutôt un type de donnée "Range" ou bien si tu veux garder du string, renvoyer une adresse de cellule comme ci dessous :

Code:
ren = Range("k2").Offset(ii, jj).Address

bonne journée
@+
 

yvesb

XLDnaute Nouveau
Re : Lien hypertexte et récupération de l'adresse

Bonjour Pierrot93

Je rentre du boulot, jr n'ai pas lu les messages avant.

Merci pour ta réponse, mais ça ne fonctionne pas

J'ai essayé ta proposition, mais c'est toujours pareil.

J'ai l'impression que lorsqu'on crait un lien sous excel il calcul le chemin à partir du répertoire ou on est.
Donc si je suis dans c:\cac\dossier\ et que le lien est dans c:\cac\dossier\piece, le logiciel n'affiche que \pièce

Quelqu'un a t-il une idée ?

Merci

bonne soirée
Yves
 

Catrice

XLDnaute Barbatruc
Re : Lien hypertexte et récupération de l'adresse

Bonsoir,

Je viens de tester cette boucle sur un Excel 2000 :

Sub EcrirRensCBIm()
For Each h In Cells.Hyperlinks
ren = h.Address ' Récupère le lien
MsgBox ren ' Affiche le chemin du lien
Next
End Sub

Et je récupère bien le chemin complet du lien hypertexte.
Quel que soit le dossier dans lequel je me trouve ...

Quel est ton systeme d'exploitation ?
Quel service pack d'Excel ?
 

Catrice

XLDnaute Barbatruc
Re : Lien hypertexte et récupération de l'adresse

Bonsoir,

Effectivement, je n'avais pas enregistré le fichier.
Je reproduis le probleme. Etrange, je n'arrive pas du tout à récupérer le chemin complet. Pourtant il est stocké qq part puisqu'il ouvre le fichier.
La seule solution que j'ai trouvé pour le moment :

Sub EcrirRensCBIm()
For Each h In Cells.Hyperlinks
ren = h.TextToDisplay
MsgBox ren ' Affiche le chemin du lien
Next
End Sub

Mais qui ne fonctionne que si on n'a pas modifier le "Texte à Afficher" :(
Je n'ai pas remarqué de point commun (en ayant créé différents liens) concernant le début du chemin.
 

yvesb

XLDnaute Nouveau
Re : Lien hypertexte et récupération de l'adresse

Bonsoir,

Merci Catrice,

Mais mon texte affiché n'est pas le chemin du lien mais un nom saisie par l'utilisateur.

J'ai beau chercher, je ne trouve pas non plus de solution.

Pourtant, je suis sûr qu'il y a eu astuce !!


Yves
 

Catrice

XLDnaute Barbatruc
Re : Lien hypertexte et récupération de l'adresse

Bonsoir,

J'ai trouvé une fiche technique en rapport avec ce probleme mais sans résultat :(

Des liens hypertexte relatifs ne sont pas enregistrés correctement dans Office XP
Des lien hypertexte relatifs sont modifiés et ne fonctionnent correctement pas combien plus non de temps dans un fichier qui est enregistré dans Office 2003

L'info est stockée qq part puisqu'en positionnant la souris sur la cellule contenant le lien on a un Popup qui donne le chemin complet avec un baratin.
Mais comment récupérer ceci ?
 

Discussions similaires

Statistiques des forums

Discussions
312 371
Messages
2 087 704
Membres
103 646
dernier inscrit
ouattara dad